Commit cda13049 authored by Henry's avatar Henry
Browse files

fvOptions: Add support for boundary field relative flux function

parent 72e9a0ba
......@@ -461,6 +461,28 @@ void Foam::MRFZone::makeRelative(volVectorField& U) const
}
void Foam::MRFZone::makeRelative(surfaceScalarField& phi) const
{
makeRelativeRhoFlux(geometricOneField(), phi);
}
void Foam::MRFZone::makeRelative(FieldField<fvsPatchField, scalar>& phi) const
{
makeRelativeRhoFlux(oneFieldField(), phi);
}
void Foam::MRFZone::makeRelative
(
const surfaceScalarField& rho,
surfaceScalarField& phi
) const
{
makeRelativeRhoFlux(rho, phi);
}
void Foam::MRFZone::makeAbsolute(volVectorField& U) const
{
const volVectorField& C = mesh_.C();
......@@ -499,28 +521,6 @@ void Foam::MRFZone::makeAbsolute(volVectorField& U) const
}
void Foam::MRFZone::makeRelative(surfaceScalarField& phi) const
{
makeRelativeRhoFlux(geometricOneField(), phi);
}
void Foam::MRFZone::makeRelative(FieldField<fvsPatchField, scalar>& phi) const
{
return makeRelativeRhoFlux(oneFieldField(), phi);
}
void Foam::MRFZone::makeRelative
(
const surfaceScalarField& rho,
surfaceScalarField& phi
) const
{
makeRelativeRhoFlux(rho, phi);
}
void Foam::MRFZone::makeAbsolute(surfaceScalarField& phi) const
{
makeAbsoluteRhoFlux(geometricOneField(), phi);
......
......@@ -218,9 +218,6 @@ public:
//- Make the given absolute velocity relative within the MRF region
void makeRelative(volVectorField& U) const;
//- Make the given relative velocity absolute within the MRF region
void makeAbsolute(volVectorField& U) const;
//- Make the given absolute flux relative within the MRF region
void makeRelative(surfaceScalarField& phi) const;
......@@ -235,6 +232,9 @@ public:
surfaceScalarField& phi
) const;
//- Make the given relative velocity absolute within the MRF region
void makeAbsolute(volVectorField& U) const;
//- Make the given relative flux absolute within the MRF region
void makeAbsolute(surfaceScalarField& phi) const;
......
......@@ -169,15 +169,6 @@ void Foam::MRFZoneList::makeRelative(volVectorField& U) const
}
void Foam::MRFZoneList::makeAbsolute(volVectorField& U) const
{
forAll(*this, i)
{
operator[](i).makeAbsolute(U);
}
}
void Foam::MRFZoneList::makeRelative(surfaceScalarField& phi) const
{
forAll(*this, i)
......@@ -193,7 +184,7 @@ Foam::MRFZoneList::relative
const tmp<FieldField<fvsPatchField, scalar> >& phi
) const
{
tmp<FieldField<fvsPatchField, scalar> > rphi(phi);
tmp<FieldField<fvsPatchField, scalar> > rphi(phi.ptr());
forAll(*this, i)
{
......@@ -217,6 +208,15 @@ void Foam::MRFZoneList::makeRelative
}
void Foam::MRFZoneList::makeAbsolute(volVectorField& U) const
{
forAll(*this, i)
{
operator[](i).makeAbsolute(U);
}
}
void Foam::MRFZoneList::makeAbsolute(surfaceScalarField& phi) const
{
forAll(*this, i)
......
......@@ -27,6 +27,7 @@ License
#include "fvMesh.H"
#include "fvMatrices.H"
#include "volFields.H"
#include "fvsPatchFields.H"
#include "ListOps.H"
#include "addToRunTimeSelectionTable.H"
......@@ -480,6 +481,15 @@ void Foam::fv::option::makeRelative(surfaceScalarField& phi) const
}
void Foam::fv::option::makeRelative
(
FieldField<fvsPatchField, scalar>& phi
) const
{
// do nothing
}
void Foam::fv::option::makeRelative
(
const surfaceScalarField& rho,
......
......@@ -427,6 +427,12 @@ public:
//- Make the given absolute flux relative
virtual void makeRelative(surfaceScalarField& phi) const;
//- Make the given absolute boundary flux relative
virtual void makeRelative
(
FieldField<fvsPatchField, scalar>& phi
) const;
//- Make the given absolute mass-flux relative
virtual void makeRelative
(
......
......@@ -26,6 +26,7 @@ License
#include "fvOptionList.H"
#include "addToRunTimeSelectionTable.H"
#include "fvMesh.H"
#include "surfaceFields.H"
#include "Time.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
......@@ -129,6 +130,23 @@ void Foam::fv::optionList::makeRelative
}
Foam::tmp<Foam::FieldField<Foam::fvsPatchField, Foam::scalar> >
Foam::fv::optionList::relative
(
const tmp<FieldField<fvsPatchField, scalar> >& phi
) const
{
tmp<FieldField<fvsPatchField, scalar> > rphi(phi.ptr());
forAll(*this, i)
{
operator[](i).makeRelative(rphi());
}
return rphi;
}
void Foam::fv::optionList::makeAbsolute(surfaceScalarField& phi) const
{
forAll(*this, i)
......
......@@ -166,6 +166,12 @@ public:
surfaceScalarField& phi
) const;
//- Return the given absolute boundary flux relative
tmp<FieldField<fvsPatchField, scalar> > relative
(
const tmp<FieldField<fvsPatchField, scalar> >& tphi
) const;
//- Make the given relative flux absolute
void makeAbsolute(surfaceScalarField& phi) const;
......
......@@ -126,6 +126,15 @@ void Foam::fv::MRFSource::makeRelative(surfaceScalarField& phi) const
}
void Foam::fv::MRFSource::makeRelative
(
FieldField<fvsPatchField, scalar>& phi
) const
{
mrfPtr_->makeRelative(phi);
}
void Foam::fv::MRFSource::makeRelative
(
const surfaceScalarField& rho,
......
......@@ -140,6 +140,12 @@ public:
//- Make the given absolute flux relative
virtual void makeRelative(surfaceScalarField& phi) const;
//- Make the given absolute boundary flux relative
virtual void makeRelative
(
FieldField<fvsPatchField, scalar>& phi
) const;
//- Make the given absolute mass-flux relative
virtual void makeRelative
(
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment