From c0f3339c0d5ea00a880002018ecbeb92e1aab4b1 Mon Sep 17 00:00:00 2001 From: andy Date: Wed, 5 Dec 2012 15:52:56 +0000 Subject: [PATCH] ENH: Updated basic source framework to include MRF hooks --- src/fieldSources/basicSource/basicSource.C | 32 ++++++++++++++ src/fieldSources/basicSource/basicSource.H | 23 ++++++++++ .../basicSource/basicSourceList.C | 44 +++++++++++++++++++ .../basicSource/basicSourceList.H | 23 ++++++++++ 4 files changed, 122 insertions(+) diff --git a/src/fieldSources/basicSource/basicSource.C b/src/fieldSources/basicSource/basicSource.C index 9ebcdc5834..64be60fa84 100644 --- a/src/fieldSources/basicSource/basicSource.C +++ b/src/fieldSources/basicSource/basicSource.C @@ -481,4 +481,36 @@ void Foam::basicSource::setValue(fvMatrix& eqn, const label fieldI) } +void Foam::basicSource::relativeFlux(surfaceScalarField& phi) const +{ + // do nothing +} + + +void Foam::basicSource::relativeFlux +( + const surfaceScalarField& rho, + surfaceScalarField& phi +) const +{ + // do nothing +} + + +void Foam::basicSource::absoluteFlux(surfaceScalarField& phi) const +{ + // do nothing +} + + +void Foam::basicSource::absoluteFlux +( + const surfaceScalarField& rho, + surfaceScalarField& phi +) const +{ + // do nothing +} + + // ************************************************************************* // diff --git a/src/fieldSources/basicSource/basicSource.H b/src/fieldSources/basicSource/basicSource.H index 69e9dcf408..3e4740cead 100644 --- a/src/fieldSources/basicSource/basicSource.H +++ b/src/fieldSources/basicSource/basicSource.H @@ -427,6 +427,29 @@ public: ); + // Flux manipulations + + //- Make the given absolute flux relative + virtual void relativeFlux(surfaceScalarField& phi) const; + + //- Make the given absolute mass-flux relative + virtual void relativeFlux + ( + const surfaceScalarField& rho, + surfaceScalarField& phi + ) const; + + //- Make the given relative flux absolute + virtual void absoluteFlux(surfaceScalarField& phi) const; + + //- Make the given relative mass-flux absolute + virtual void absoluteFlux + ( + const surfaceScalarField& rho, + surfaceScalarField& phi + ) const; + + // I-O //- Write the source header information diff --git a/src/fieldSources/basicSource/basicSourceList.C b/src/fieldSources/basicSource/basicSourceList.C index 2d484868a4..a7224e9a6c 100644 --- a/src/fieldSources/basicSource/basicSourceList.C +++ b/src/fieldSources/basicSource/basicSourceList.C @@ -108,6 +108,50 @@ void Foam::basicSourceList::reset(const dictionary& dict) } +void Foam::basicSourceList::relativeFlux(surfaceScalarField& phi) const +{ + forAll(*this, i) + { + this->operator[](i).relativeFlux(phi); + } +} + + +void Foam::basicSourceList::relativeFlux +( + const surfaceScalarField& rho, + surfaceScalarField& phi +) const +{ + forAll(*this, i) + { + this->operator[](i).relativeFlux(rho, phi); + } +} + + +void Foam::basicSourceList::absoluteFlux(surfaceScalarField& phi) const +{ + forAll(*this, i) + { + this->operator[](i).absoluteFlux(phi); + } +} + + +void Foam::basicSourceList::absoluteFlux +( + const surfaceScalarField& rho, + surfaceScalarField& phi +) const +{ + forAll(*this, i) + { + this->operator[](i).absoluteFlux(rho, phi); + } +} + + bool Foam::basicSourceList::read(const dictionary& dict) { checkTimeIndex_ = mesh_.time().timeIndex() + 2; diff --git a/src/fieldSources/basicSource/basicSourceList.H b/src/fieldSources/basicSource/basicSourceList.H index 5f5e053a94..002d23b1fb 100644 --- a/src/fieldSources/basicSource/basicSourceList.H +++ b/src/fieldSources/basicSource/basicSourceList.H @@ -152,6 +152,29 @@ public: void constrain(fvMatrix& eqn, const word& fieldName); + // Flux manipulations + + //- Make the given absolute flux relative + void relativeFlux(surfaceScalarField& phi) const; + + //- Make the given absolute mass-flux relative + void relativeFlux + ( + const surfaceScalarField& rho, + surfaceScalarField& phi + ) const; + + //- Make the given relative flux absolute + void absoluteFlux(surfaceScalarField& phi) const; + + //- Make the given relative mass-flux absolute + void absoluteFlux + ( + const surfaceScalarField& rho, + surfaceScalarField& phi + ) const; + + // I-O //- Read dictionary