From dc1c6d76005954f230bca829f51eb790d558eeed Mon Sep 17 00:00:00 2001 From: Henry Weller Date: Fri, 9 Dec 2016 16:29:27 +0000 Subject: [PATCH] MRFZone: Do not correct boundary conditions when inactive Patch contributed by Mattijs Janssens Resolves bug-report http://bugs.openfoam.org/view.php?id=2380 --- .../cfdTools/general/MRF/MRFZone.C | 15 ++++++++++++++ .../cfdTools/general/MRF/MRFZoneTemplates.C | 20 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/src/finiteVolume/cfdTools/general/MRF/MRFZone.C b/src/finiteVolume/cfdTools/general/MRF/MRFZone.C index bcda098524..b1f64847c5 100644 --- a/src/finiteVolume/cfdTools/general/MRF/MRFZone.C +++ b/src/finiteVolume/cfdTools/general/MRF/MRFZone.C @@ -405,6 +405,11 @@ void Foam::MRFZone::addCoriolis void Foam::MRFZone::makeRelative(volVectorField& U) const { + if (cellZoneID_ == -1) + { + return; + } + const volVectorField& C = mesh_.C(); const vector Omega = this->Omega(); @@ -474,6 +479,11 @@ void Foam::MRFZone::makeRelative void Foam::MRFZone::makeAbsolute(volVectorField& U) const { + if (cellZoneID_ == -1) + { + return; + } + const volVectorField& C = mesh_.C(); const vector Omega = this->Omega(); @@ -530,6 +540,11 @@ void Foam::MRFZone::makeAbsolute void Foam::MRFZone::correctBoundaryVelocity(volVectorField& U) const { + if (!active_) + { + return; + } + const vector Omega = this->Omega(); // Included patches diff --git a/src/finiteVolume/cfdTools/general/MRF/MRFZoneTemplates.C b/src/finiteVolume/cfdTools/general/MRF/MRFZoneTemplates.C index a5feb783de..0a591035d6 100644 --- a/src/finiteVolume/cfdTools/general/MRF/MRFZoneTemplates.C +++ b/src/finiteVolume/cfdTools/general/MRF/MRFZoneTemplates.C @@ -38,6 +38,11 @@ void Foam::MRFZone::makeRelativeRhoFlux surfaceScalarField& phi ) const { + if (!active_) + { + return; + } + const surfaceVectorField& Cf = mesh_.Cf(); const surfaceVectorField& Sf = mesh_.Sf(); @@ -65,6 +70,11 @@ void Foam::MRFZone::makeRelativeRhoFlux FieldField& phi ) const { + if (!active_) + { + return; + } + const surfaceVectorField& Cf = mesh_.Cf(); const surfaceVectorField& Sf = mesh_.Sf(); @@ -105,6 +115,11 @@ void Foam::MRFZone::makeRelativeRhoFlux const label patchi ) const { + if (!active_) + { + return; + } + const surfaceVectorField& Cf = mesh_.Cf(); const surfaceVectorField& Sf = mesh_.Sf(); @@ -138,6 +153,11 @@ void Foam::MRFZone::makeAbsoluteRhoFlux surfaceScalarField& phi ) const { + if (!active_) + { + return; + } + const surfaceVectorField& Cf = mesh_.Cf(); const surfaceVectorField& Sf = mesh_.Sf();