From 3cf0c58d19e1c75450370c146812f87b24f3ef5b Mon Sep 17 00:00:00 2001 From: Andrew Heather <> Date: Tue, 22 Jun 2021 20:46:35 +0100 Subject: [PATCH 1/3] BUG: fan/jump BCs - updated construction --- .../constraint/cyclic/cyclicFvPatchField.C | 10 +++-- .../constraint/cyclic/cyclicFvPatchField.H | 3 +- .../jumpCyclic/jumpCyclicFvPatchField.C | 5 ++- .../jumpCyclic/jumpCyclicFvPatchField.H | 3 +- .../derived/fan/fanFvPatchField.H | 8 ---- .../derived/fan/fanFvPatchFields.C | 43 ------------------- .../derived/fixedJump/fixedJumpFvPatchField.C | 31 +++++++------ .../derived/fixedJump/fixedJumpFvPatchField.H | 3 +- .../uniformJump/uniformJumpFvPatchField.C | 34 ++++++++------- .../uniformJump/uniformJumpFvPatchField.H | 3 +- 10 files changed, 56 insertions(+), 87 deletions(-) diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.C index c92380c989..ca0e6216e8 100644 --- a/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.C @@ -48,10 +48,11 @@ Foam::cyclicFvPatchField::cyclicFvPatchField ( const fvPatch& p, const DimensionedField& iF, - const dictionary& dict + const dictionary& dict, + const bool valueRequired ) : - coupledFvPatchField(p, iF, dict, false), + coupledFvPatchField(p, iF, dict, false), // Pass no valueRequired cyclicPatch_(refCast(p, dict)) { if (!isA(p)) @@ -65,7 +66,10 @@ Foam::cyclicFvPatchField::cyclicFvPatchField << exit(FatalIOError); } - this->evaluate(Pstream::commsTypes::blocking); + if (valueRequired) + { + this->evaluate(Pstream::commsTypes::blocking); + } } diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.H index 86db576441..1678a23251 100644 --- a/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.H +++ b/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.H @@ -111,7 +111,8 @@ public: ( const fvPatch&, const DimensionedField&, - const dictionary& + const dictionary&, + const bool valueRequired = true ); //- Construct by mapping given cyclicFvPatchField onto a new patch diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.C index b078d1dc10..6348b99caf 100644 --- a/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.C @@ -59,10 +59,11 @@ Foam::jumpCyclicFvPatchField::jumpCyclicFvPatchField ( const fvPatch& p, const DimensionedField& iF, - const dictionary& dict + const dictionary& dict, + const bool valueRequired ) : - cyclicFvPatchField(p, iF, dict) + cyclicFvPatchField(p, iF, dict, false) // Pass no valueRequired { // Call this evaluation in derived classes //this->evaluate(Pstream::commsTypes::blocking); diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.H index 431d61aa73..0b0425b1cc 100644 --- a/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.H +++ b/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.H @@ -82,7 +82,8 @@ public: ( const fvPatch&, const DimensionedField&, - const dictionary& + const dictionary&, + const bool valueRequired = true ); //- Construct by mapping given jumpCyclicFvPatchField onto a new patch diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.H index 5abbc3545f..261f572b18 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.H @@ -240,14 +240,6 @@ public: template<> void fanFvPatchField::calcFanJump(); -template<> -fanFvPatchField::fanFvPatchField -( - const fvPatch&, - const DimensionedField&, - const dictionary& -); - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C index 53ec3fac7f..219864267a 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C @@ -86,49 +86,6 @@ void Foam::fanFvPatchField::calcFanJump() } -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -template<> -Foam::fanFvPatchField::fanFvPatchField -( - const fvPatch& p, - const DimensionedField& iF, - const dictionary& dict -) -: - uniformJumpFvPatchField(p, iF, dict), - phiName_(dict.getOrDefault("phi", "phi")), - rhoName_(dict.getOrDefault("rho", "rho")), - uniformJump_(dict.getOrDefault("uniformJump", false)), - nonDimensional_(dict.getOrDefault("nonDimensional", false)), - rpm_(0), - dm_(0) -{ - if (nonDimensional_) - { - dict.readEntry("rpm", rpm_); - dict.readEntry("dm", dm_); - } - - if (this->cyclicPatch().owner()) - { - this->jumpTable_ = Function1::New("jumpTable", dict); - } - - if (dict.found("value")) - { - fvPatchScalarField::operator= - ( - scalarField("value", dict, p.size()) - ); - } - else - { - this->evaluate(Pstream::commsTypes::blocking); - } -} - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.C index d96fe62121..f25df2e4b0 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.C @@ -69,10 +69,11 @@ Foam::fixedJumpFvPatchField::fixedJumpFvPatchField ( const fvPatch& p, const DimensionedField& iF, - const dictionary& dict + const dictionary& dict, + const bool valueRequired ) : - jumpCyclicFvPatchField(p, iF, dict), + jumpCyclicFvPatchField(p, iF, dict, false), // Pass no valueRequired jump_(p.size(), Zero), jump0_(p.size(), Zero), minJump_(dict.getOrDefault("minJump", pTraits::min)), @@ -81,7 +82,10 @@ Foam::fixedJumpFvPatchField::fixedJumpFvPatchField { if (this->cyclicPatch().owner()) { - jump_ = Field("jump", dict, p.size()); + if (valueRequired) + { + jump_ = Field("jump", dict, p.size()); + } if (dict.found("jump0")) { @@ -89,16 +93,19 @@ Foam::fixedJumpFvPatchField::fixedJumpFvPatchField } } - if (dict.found("value")) + if (valueRequired) { - fvPatchField::operator= - ( - Field("value", dict, p.size()) - ); - } - else - { - this->evaluate(Pstream::commsTypes::blocking); + if (dict.found("value")) + { + fvPatchField::operator= + ( + Field("value", dict, p.size()) + ); + } + else + { + this->evaluate(Pstream::commsTypes::blocking); + } } } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.H index 8c5470782f..ee758e5928 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.H @@ -127,7 +127,8 @@ public: ( const fvPatch&, const DimensionedField&, - const dictionary& + const dictionary&, + const bool valueRequired = true ); //- Construct by mapping given fixedJumpFvPatchField onto a diff --git a/src/finiteVolume/fields/fvPatchFields/derived/uniformJump/uniformJumpFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/uniformJump/uniformJumpFvPatchField.C index 7575864083..06ff6d907e 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/uniformJump/uniformJumpFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/uniformJump/uniformJumpFvPatchField.C @@ -60,27 +60,31 @@ Foam::uniformJumpFvPatchField::uniformJumpFvPatchField ( const fvPatch& p, const DimensionedField& iF, - const dictionary& dict + const dictionary& dict, + const bool valueRequired ) : - fixedJumpFvPatchField(p, iF, dict), + fixedJumpFvPatchField(p, iF, dict, false), // Pass no valueRequired jumpTable_() { - if (this->cyclicPatch().owner()) + if (valueRequired) { - jumpTable_ = Function1::New("jumpTable", dict); - } + if (this->cyclicPatch().owner()) + { + jumpTable_ = Function1::New("jumpTable", dict); + } - if (dict.found("value")) - { - fvPatchField::operator= - ( - Field("value", dict, p.size()) - ); - } - else - { - this->evaluate(Pstream::commsTypes::blocking); + if (dict.found("value")) + { + fvPatchField::operator= + ( + Field("value", dict, p.size()) + ); + } + else + { + this->evaluate(Pstream::commsTypes::blocking); + } } } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/uniformJump/uniformJumpFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/uniformJump/uniformJumpFvPatchField.H index a68add222c..f54cc9139c 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/uniformJump/uniformJumpFvPatchField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/uniformJump/uniformJumpFvPatchField.H @@ -117,7 +117,8 @@ public: ( const fvPatch&, const DimensionedField&, - const dictionary& + const dictionary&, + const bool valueRequired = true ); //- Construct by mapping given uniformJumpFvPatchField onto a From 3b10cd84c6fe3dc8decd66ee96fa27b5212d8bc1 Mon Sep 17 00:00:00 2001 From: Andrew Heather <> Date: Wed, 23 Jun 2021 21:20:24 +0100 Subject: [PATCH 2/3] ENH: Provided backwards compat for deprecated partialFaceAreaWeightAMI --- .../faceAreaWeightAMI/faceAreaWeightAMI.C | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/meshTools/AMIInterpolation/AMIInterpolation/faceAreaWeightAMI/faceAreaWeightAMI.C b/src/meshTools/AMIInterpolation/AMIInterpolation/faceAreaWeightAMI/faceAreaWeightAMI.C index 395b1830f4..6163d56812 100644 --- a/src/meshTools/AMIInterpolation/AMIInterpolation/faceAreaWeightAMI/faceAreaWeightAMI.C +++ b/src/meshTools/AMIInterpolation/AMIInterpolation/faceAreaWeightAMI/faceAreaWeightAMI.C @@ -38,6 +38,17 @@ namespace Foam defineTypeNameAndDebug(faceAreaWeightAMI, 0); addToRunTimeSelectionTable(AMIInterpolation, faceAreaWeightAMI, dict); addToRunTimeSelectionTable(AMIInterpolation, faceAreaWeightAMI, component); + + // Backwards compatibility for pre v2106 versions + // - partialFaceAreaWeightAMI deprecated in v2106 + addNamedToRunTimeSelectionTable + ( + AMIInterpolation, + faceAreaWeightAMI, + dict, + partialFaceAreaWeightAMI + ); + } // * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * // From aaa54692618ce26f9c729be572c63cdf833f56a1 Mon Sep 17 00:00:00 2001 From: mattijs Date: Thu, 24 Jun 2021 12:03:13 +0100 Subject: [PATCH 3/3] ENH: fan bc: more logical initialisation. See #2138. --- .../jumpCyclic/jumpCyclicFvPatchField.C | 4 ++-- .../derived/fan/fanFvPatchField.C | 22 +++++++++++++++++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.C index 6348b99caf..312829ed0d 100644 --- a/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2019 OpenCFD Ltd. + Copyright (C) 2019-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -63,7 +63,7 @@ Foam::jumpCyclicFvPatchField::jumpCyclicFvPatchField const bool valueRequired ) : - cyclicFvPatchField(p, iF, dict, false) // Pass no valueRequired + cyclicFvPatchField(p, iF, dict, valueRequired) { // Call this evaluation in derived classes //this->evaluate(Pstream::commsTypes::blocking); diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.C index 58a9801295..0054c3def6 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2015 OpenFOAM Foundation - Copyright (C) 2017-2020 OpenCFD Ltd. + Copyright (C) 2017-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -67,7 +67,7 @@ Foam::fanFvPatchField::fanFvPatchField const dictionary& dict ) : - uniformJumpFvPatchField(p, iF, dict), + uniformJumpFvPatchField(p, iF, dict, false), // Pass no valueRequired phiName_(dict.getOrDefault("phi", "phi")), rhoName_(dict.getOrDefault("rho", "rho")), uniformJump_(dict.getOrDefault("uniformJump", false)), @@ -75,11 +75,29 @@ Foam::fanFvPatchField::fanFvPatchField rpm_(0), dm_(0) { + // Note that we've not read jumpTable_ etc if (nonDimensional_) { dict.readEntry("rpm", rpm_); dict.readEntry("dm", dm_); } + + if (this->cyclicPatch().owner()) + { + this->jumpTable_ = Function1::New("jumpTable", dict); + } + + if (dict.found("value")) + { + fvPatchField::operator= + ( + Field("value", dict, p.size()) + ); + } + else + { + this->evaluate(Pstream::commsTypes::blocking); + } }