From 42dba36832ef920ec5d7df5e8d51aaa5c343d95f Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Mon, 2 Jan 2023 09:33:00 +0100 Subject: [PATCH] ENH: consistent handling of "value" for faePatchField - base level now explicity equivalent to LAZY_READ with overriding as required - clearer documentation for reading of "value" for faPatchField --- .../basicSymmetry/basicSymmetryFaPatchField.H | 4 +- .../basic/calculated/calculatedFaPatchField.C | 33 +++++++------- .../basic/calculated/calculatedFaPatchField.H | 10 +++-- .../basic/coupled/coupledFaPatchField.C | 5 ++- .../basic/coupled/coupledFaPatchField.H | 11 ++--- .../fixedGradient/fixedGradientFaPatchField.C | 3 +- .../fixedGradient/fixedGradientFaPatchField.H | 23 +++++----- .../basic/fixedValue/fixedValueFaPatchField.C | 6 +-- .../basic/fixedValue/fixedValueFaPatchField.H | 10 +++-- .../basic/mixed/mixedFaPatchField.C | 3 +- .../basic/mixed/mixedFaPatchField.H | 5 ++- .../basic/transform/transformFaPatchField.C | 2 +- .../basic/transform/transformFaPatchField.H | 3 +- .../zeroGradient/zeroGradientFaPatchField.C | 7 +-- .../constraint/cyclic/cyclicFaPatchField.C | 10 +++-- .../constraint/cyclic/cyclicFaPatchField.H | 6 ++- .../constraint/empty/emptyFaPatchField.C | 15 +++---- .../processor/processorFaPatchField.C | 8 +++- .../symmetry/symmetryFaPatchField.H | 6 +-- .../constraint/wedge/wedgeFaPatchField.H | 6 +-- .../clampedPlate/clampedPlateFaPatchField.C | 13 +++--- .../clampedPlate/clampedPlateFaPatchField.H | 8 ++-- .../edgeNormalFixedValueFaPatchVectorField.C | 44 +++++++++++++------ .../edgeNormalFixedValueFaPatchVectorField.H | 17 ++++--- .../fixedValueOutflowFaPatchField.H | 2 +- .../inletOutlet/inletOutletFaPatchField.C | 8 ++-- .../derived/slip/slipFaPatchField.C | 2 +- .../derived/slip/slipFaPatchField.H | 7 +-- ...timeVaryingUniformFixedValueFaPatchField.C | 3 +- .../calculated/calculatedFaePatchField.C | 8 ++-- .../calculated/calculatedFaePatchField.H | 6 ++- .../basic/coupled/coupledFaePatchField.C | 5 ++- .../basic/coupled/coupledFaePatchField.H | 4 +- .../fixedValue/fixedValueFaePatchField.C | 6 ++- .../fixedValue/fixedValueFaePatchField.H | 6 ++- .../constraint/empty/emptyFaePatchField.C | 15 +++---- .../processor/processorFaePatchField.C | 2 +- .../symmetry/symmetryFaePatchField.C | 2 +- .../symmetry/symmetryFaePatchField.H | 1 + 39 files changed, 193 insertions(+), 142 deletions(-) diff --git a/src/finiteArea/fields/faPatchFields/basic/basicSymmetry/basicSymmetryFaPatchField.H b/src/finiteArea/fields/faPatchFields/basic/basicSymmetry/basicSymmetryFaPatchField.H index f16b52a621..8e29f1b3bf 100644 --- a/src/finiteArea/fields/faPatchFields/basic/basicSymmetry/basicSymmetryFaPatchField.H +++ b/src/finiteArea/fields/faPatchFields/basic/basicSymmetry/basicSymmetryFaPatchField.H @@ -71,6 +71,7 @@ public: ); //- Construct from patch, internal field and dictionary + // The "value" entry: NO_READ basicSymmetryFaPatchField ( const faPatch&, @@ -78,7 +79,8 @@ public: const dictionary& ); - //- Construct by mapping given basicSymmetryFaPatchField onto a new patch + //- Construct by mapping given basicSymmetryFaPatchField + //- onto a new patch basicSymmetryFaPatchField ( const basicSymmetryFaPatchField&, diff --git a/src/finiteArea/fields/faPatchFields/basic/calculated/calculatedFaPatchField.C b/src/finiteArea/fields/faPatchFields/basic/calculated/calculatedFaPatchField.C index f266ca1457..7e9ddfa6b1 100644 --- a/src/finiteArea/fields/faPatchFields/basic/calculated/calculatedFaPatchField.C +++ b/src/finiteArea/fields/faPatchFields/basic/calculated/calculatedFaPatchField.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2016-2017 Wikki Ltd - Copyright (C) 2021 OpenCFD Ltd. + Copyright (C) 2021-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -38,7 +38,7 @@ const Foam::word& Foam::faPatchField::calculatedType() } -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // template Foam::calculatedFaPatchField::calculatedFaPatchField @@ -51,6 +51,19 @@ Foam::calculatedFaPatchField::calculatedFaPatchField {} +template +Foam::calculatedFaPatchField::calculatedFaPatchField +( + const faPatch& p, + const DimensionedField& iF, + const dictionary& dict, + IOobjectOption::readOption valueRequired +) +: + faPatchField(p, iF, dict, valueRequired) +{} + + template Foam::calculatedFaPatchField::calculatedFaPatchField ( @@ -64,18 +77,6 @@ Foam::calculatedFaPatchField::calculatedFaPatchField {} -template -Foam::calculatedFaPatchField::calculatedFaPatchField -( - const faPatch& p, - const DimensionedField& iF, - const dictionary& dict -) -: - faPatchField(p, iF, Field("value", dict, p.size())) -{} - - template Foam::calculatedFaPatchField::calculatedFaPatchField ( @@ -98,10 +99,10 @@ Foam::calculatedFaPatchField::calculatedFaPatchField template -template +template Foam::tmp> Foam::faPatchField::NewCalculatedType ( - const faPatchField& pf + const faPatchField& pf ) { auto* patchTypeCtor = patchConstructorTable(pf.patch().type()); diff --git a/src/finiteArea/fields/faPatchFields/basic/calculated/calculatedFaPatchField.H b/src/finiteArea/fields/faPatchFields/basic/calculated/calculatedFaPatchField.H index e800cb7a0c..a6d93302e9 100644 --- a/src/finiteArea/fields/faPatchFields/basic/calculated/calculatedFaPatchField.H +++ b/src/finiteArea/fields/faPatchFields/basic/calculated/calculatedFaPatchField.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2016-2017 Wikki Ltd + Copyright (C) 2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -37,8 +38,8 @@ SourceFiles \*---------------------------------------------------------------------------*/ -#ifndef calculatedFaPatchField_H -#define calculatedFaPatchField_H +#ifndef Foam_calculatedFaPatchField_H +#define Foam_calculatedFaPatchField_H #include "faPatchField.H" @@ -56,7 +57,6 @@ class calculatedFaPatchField : public faPatchField { - public: //- Runtime type information @@ -77,7 +77,9 @@ public: ( const faPatch&, const DimensionedField&, - const dictionary& + const dictionary& dict, + //! The "value" entry (default: optional) + IOobjectOption::readOption valueRequired = IOobjectOption::LAZY_READ ); //- Construct by mapping given patch field onto a new patch diff --git a/src/finiteArea/fields/faPatchFields/basic/coupled/coupledFaPatchField.C b/src/finiteArea/fields/faPatchFields/basic/coupled/coupledFaPatchField.C index 8ac312d804..321c607100 100644 --- a/src/finiteArea/fields/faPatchFields/basic/coupled/coupledFaPatchField.C +++ b/src/finiteArea/fields/faPatchFields/basic/coupled/coupledFaPatchField.C @@ -73,11 +73,12 @@ Foam::coupledFaPatchField::coupledFaPatchField ( const faPatch& p, const DimensionedField& iF, - const dictionary& dict + const dictionary& dict, + IOobjectOption::readOption valueRequired ) : lduInterfaceField(refCast(p, dict)), - faPatchField(p, iF, dict) + faPatchField(p, iF, dict, valueRequired) {} diff --git a/src/finiteArea/fields/faPatchFields/basic/coupled/coupledFaPatchField.H b/src/finiteArea/fields/faPatchFields/basic/coupled/coupledFaPatchField.H index 8a861d4549..57416d3c44 100644 --- a/src/finiteArea/fields/faPatchFields/basic/coupled/coupledFaPatchField.H +++ b/src/finiteArea/fields/faPatchFields/basic/coupled/coupledFaPatchField.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2016-2017 Wikki Ltd - Copyright (C) 2019 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -38,8 +38,8 @@ SourceFiles \*---------------------------------------------------------------------------*/ -#ifndef coupledFaPatchField_H -#define coupledFaPatchField_H +#ifndef Foam_coupledFaPatchField_H +#define Foam_coupledFaPatchField_H #include "lduInterfaceField.H" #include "faPatchField.H" @@ -60,7 +60,6 @@ class coupledFaPatchField public lduInterfaceField, public faPatchField { - public: //- Runtime type information @@ -89,7 +88,9 @@ public: ( const faPatch&, const DimensionedField&, - const dictionary& + const dictionary& dict, + //! The "value" entry (default: mandatory) + IOobjectOption::readOption valueRequired = IOobjectOption::MUST_READ ); //- Construct by mapping the given coupledFaPatchField onto a new patch diff --git a/src/finiteArea/fields/faPatchFields/basic/fixedGradient/fixedGradientFaPatchField.C b/src/finiteArea/fields/faPatchFields/basic/fixedGradient/fixedGradientFaPatchField.C index e8f6af1c07..88c2bde870 100644 --- a/src/finiteArea/fields/faPatchFields/basic/fixedGradient/fixedGradientFaPatchField.C +++ b/src/finiteArea/fields/faPatchFields/basic/fixedGradient/fixedGradientFaPatchField.C @@ -26,6 +26,7 @@ License \*---------------------------------------------------------------------------*/ #include "fixedGradientFaPatchField.H" +#include "dictionary.H" // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // @@ -63,7 +64,7 @@ Foam::fixedGradientFaPatchField::fixedGradientFaPatchField const dictionary& dict ) : - faPatchField(p, iF), + faPatchField(p, iF, dict, IOobjectOption::NO_READ), gradient_("gradient", dict, p.size()) { evaluate(); diff --git a/src/finiteArea/fields/faPatchFields/basic/fixedGradient/fixedGradientFaPatchField.H b/src/finiteArea/fields/faPatchFields/basic/fixedGradient/fixedGradientFaPatchField.H index a7c959c76b..0c38a45a41 100644 --- a/src/finiteArea/fields/faPatchFields/basic/fixedGradient/fixedGradientFaPatchField.H +++ b/src/finiteArea/fields/faPatchFields/basic/fixedGradient/fixedGradientFaPatchField.H @@ -129,20 +129,19 @@ public: } - // Member functions + // Member Functions - // Return defining fields + //- The reference gradient at boundary + virtual Field& gradient() noexcept + { + return gradient_; + } - //- Return gradient at boundary - virtual Field& gradient() - { - return gradient_; - } - - virtual const Field& gradient() const - { - return gradient_; - } + //- The reference gradient at boundary + virtual const Field& gradient() const noexcept + { + return gradient_; + } // Mapping functions diff --git a/src/finiteArea/fields/faPatchFields/basic/fixedValue/fixedValueFaPatchField.C b/src/finiteArea/fields/faPatchFields/basic/fixedValue/fixedValueFaPatchField.C index 9b786c0c8c..28c18cd859 100644 --- a/src/finiteArea/fields/faPatchFields/basic/fixedValue/fixedValueFaPatchField.C +++ b/src/finiteArea/fields/faPatchFields/basic/fixedValue/fixedValueFaPatchField.C @@ -45,10 +45,11 @@ Foam::fixedValueFaPatchField::fixedValueFaPatchField ( const faPatch& p, const DimensionedField& iF, - const dictionary& dict + const dictionary& dict, + IOobjectOption::readOption valueRequired ) : - faPatchField(p, iF, Field("value", dict, p.size())) + faPatchField(p, iF, dict, valueRequired) {} @@ -137,5 +138,4 @@ void Foam::fixedValueFaPatchField::write(Ostream& os) const } - // ************************************************************************* // diff --git a/src/finiteArea/fields/faPatchFields/basic/fixedValue/fixedValueFaPatchField.H b/src/finiteArea/fields/faPatchFields/basic/fixedValue/fixedValueFaPatchField.H index a0ead76291..3788cc1058 100644 --- a/src/finiteArea/fields/faPatchFields/basic/fixedValue/fixedValueFaPatchField.H +++ b/src/finiteArea/fields/faPatchFields/basic/fixedValue/fixedValueFaPatchField.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2016-2017 Wikki Ltd + Copyright (C) 2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -37,8 +38,8 @@ SourceFiles \*---------------------------------------------------------------------------*/ -#ifndef fixedValueFaPatchField_H -#define fixedValueFaPatchField_H +#ifndef Foam_fixedValueFaPatchField_H +#define Foam_fixedValueFaPatchField_H #include "faPatchField.H" @@ -56,7 +57,6 @@ class fixedValueFaPatchField : public faPatchField { - public: //- Runtime type information @@ -77,7 +77,9 @@ public: ( const faPatch&, const DimensionedField&, - const dictionary& + const dictionary&, + //! The "value" entry (default: mandatory) + IOobjectOption::readOption valueRequired = IOobjectOption::MUST_READ ); //- Construct by mapping the given fixedValue patch field diff --git a/src/finiteArea/fields/faPatchFields/basic/mixed/mixedFaPatchField.C b/src/finiteArea/fields/faPatchFields/basic/mixed/mixedFaPatchField.C index 3b3dab4735..36defc1d88 100644 --- a/src/finiteArea/fields/faPatchFields/basic/mixed/mixedFaPatchField.C +++ b/src/finiteArea/fields/faPatchFields/basic/mixed/mixedFaPatchField.C @@ -188,8 +188,7 @@ void Foam::mixedFaPatchField::rmap { faPatchField::rmap(ptf, addr); - const mixedFaPatchField& mptf = - refCast>(ptf); + const auto& mptf = refCast>(ptf); refValue_.rmap(mptf.refValue_, addr); refGrad_.rmap(mptf.refGrad_, addr); diff --git a/src/finiteArea/fields/faPatchFields/basic/mixed/mixedFaPatchField.H b/src/finiteArea/fields/faPatchFields/basic/mixed/mixedFaPatchField.H index 1acf6eaf0b..c64af5442f 100644 --- a/src/finiteArea/fields/faPatchFields/basic/mixed/mixedFaPatchField.H +++ b/src/finiteArea/fields/faPatchFields/basic/mixed/mixedFaPatchField.H @@ -234,7 +234,8 @@ public: //- Evaluate the patch field virtual void evaluate ( - const Pstream::commsTypes commsType = Pstream::commsTypes::blocking + const Pstream::commsTypes commsType = + Pstream::commsTypes::blocking ); //- Return the matrix diagonal coefficients corresponding to the @@ -264,7 +265,7 @@ public: virtual void write(Ostream&) const; - // Member operators + // Member Operators virtual void operator=(const UList&) {} diff --git a/src/finiteArea/fields/faPatchFields/basic/transform/transformFaPatchField.C b/src/finiteArea/fields/faPatchFields/basic/transform/transformFaPatchField.C index cd270f9325..a5da3c9ef6 100644 --- a/src/finiteArea/fields/faPatchFields/basic/transform/transformFaPatchField.C +++ b/src/finiteArea/fields/faPatchFields/basic/transform/transformFaPatchField.C @@ -62,7 +62,7 @@ Foam::transformFaPatchField::transformFaPatchField const dictionary& dict ) : - faPatchField(p, iF, dict) + faPatchField(p, iF, dict, IOobjectOption::NO_READ) {} diff --git a/src/finiteArea/fields/faPatchFields/basic/transform/transformFaPatchField.H b/src/finiteArea/fields/faPatchFields/basic/transform/transformFaPatchField.H index cfc991aba1..7915ed2fc1 100644 --- a/src/finiteArea/fields/faPatchFields/basic/transform/transformFaPatchField.H +++ b/src/finiteArea/fields/faPatchFields/basic/transform/transformFaPatchField.H @@ -73,7 +73,8 @@ public: const DimensionedField& ); - //- Construct from patch, internal field and dictionary + //- Construct from patch, internal field and dictionary. + // The "value" entry: NO_READ transformFaPatchField ( const faPatch&, diff --git a/src/finiteArea/fields/faPatchFields/basic/zeroGradient/zeroGradientFaPatchField.C b/src/finiteArea/fields/faPatchFields/basic/zeroGradient/zeroGradientFaPatchField.C index 862d37c85a..1465c0a8c3 100644 --- a/src/finiteArea/fields/faPatchFields/basic/zeroGradient/zeroGradientFaPatchField.C +++ b/src/finiteArea/fields/faPatchFields/basic/zeroGradient/zeroGradientFaPatchField.C @@ -68,12 +68,13 @@ Foam::zeroGradientFaPatchField::zeroGradientFaPatchField ( const faPatch& p, const DimensionedField& iF, - const dictionary& + const dictionary& dict ) : - faPatchField(p, iF) + faPatchField(p, iF, dict, IOobjectOption::NO_READ) { - faPatchField::operator=(this->patchInternalField()); + // Set to the internal field + faPatchField::patchInternalField(*this); } diff --git a/src/finiteArea/fields/faPatchFields/constraint/cyclic/cyclicFaPatchField.C b/src/finiteArea/fields/faPatchFields/constraint/cyclic/cyclicFaPatchField.C index be981c5518..e27ad11d7a 100644 --- a/src/finiteArea/fields/faPatchFields/constraint/cyclic/cyclicFaPatchField.C +++ b/src/finiteArea/fields/faPatchFields/constraint/cyclic/cyclicFaPatchField.C @@ -72,10 +72,11 @@ Foam::cyclicFaPatchField::cyclicFaPatchField ( const faPatch& p, const DimensionedField& iF, - const dictionary& dict + const dictionary& dict, + IOobjectOption::readOption valueRequired ) : - coupledFaPatchField(p, iF, dict), + coupledFaPatchField(p, iF, dict, IOobjectOption::NO_READ), cyclicPatch_(refCast(p, dict)) { if (!isA(p)) @@ -89,7 +90,10 @@ Foam::cyclicFaPatchField::cyclicFaPatchField << exit(FatalIOError); } - this->evaluate(Pstream::commsTypes::blocking); + if (IOobjectOption::isReadRequired(valueRequired)) + { + this->evaluate(Pstream::commsTypes::blocking); + } } diff --git a/src/finiteArea/fields/faPatchFields/constraint/cyclic/cyclicFaPatchField.H b/src/finiteArea/fields/faPatchFields/constraint/cyclic/cyclicFaPatchField.H index f30eae96fe..b81064f795 100644 --- a/src/finiteArea/fields/faPatchFields/constraint/cyclic/cyclicFaPatchField.H +++ b/src/finiteArea/fields/faPatchFields/constraint/cyclic/cyclicFaPatchField.H @@ -62,7 +62,7 @@ class cyclicFaPatchField virtual public cyclicLduInterfaceField, public coupledFaPatchField { - // Private data + // Private Data //- Local reference cast into the cyclic patch const cyclicFaPatch& cyclicPatch_; @@ -98,7 +98,9 @@ public: ( const faPatch&, const DimensionedField&, - const dictionary& + const dictionary& dict, + //! Evaluate (default: mandatory) + IOobjectOption::readOption valueRequired = IOobjectOption::MUST_READ ); //- Construct by mapping given cyclicFaPatchField onto a new patch diff --git a/src/finiteArea/fields/faPatchFields/constraint/empty/emptyFaPatchField.C b/src/finiteArea/fields/faPatchFields/constraint/empty/emptyFaPatchField.C index d2ee6e7e14..b7cc020fe8 100644 --- a/src/finiteArea/fields/faPatchFields/constraint/empty/emptyFaPatchField.C +++ b/src/finiteArea/fields/faPatchFields/constraint/empty/emptyFaPatchField.C @@ -38,7 +38,7 @@ Foam::emptyFaPatchField::emptyFaPatchField const DimensionedField& iF ) : - faPatchField(p, iF, Field(0)) + faPatchField(p, iF, Field()) {} @@ -51,7 +51,7 @@ Foam::emptyFaPatchField::emptyFaPatchField const faPatchFieldMapper& ) : - faPatchField(p, iF, Field(0)) + faPatchField(p, iF, Field()) { if (!isType(p)) { @@ -74,7 +74,7 @@ Foam::emptyFaPatchField::emptyFaPatchField const dictionary& dict ) : - faPatchField(p, iF, Field(0)) + faPatchField(p, iF, Field()) { if (!isA(p)) { @@ -95,12 +95,7 @@ Foam::emptyFaPatchField::emptyFaPatchField const emptyFaPatchField& ptf ) : - faPatchField - ( - ptf.patch(), - ptf.internalField(), - Field(0) - ) + faPatchField(ptf.patch(), ptf.internalField(), Field()) {} @@ -111,7 +106,7 @@ Foam::emptyFaPatchField::emptyFaPatchField const DimensionedField& iF ) : - faPatchField(ptf.patch(), iF, Field(0)) + faPatchField(ptf.patch(), iF, Field()) {} diff --git a/src/finiteArea/fields/faPatchFields/constraint/processor/processorFaPatchField.C b/src/finiteArea/fields/faPatchFields/constraint/processor/processorFaPatchField.C index a1b1c1eb2e..d65ea2637d 100644 --- a/src/finiteArea/fields/faPatchFields/constraint/processor/processorFaPatchField.C +++ b/src/finiteArea/fields/faPatchFields/constraint/processor/processorFaPatchField.C @@ -101,7 +101,7 @@ Foam::processorFaPatchField::processorFaPatchField const dictionary& dict ) : - coupledFaPatchField(p, iF, dict), + coupledFaPatchField(p, iF, dict, IOobjectOption::NO_READ), procPatch_(refCast(p, dict)), sendRequest_(-1), recvRequest_(-1) @@ -116,6 +116,12 @@ Foam::processorFaPatchField::processorFaPatchField << " in file " << this->internalField().objectPath() << exit(FatalIOError); } + + // Use 'value' supplied, or set to internal field + if (!this->readValueEntry(dict)) + { + faPatchField::patchInternalField(*this); + } } diff --git a/src/finiteArea/fields/faPatchFields/constraint/symmetry/symmetryFaPatchField.H b/src/finiteArea/fields/faPatchFields/constraint/symmetry/symmetryFaPatchField.H index b128b40989..7233d56e89 100644 --- a/src/finiteArea/fields/faPatchFields/constraint/symmetry/symmetryFaPatchField.H +++ b/src/finiteArea/fields/faPatchFields/constraint/symmetry/symmetryFaPatchField.H @@ -38,8 +38,8 @@ SourceFiles \*---------------------------------------------------------------------------*/ -#ifndef symmetryFaPatchField_H -#define symmetryFaPatchField_H +#ifndef Foam_symmetryFaPatchField_H +#define Foam_symmetryFaPatchField_H #include "basicSymmetryFaPatchField.H" #include "symmetryFaPatch.H" @@ -58,7 +58,6 @@ class symmetryFaPatchField : public basicSymmetryFaPatchField { - public: //- Runtime type information @@ -75,6 +74,7 @@ public: ); //- Construct from patch, internal field and dictionary + // The "value" entry: NO_READ symmetryFaPatchField ( const faPatch&, diff --git a/src/finiteArea/fields/faPatchFields/constraint/wedge/wedgeFaPatchField.H b/src/finiteArea/fields/faPatchFields/constraint/wedge/wedgeFaPatchField.H index eb3e1c30f3..f1933ec1ab 100644 --- a/src/finiteArea/fields/faPatchFields/constraint/wedge/wedgeFaPatchField.H +++ b/src/finiteArea/fields/faPatchFields/constraint/wedge/wedgeFaPatchField.H @@ -37,8 +37,8 @@ SourceFiles \*---------------------------------------------------------------------------*/ -#ifndef wedgeFaPatchField_H -#define wedgeFaPatchField_H +#ifndef Foam_wedgeFaPatchField_H +#define Foam_wedgeFaPatchField_H #include "transformFaPatchField.H" #include "wedgeFaPatch.H" @@ -58,7 +58,6 @@ class wedgeFaPatchField : public transformFaPatchField { - public: //- Runtime type information @@ -75,6 +74,7 @@ public: ); //- Construct from patch, internal field and dictionary + // The "value" entry: NO_READ wedgeFaPatchField ( const faPatch&, diff --git a/src/finiteArea/fields/faPatchFields/derived/clampedPlate/clampedPlateFaPatchField.C b/src/finiteArea/fields/faPatchFields/derived/clampedPlate/clampedPlateFaPatchField.C index d6fb84c4ed..77fde57095 100644 --- a/src/finiteArea/fields/faPatchFields/derived/clampedPlate/clampedPlateFaPatchField.C +++ b/src/finiteArea/fields/faPatchFields/derived/clampedPlate/clampedPlateFaPatchField.C @@ -56,7 +56,7 @@ clampedPlateFaPatchField::clampedPlateFaPatchField const dictionary& dict ) : - faPatchField(p, iF) + faPatchField(p, iF, dict, IOobjectOption::NO_READ) { faPatchField::operator=(this->patchInternalField()); } @@ -113,14 +113,13 @@ void clampedPlateFaPatchField::evaluate(const Pstream::commsTypes) this->updateCoeffs(); } - Field::operator=(pTraits::zero); + Field::operator=(Zero); - const labelUList& edgeFaces = this->patch().edgeFaces(); - forAll(edgeFaces, edgeID) + auto& iF = const_cast&>(this->primitiveField()); + + for (const label facei : this->patch().edgeFaces()) { - label faceID = edgeFaces[edgeID]; - const_cast&>(this->primitiveField())[faceID] = - pTraits::zero; + iF[facei] = Zero; } faPatchField::evaluate(); diff --git a/src/finiteArea/fields/faPatchFields/derived/clampedPlate/clampedPlateFaPatchField.H b/src/finiteArea/fields/faPatchFields/derived/clampedPlate/clampedPlateFaPatchField.H index acce423a43..de365d612c 100644 --- a/src/finiteArea/fields/faPatchFields/derived/clampedPlate/clampedPlateFaPatchField.H +++ b/src/finiteArea/fields/faPatchFields/derived/clampedPlate/clampedPlateFaPatchField.H @@ -27,7 +27,7 @@ Class Foam::clampedPlateFaPatchField Description - This BC provides a clamped BC. It sets zero fixe value and zeroGradient. + This BC provides a clamped BC. It sets zero fixed value and zeroGradient. Usage Example of the boundary condition specification: @@ -91,6 +91,7 @@ public: ); //- Construct from patch, internal field and dictionary + // The "value" entry: NO_READ clampedPlateFaPatchField ( const faPatch&, @@ -143,9 +144,8 @@ public: } - //- Destructor - virtual ~clampedPlateFaPatchField() - {} + //- Destructor + virtual ~clampedPlateFaPatchField() = default; // Member Functions diff --git a/src/finiteArea/fields/faPatchFields/derived/edgeNormalFixedValue/edgeNormalFixedValueFaPatchVectorField.C b/src/finiteArea/fields/faPatchFields/derived/edgeNormalFixedValue/edgeNormalFixedValueFaPatchVectorField.C index 541dd89b0f..15b6fc9583 100644 --- a/src/finiteArea/fields/faPatchFields/derived/edgeNormalFixedValue/edgeNormalFixedValueFaPatchVectorField.C +++ b/src/finiteArea/fields/faPatchFields/derived/edgeNormalFixedValue/edgeNormalFixedValueFaPatchVectorField.C @@ -40,7 +40,20 @@ edgeNormalFixedValueFaPatchVectorField ) : fixedValueFaPatchVectorField(p, iF), - refValue_(p.size(), 0) + refValue_(p.size(), Zero) +{} + + +Foam::edgeNormalFixedValueFaPatchVectorField:: +edgeNormalFixedValueFaPatchVectorField +( + const faPatch& p, + const DimensionedField& iF, + const scalar refValue +) +: + fixedValueFaPatchVectorField(p, iF), + refValue_(p.size(), refValue) {} @@ -66,9 +79,13 @@ edgeNormalFixedValueFaPatchVectorField const dictionary& dict ) : - fixedValueFaPatchVectorField(p, iF, dict), + fixedValueFaPatchVectorField(p, iF, dict, IOobjectOption::NO_READ), refValue_("refValue", dict, p.size()) -{} +{ + tmp tvalues(refValue_*patch().edgeNormals()); + + faPatchVectorField::operator=(tvalues); +} Foam::edgeNormalFixedValueFaPatchVectorField:: @@ -128,7 +145,10 @@ void Foam::edgeNormalFixedValueFaPatchVectorField::updateCoeffs() return; } - operator==(refValue_*patch().edgeNormals()); + tmp tvalues(refValue_*patch().edgeNormals()); + + faPatchVectorField::operator=(tvalues); + faPatchVectorField::updateCoeffs(); } @@ -139,18 +159,16 @@ void Foam::edgeNormalFixedValueFaPatchVectorField::write(Ostream& os) const } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // namespace Foam { - -makeFaPatchTypeField -( - faPatchVectorField, - edgeNormalFixedValueFaPatchVectorField -); - -} // End namespace Foam + makeFaPatchTypeField + ( + faPatchVectorField, + edgeNormalFixedValueFaPatchVectorField + ); +} // ************************************************************************* // diff --git a/src/finiteArea/fields/faPatchFields/derived/edgeNormalFixedValue/edgeNormalFixedValueFaPatchVectorField.H b/src/finiteArea/fields/faPatchFields/derived/edgeNormalFixedValue/edgeNormalFixedValueFaPatchVectorField.H index 08c9eed5a3..dd4718cd35 100644 --- a/src/finiteArea/fields/faPatchFields/derived/edgeNormalFixedValue/edgeNormalFixedValueFaPatchVectorField.H +++ b/src/finiteArea/fields/faPatchFields/derived/edgeNormalFixedValue/edgeNormalFixedValueFaPatchVectorField.H @@ -60,9 +60,9 @@ class edgeNormalFixedValueFaPatchVectorField : public fixedValueFaPatchVectorField { - // Private data + // Private Data - //- Surface-normal velocity value + //- Edge-normal velocity value scalarField refValue_; @@ -81,6 +81,14 @@ public: const DimensionedField& ); + //- Construct from patch, internal field and reference value + edgeNormalFixedValueFaPatchVectorField + ( + const faPatch&, + const DimensionedField&, + const scalar refValue + ); + //- Construct from patch, internal field and dictionary edgeNormalFixedValueFaPatchVectorField ( @@ -89,9 +97,8 @@ public: const dictionary& ); - //- Construct by mapping given - // edgeNormalFixedValueFaPatchVectorField - // onto a new patch + //- Construct by mapping given edgeNormalFixedValueFaPatchVectorField + //- onto a new patch edgeNormalFixedValueFaPatchVectorField ( const edgeNormalFixedValueFaPatchVectorField&, diff --git a/src/finiteArea/fields/faPatchFields/derived/fixedValueOutflow/fixedValueOutflowFaPatchField.H b/src/finiteArea/fields/faPatchFields/derived/fixedValueOutflow/fixedValueOutflowFaPatchField.H index ffbf7b22ba..cc90c9ddf0 100644 --- a/src/finiteArea/fields/faPatchFields/derived/fixedValueOutflow/fixedValueOutflowFaPatchField.H +++ b/src/finiteArea/fields/faPatchFields/derived/fixedValueOutflow/fixedValueOutflowFaPatchField.H @@ -56,7 +56,6 @@ class fixedValueOutflowFaPatchField : public faPatchField { - public: //- Runtime type information @@ -73,6 +72,7 @@ public: ); //- Construct from patch, internal field and dictionary + // The "value" entry: MUST_READ fixedValueOutflowFaPatchField ( const faPatch&, diff --git a/src/finiteArea/fields/faPatchFields/derived/inletOutlet/inletOutletFaPatchField.C b/src/finiteArea/fields/faPatchFields/derived/inletOutlet/inletOutletFaPatchField.C index 001faa1012..cf626198f4 100644 --- a/src/finiteArea/fields/faPatchFields/derived/inletOutlet/inletOutletFaPatchField.C +++ b/src/finiteArea/fields/faPatchFields/derived/inletOutlet/inletOutletFaPatchField.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2016-2017 Wikki Ltd - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -68,11 +68,11 @@ Foam::inletOutletFaPatchField::inletOutletFaPatchField const dictionary& dict ) : - mixedFaPatchField(p, iF), + // No reading of refValue, refGradient, valueFraction entries + mixedFaPatchField(p, iF, dict, IOobjectOption::NO_READ), phiName_(dict.getOrDefault("phi", "phi")) { - faPatchFieldBase::readDict(dict); - + // Require inletValue (MUST_READ) this->refValue().assign("inletValue", dict, p.size()); if (!this->readValueEntry(dict)) diff --git a/src/finiteArea/fields/faPatchFields/derived/slip/slipFaPatchField.C b/src/finiteArea/fields/faPatchFields/derived/slip/slipFaPatchField.C index 4d9708aad7..a6e2e3fc1b 100644 --- a/src/finiteArea/fields/faPatchFields/derived/slip/slipFaPatchField.C +++ b/src/finiteArea/fields/faPatchFields/derived/slip/slipFaPatchField.C @@ -36,7 +36,7 @@ Foam::slipFaPatchField::slipFaPatchField const DimensionedField& iF ) : - basicSymmetryFaPatchField(p, iF) + basicSymmetryFaPatchField(p, iF) {} diff --git a/src/finiteArea/fields/faPatchFields/derived/slip/slipFaPatchField.H b/src/finiteArea/fields/faPatchFields/derived/slip/slipFaPatchField.H index b245e636c5..f140258de0 100644 --- a/src/finiteArea/fields/faPatchFields/derived/slip/slipFaPatchField.H +++ b/src/finiteArea/fields/faPatchFields/derived/slip/slipFaPatchField.H @@ -39,8 +39,8 @@ SourceFiles \*---------------------------------------------------------------------------*/ -#ifndef slipFaPatchField_H -#define slipFaPatchField_H +#ifndef Foam_slipFaPatchField_H +#define Foam_slipFaPatchField_H #include "basicSymmetryFaPatchField.H" @@ -58,7 +58,6 @@ class slipFaPatchField : public basicSymmetryFaPatchField { - public: //- Runtime type information @@ -75,6 +74,7 @@ public: ); //- Construct from patch, internal field and dictionary + // The "value" entry: NO_READ slipFaPatchField ( const faPatch&, @@ -125,6 +125,7 @@ public: ); } + //- Destructor virtual ~slipFaPatchField() = default; }; diff --git a/src/finiteArea/fields/faPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFaPatchField.C b/src/finiteArea/fields/faPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFaPatchField.C index 2abee7d91c..7629080fa8 100644 --- a/src/finiteArea/fields/faPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFaPatchField.C +++ b/src/finiteArea/fields/faPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFaPatchField.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2016-2017 Wikki Ltd + Copyright (C) 2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -52,7 +53,7 @@ timeVaryingUniformFixedValueFaPatchField const dictionary& dict ) : - fixedValueFaPatchField(p, iF), + fixedValueFaPatchField(p, iF, dict, IOobjectOption::NO_READ), timeSeries_(dict) { if (dict.found("value")) diff --git a/src/finiteArea/fields/faePatchFields/basic/calculated/calculatedFaePatchField.C b/src/finiteArea/fields/faePatchFields/basic/calculated/calculatedFaePatchField.C index d27fa0bfa6..181683faa7 100644 --- a/src/finiteArea/fields/faePatchFields/basic/calculated/calculatedFaePatchField.C +++ b/src/finiteArea/fields/faePatchFields/basic/calculated/calculatedFaePatchField.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2016-2017 Wikki Ltd - Copyright (C) 2021 OpenCFD Ltd. + Copyright (C) 2021-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -37,6 +37,7 @@ const Foam::word& Foam::faePatchField::calculatedType() return Foam::calculatedFaePatchField::typeName; } + // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template @@ -68,10 +69,11 @@ Foam::calculatedFaePatchField::calculatedFaePatchField ( const faPatch& p, const DimensionedField& iF, - const dictionary& dict + const dictionary& dict, + IOobjectOption::readOption valueRequired ) : - faePatchField(p, iF, Field("value", dict, p.size())) + faePatchField(p, iF, dict, valueRequired) {} diff --git a/src/finiteArea/fields/faePatchFields/basic/calculated/calculatedFaePatchField.H b/src/finiteArea/fields/faePatchFields/basic/calculated/calculatedFaePatchField.H index f2343d1f3f..61d3b13a64 100644 --- a/src/finiteArea/fields/faePatchFields/basic/calculated/calculatedFaePatchField.H +++ b/src/finiteArea/fields/faePatchFields/basic/calculated/calculatedFaePatchField.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2016-2017 Wikki Ltd - Copyright (C) 2019 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -77,7 +77,9 @@ public: ( const faPatch&, const DimensionedField&, - const dictionary& + const dictionary& dict, + //! The "value" entry (default: mandatory) + IOobjectOption::readOption valueRequired = IOobjectOption::MUST_READ ); //- Construct by mapping given patch field onto a new patch diff --git a/src/finiteArea/fields/faePatchFields/basic/coupled/coupledFaePatchField.C b/src/finiteArea/fields/faePatchFields/basic/coupled/coupledFaePatchField.C index 0e8f5ef63e..5cd1efeef7 100644 --- a/src/finiteArea/fields/faePatchFields/basic/coupled/coupledFaePatchField.C +++ b/src/finiteArea/fields/faePatchFields/basic/coupled/coupledFaePatchField.C @@ -70,10 +70,11 @@ Foam::coupledFaePatchField::coupledFaePatchField ( const faPatch& p, const DimensionedField& iF, - const dictionary& dict + const dictionary& dict, + IOobjectOption::readOption valueRequired ) : - faePatchField(p, iF, dict) + faePatchField(p, iF, dict, valueRequired) {} diff --git a/src/finiteArea/fields/faePatchFields/basic/coupled/coupledFaePatchField.H b/src/finiteArea/fields/faePatchFields/basic/coupled/coupledFaePatchField.H index a92fb3f175..f119f21e85 100644 --- a/src/finiteArea/fields/faePatchFields/basic/coupled/coupledFaePatchField.H +++ b/src/finiteArea/fields/faePatchFields/basic/coupled/coupledFaePatchField.H @@ -86,7 +86,9 @@ public: ( const faPatch&, const DimensionedField&, - const dictionary& + const dictionary& dict, + //! The "value" entry (default: optional) + IOobjectOption::readOption valueRequired = IOobjectOption::LAZY_READ ); //- Construct by mapping the given coupledFaePatchField onto a new patch diff --git a/src/finiteArea/fields/faePatchFields/basic/fixedValue/fixedValueFaePatchField.C b/src/finiteArea/fields/faePatchFields/basic/fixedValue/fixedValueFaePatchField.C index 0455efdbcf..d6e9b19c99 100644 --- a/src/finiteArea/fields/faePatchFields/basic/fixedValue/fixedValueFaePatchField.C +++ b/src/finiteArea/fields/faePatchFields/basic/fixedValue/fixedValueFaePatchField.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2016-2017 Wikki Ltd + Copyright (C) 2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -45,10 +46,11 @@ Foam::fixedValueFaePatchField::fixedValueFaePatchField ( const faPatch& p, const DimensionedField& iF, - const dictionary& dict + const dictionary& dict, + IOobjectOption::readOption valueRequired ) : - faePatchField(p, iF, Field("value", dict, p.size())) + faePatchField(p, iF, dict, valueRequired) {} diff --git a/src/finiteArea/fields/faePatchFields/basic/fixedValue/fixedValueFaePatchField.H b/src/finiteArea/fields/faePatchFields/basic/fixedValue/fixedValueFaePatchField.H index 7d36b4d063..beb7d4c751 100644 --- a/src/finiteArea/fields/faePatchFields/basic/fixedValue/fixedValueFaePatchField.H +++ b/src/finiteArea/fields/faePatchFields/basic/fixedValue/fixedValueFaePatchField.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2016-2017 Wikki Ltd - Copyright (C) 2019 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -77,7 +77,9 @@ public: ( const faPatch&, const DimensionedField&, - const dictionary& + const dictionary& dict, + //! The "value" entry (default: mandatory) + IOobjectOption::readOption valueRequired = IOobjectOption::MUST_READ ); //- Construct by mapping the given fixedValue patch field diff --git a/src/finiteArea/fields/faePatchFields/constraint/empty/emptyFaePatchField.C b/src/finiteArea/fields/faePatchFields/constraint/empty/emptyFaePatchField.C index 4a282b0b8b..3032a855ed 100644 --- a/src/finiteArea/fields/faePatchFields/constraint/empty/emptyFaePatchField.C +++ b/src/finiteArea/fields/faePatchFields/constraint/empty/emptyFaePatchField.C @@ -37,7 +37,7 @@ Foam::emptyFaePatchField::emptyFaePatchField const DimensionedField& iF ) : - faePatchField(p, iF, Field(0)) + faePatchField(p, iF, Field()) {} @@ -50,7 +50,7 @@ Foam::emptyFaePatchField::emptyFaePatchField const faPatchFieldMapper& ) : - faePatchField(p, iF, Field(0)) + faePatchField(p, iF, Field()) { if (!isType(this->patch())) { @@ -72,7 +72,7 @@ Foam::emptyFaePatchField::emptyFaePatchField const dictionary& dict ) : - faePatchField(p, iF, Field(0)) + faePatchField(p, iF, Field()) { if (!isType(p)) { @@ -90,12 +90,7 @@ Foam::emptyFaePatchField::emptyFaePatchField const emptyFaePatchField& ptf ) : - faePatchField - ( - ptf.patch(), - ptf.internalField(), - Field(0) - ) + faePatchField(ptf.patch(), ptf.internalField(), Field()) {} @@ -106,7 +101,7 @@ Foam::emptyFaePatchField::emptyFaePatchField const DimensionedField& iF ) : - faePatchField(ptf.patch(), iF, Field(0)) + faePatchField(ptf.patch(), iF, Field()) {} diff --git a/src/finiteArea/fields/faePatchFields/constraint/processor/processorFaePatchField.C b/src/finiteArea/fields/faePatchFields/constraint/processor/processorFaePatchField.C index d39e63eb25..4a08f1158d 100644 --- a/src/finiteArea/fields/faePatchFields/constraint/processor/processorFaePatchField.C +++ b/src/finiteArea/fields/faePatchFields/constraint/processor/processorFaePatchField.C @@ -86,7 +86,7 @@ Foam::processorFaePatchField::processorFaePatchField const dictionary& dict ) : - coupledFaePatchField(p, iF, dict), + coupledFaePatchField(p, iF, dict, IOobjectOption::LAZY_READ), procPatch_(refCast(p, dict)) { if (!isType(p)) diff --git a/src/finiteArea/fields/faePatchFields/constraint/symmetry/symmetryFaePatchField.C b/src/finiteArea/fields/faePatchFields/constraint/symmetry/symmetryFaePatchField.C index 0745e30443..7c80e088d4 100644 --- a/src/finiteArea/fields/faePatchFields/constraint/symmetry/symmetryFaePatchField.C +++ b/src/finiteArea/fields/faePatchFields/constraint/symmetry/symmetryFaePatchField.C @@ -71,7 +71,7 @@ Foam::symmetryFaePatchField::symmetryFaePatchField const dictionary& dict ) : - faePatchField(p, iF, dict) + faePatchField(p, iF, dict, IOobjectOption::NO_READ) { if (!isType(p)) { diff --git a/src/finiteArea/fields/faePatchFields/constraint/symmetry/symmetryFaePatchField.H b/src/finiteArea/fields/faePatchFields/constraint/symmetry/symmetryFaePatchField.H index ff0d676a29..f2f80db21a 100644 --- a/src/finiteArea/fields/faePatchFields/constraint/symmetry/symmetryFaePatchField.H +++ b/src/finiteArea/fields/faePatchFields/constraint/symmetry/symmetryFaePatchField.H @@ -75,6 +75,7 @@ public: ); //- Construct from patch, internal field and dictionary + // The "value" entry: NO_READ symmetryFaePatchField ( const faPatch&,