From 6b219f1ddacc33a031d2aff61ad3dc9564809da9 Mon Sep 17 00:00:00 2001 From: Andrew Heather <> Date: Tue, 22 Jun 2021 20:46:35 +0100 Subject: [PATCH] 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 | 36 +++++++++------- .../uniformJump/uniformJumpFvPatchField.H | 3 +- 10 files changed, 57 insertions(+), 88 deletions(-) diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.C index c92380c989c..ca0e6216e89 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<Type>::cyclicFvPatchField ( const fvPatch& p, const DimensionedField<Type, volMesh>& iF, - const dictionary& dict + const dictionary& dict, + const bool valueRequired ) : - coupledFvPatchField<Type>(p, iF, dict, false), + coupledFvPatchField<Type>(p, iF, dict, false), // Pass no valueRequired cyclicPatch_(refCast<const cyclicFvPatch>(p, dict)) { if (!isA<cyclicFvPatch>(p)) @@ -65,7 +66,10 @@ Foam::cyclicFvPatchField<Type>::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 86db5764412..1678a23251b 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<Type, volMesh>&, - 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 b078d1dc10d..6348b99caf4 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<Type>::jumpCyclicFvPatchField ( const fvPatch& p, const DimensionedField<Type, volMesh>& iF, - const dictionary& dict + const dictionary& dict, + const bool valueRequired ) : - cyclicFvPatchField<Type>(p, iF, dict) + cyclicFvPatchField<Type>(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 431d61aa73e..0b0425b1cc6 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<Type, volMesh>&, - 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 5abbc3545fe..261f572b18f 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<scalar>::calcFanJump(); -template<> -fanFvPatchField<scalar>::fanFvPatchField -( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& -); - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C index 53ec3fac7f6..219864267ab 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<Foam::scalar>::calcFanJump() } -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -template<> -Foam::fanFvPatchField<Foam::scalar>::fanFvPatchField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - uniformJumpFvPatchField<scalar>(p, iF, dict), - phiName_(dict.getOrDefault<word>("phi", "phi")), - rhoName_(dict.getOrDefault<word>("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<scalar>::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 d96fe621213..f25df2e4b06 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<Type>::fixedJumpFvPatchField ( const fvPatch& p, const DimensionedField<Type, volMesh>& iF, - const dictionary& dict + const dictionary& dict, + const bool valueRequired ) : - jumpCyclicFvPatchField<Type>(p, iF, dict), + jumpCyclicFvPatchField<Type>(p, iF, dict, false), // Pass no valueRequired jump_(p.size(), Zero), jump0_(p.size(), Zero), minJump_(dict.getOrDefault<Type>("minJump", pTraits<Type>::min)), @@ -81,7 +82,10 @@ Foam::fixedJumpFvPatchField<Type>::fixedJumpFvPatchField { if (this->cyclicPatch().owner()) { - jump_ = Field<Type>("jump", dict, p.size()); + if (valueRequired) + { + jump_ = Field<Type>("jump", dict, p.size()); + } if (dict.found("jump0")) { @@ -89,16 +93,19 @@ Foam::fixedJumpFvPatchField<Type>::fixedJumpFvPatchField } } - if (dict.found("value")) - { - fvPatchField<Type>::operator= - ( - Field<Type>("value", dict, p.size()) - ); - } - else + if (valueRequired) { - this->evaluate(Pstream::commsTypes::blocking); + if (dict.found("value")) + { + fvPatchField<Type>::operator= + ( + Field<Type>("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 8c5470782f5..ee758e59283 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<Type, volMesh>&, - 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 75758640834..06ff6d907ea 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<Type>::uniformJumpFvPatchField ( const fvPatch& p, const DimensionedField<Type, volMesh>& iF, - const dictionary& dict + const dictionary& dict, + const bool valueRequired ) : - fixedJumpFvPatchField<Type>(p, iF, dict), + fixedJumpFvPatchField<Type>(p, iF, dict, false), // Pass no valueRequired jumpTable_() { - if (this->cyclicPatch().owner()) - { - jumpTable_ = Function1<Type>::New("jumpTable", dict); - } - - if (dict.found("value")) - { - fvPatchField<Type>::operator= - ( - Field<Type>("value", dict, p.size()) - ); - } - else + if (valueRequired) { - this->evaluate(Pstream::commsTypes::blocking); + if (this->cyclicPatch().owner()) + { + jumpTable_ = Function1<Type>::New("jumpTable", dict); + } + + if (dict.found("value")) + { + fvPatchField<Type>::operator= + ( + Field<Type>("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 a68add222c9..f54cc9139c5 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<Type, volMesh>&, - const dictionary& + const dictionary&, + const bool valueRequired = true ); //- Construct by mapping given uniformJumpFvPatchField onto a -- GitLab