diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/pU/pEqn.H b/applications/solvers/multiphase/twoPhaseEulerFoam/pU/pEqn.H index e9567bf7e22df20fa444f3eb1096998eb4afd397..13cb589dfded3727ae1f5534d36642a148efce77 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/pU/pEqn.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/pU/pEqn.H @@ -91,27 +91,9 @@ while (pimple.correct()) // Update continuity errors due to temperature changes #include "correctContErrs.H" - // Correct flux BCs to be consistent with the velocity BCs - forAll(mesh.boundary(), patchi) - { - if (isA<fixedValueFvsPatchScalarField>(phi1.boundaryField()[patchi])) - { - phi1.boundaryField()[patchi] == - mrfZones.relative - ( - mesh.Sf().boundaryField() & U1.boundaryField() - )()[patchi]; - } - - if (isA<fixedValueFvsPatchScalarField>(phi2.boundaryField()[patchi])) - { - phi2.boundaryField()[patchi] == - mrfZones.relative - ( - mesh.Sf().boundaryField() & U2.boundaryField() - )()[patchi]; - } - } + // Correct fixed-flux BCs to be consistent with the velocity BCs + mrfZones.correctBoundaryFlux(U1, phi1); + mrfZones.correctBoundaryFlux(U2, phi2); volVectorField HbyA1 ( diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/pUf/pEqn.H b/applications/solvers/multiphase/twoPhaseEulerFoam/pUf/pEqn.H index 5f5089131102a9c6ac928cd25b4e4eeaf8aff9cf..bb0b5f528fb3837210e02c26a90847d33b8caf23 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/pUf/pEqn.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/pUf/pEqn.H @@ -99,26 +99,8 @@ while (pimple.correct()) surfaceScalarField rhof2(fvc::interpolate(rho2)); // Correct fixed-flux BCs to be consistent with the velocity BCs - forAll(mesh.boundary(), patchi) - { - if (isA<fixedValueFvsPatchScalarField>(phi1.boundaryField()[patchi])) - { - phi1.boundaryField()[patchi] == - mrfZones.relative - ( - mesh.Sf().boundaryField() & U1.boundaryField() - )()[patchi]; - } - - if (isA<fixedValueFvsPatchScalarField>(phi2.boundaryField()[patchi])) - { - phi2.boundaryField()[patchi] == - mrfZones.relative - ( - mesh.Sf().boundaryField() & U2.boundaryField() - )()[patchi]; - } - } + mrfZones.correctBoundaryFlux(U1, phi1); + mrfZones.correctBoundaryFlux(U2, phi2); surfaceScalarField alpharAUf1 ( diff --git a/src/finiteVolume/cfdTools/general/MRF/MRFZone.C b/src/finiteVolume/cfdTools/general/MRF/MRFZone.C index 4b45ed3fdc433ccc20e70d6fede9ae763deb5b27..c1973f3df75e0971a3e566af0e2a5d5ab66b928d 100644 --- a/src/finiteVolume/cfdTools/general/MRF/MRFZone.C +++ b/src/finiteVolume/cfdTools/general/MRF/MRFZone.C @@ -526,7 +526,6 @@ void Foam::MRFZone::correctBoundaryVelocity(volVectorField& U) const { const vector Omega = this->Omega(); - // Included patches forAll(includedFaces_, patchi) { diff --git a/src/finiteVolume/cfdTools/general/MRF/MRFZone.H b/src/finiteVolume/cfdTools/general/MRF/MRFZone.H index 43b1f8653c8e911dcb6630ee96ff395a7c3e8d6b..d6a41fcf9d7cae09e2c568b3abda6215cf101978 100644 --- a/src/finiteVolume/cfdTools/general/MRF/MRFZone.H +++ b/src/finiteVolume/cfdTools/general/MRF/MRFZone.H @@ -246,7 +246,7 @@ public: surfaceScalarField& phi ) const; - //- Correct the boundary velocity for the roation of the MRF region + //- Correct the boundary velocity for the rotation of the MRF region void correctBoundaryVelocity(volVectorField& U) const; diff --git a/src/finiteVolume/cfdTools/general/MRF/MRFZoneList.C b/src/finiteVolume/cfdTools/general/MRF/MRFZoneList.C index a9197ce5a5c221bb884b89325da8cf14f0bf49d2..b14524a67657b418191209edce7479c2f71094a5 100644 --- a/src/finiteVolume/cfdTools/general/MRF/MRFZoneList.C +++ b/src/finiteVolume/cfdTools/general/MRF/MRFZoneList.C @@ -25,6 +25,7 @@ License #include "MRFZoneList.H" #include "volFields.H" +#include "fixedValueFvsPatchFields.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // @@ -310,6 +311,30 @@ void Foam::MRFZoneList::correctBoundaryVelocity(volVectorField& U) const } +void Foam::MRFZoneList::correctBoundaryFlux +( + const volVectorField& U, + surfaceScalarField& phi +) const +{ + FieldField<fvsPatchField, scalar> phibf + ( + relative(mesh_.Sf().boundaryField() & U.boundaryField()) + ); + + forAll(mesh_.boundary(), patchi) + { + if + ( + isA<fixedValueFvsPatchScalarField>(phi.boundaryField()[patchi]) + ) + { + phi.boundaryField()[patchi] == phibf[patchi]; + } + } +} + + // * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * // Foam::Ostream& Foam::operator<< diff --git a/src/finiteVolume/cfdTools/general/MRF/MRFZoneList.H b/src/finiteVolume/cfdTools/general/MRF/MRFZoneList.H index 52d992d1ce6a26c2918aaa2c8665aa317db4b7cc..6f33035585c2733fcb94dc3a4c112e67bb627e0c 100644 --- a/src/finiteVolume/cfdTools/general/MRF/MRFZoneList.H +++ b/src/finiteVolume/cfdTools/general/MRF/MRFZoneList.H @@ -160,9 +160,16 @@ public: surfaceScalarField& phi ) const; - //- Correct the boundary velocity for the roation of the MRF region + //- Correct the boundary velocity for the rotation of the MRF region void correctBoundaryVelocity(volVectorField& U) const; + //- Correct the boundary flux for the rotation of the MRF region + void correctBoundaryFlux + ( + const volVectorField& U, + surfaceScalarField& phi + ) const; + // I-O