diff --git a/src/finiteVolume/cfdTools/general/MRF/MRFZone.C b/src/finiteVolume/cfdTools/general/MRF/MRFZone.C index 4e3cd2354a54b50d433c57e1c03cbb7ab63498e8..a909154ee114b3a007d1935a50c2dcc1ae28e5b4 100644 --- a/src/finiteVolume/cfdTools/general/MRF/MRFZone.C +++ b/src/finiteVolume/cfdTools/general/MRF/MRFZone.C @@ -292,6 +292,31 @@ Foam::MRFZone::MRFZone(const fvMesh& mesh, Istream& is) // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +void Foam::MRFZone::addCoriolis +( + const volVectorField& U, + volVectorField& ddtU +) const +{ + if (cellZoneID_ == -1) + { + return; + } + + const labelList& cells = mesh_.cellZones()[cellZoneID_]; + const scalarField& V = mesh_.V(); + vectorField& ddtUc = ddtU.internalField(); + const vectorField& Uc = U.internalField(); + const vector& Omega = Omega_.value(); + + forAll(cells, i) + { + label celli = cells[i]; + ddtUc[celli] += V[celli]*(Omega ^ Uc[celli]); + } +} + + void Foam::MRFZone::addCoriolis(fvVectorMatrix& UEqn) const { if (cellZoneID_ == -1) diff --git a/src/finiteVolume/cfdTools/general/MRF/MRFZone.H b/src/finiteVolume/cfdTools/general/MRF/MRFZone.H index c110eb44008d200d8109ac4a885b2ab58ff1aea6..d9f2fa979aa6b43a217e13da897e4a247b3c37fa 100644 --- a/src/finiteVolume/cfdTools/general/MRF/MRFZone.H +++ b/src/finiteVolume/cfdTools/general/MRF/MRFZone.H @@ -166,6 +166,9 @@ public: setMRFFaces(); } + //- Add the Coriolis force contribution to the acceleration field + void addCoriolis(const volVectorField& U, volVectorField& ddtU) const; + //- Add the Coriolis force contribution to the momentum equation void addCoriolis(fvVectorMatrix& UEqn) const; diff --git a/src/finiteVolume/cfdTools/general/MRF/MRFZones.C b/src/finiteVolume/cfdTools/general/MRF/MRFZones.C index 52d26b310831a5cccab7b10b22631f1c71c1ebd0..b915c9c65bb5b0246157261f6e11b867407acab9 100644 --- a/src/finiteVolume/cfdTools/general/MRF/MRFZones.C +++ b/src/finiteVolume/cfdTools/general/MRF/MRFZones.C @@ -55,6 +55,19 @@ Foam::MRFZones::MRFZones(const fvMesh& mesh) // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +void Foam::MRFZones::addCoriolis +( + const volVectorField& U, + volVectorField& ddtU +) const +{ + forAll(*this, i) + { + operator[](i).addCoriolis(U, ddtU); + } +} + + void Foam::MRFZones::addCoriolis(fvVectorMatrix& UEqn) const { forAll(*this, i) diff --git a/src/finiteVolume/cfdTools/general/MRF/MRFZones.H b/src/finiteVolume/cfdTools/general/MRF/MRFZones.H index 139d45d2561b8161b17b99ca4adce4dba6d6f32d..db973dcc807d78d833567fcd616dd0966fda7168 100644 --- a/src/finiteVolume/cfdTools/general/MRF/MRFZones.H +++ b/src/finiteVolume/cfdTools/general/MRF/MRFZones.H @@ -72,6 +72,9 @@ public: // Member Functions + //- Add the Coriolis force contribution to the acceleration field + void addCoriolis(const volVectorField& U, volVectorField& ddtU) const; + //- Add the Coriolis force contribution to the momentum equation void addCoriolis(fvVectorMatrix& UEqn) const;