From ffc98940337246102800795186449c819e698d5d Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Mon, 13 May 2024 12:31:57 +0200 Subject: [PATCH] STYLE: more consistency in writeEntry() signatures - boundary entries with writeEntry(const word&, ...) instead of writeEntry(const keyType&, ...) to match with most other writeEntry() signatures. Also, this content will not be used to supply regex matched sub-dictionaries. STYLE: more consistent patch initEvaluate()/evaluate() coding --- applications/test/dimField/Make/files | 3 - applications/test/dimField1/Make/files | 3 + .../test/{dimField => dimField1}/Make/options | 0 .../Test-dimField1.cxx} | 50 +++++++++-------- .../test/parallelOverset/Make/options | 1 + .../test/parallelOverset/laplacianDyMFoam.C | 2 + .../preProcessing/mapFieldsPar/MapVolFields.H | 47 +++++++--------- .../polyBoundaryMesh/polyBoundaryMesh.C | 2 +- .../polyBoundaryMesh/polyBoundaryMesh.H | 2 +- .../polyBoundaryMeshEntries.C | 2 +- .../polyBoundaryMeshEntries.H | 2 +- .../faMesh/faBoundaryMesh/faBoundaryMesh.C | 2 +- .../faMesh/faBoundaryMesh/faBoundaryMesh.H | 2 +- .../faBoundaryMesh/faBoundaryMeshEntries.C | 2 +- .../faBoundaryMesh/faBoundaryMeshEntries.H | 2 +- .../volPointInterpolate.C | 3 +- .../field/mapFields/mapFieldsTemplates.C | 43 ++++++-------- .../zeroGradient/zeroGradientTemplates.C | 6 +- .../cellSources/fieldToCell/fieldDictionary.H | 26 ++++----- .../cellCellStencilTemplates.C | 23 ++++---- src/overset/oversetFvMesh/oversetFvMeshBase.H | 2 +- .../oversetFvMeshBaseTemplates.C | 56 ++++++++++--------- 22 files changed, 136 insertions(+), 145 deletions(-) delete mode 100644 applications/test/dimField/Make/files create mode 100644 applications/test/dimField1/Make/files rename applications/test/{dimField => dimField1}/Make/options (100%) rename applications/test/{dimField/Test-dimField.C => dimField1/Test-dimField1.cxx} (80%) diff --git a/applications/test/dimField/Make/files b/applications/test/dimField/Make/files deleted file mode 100644 index 8289e2ec00d..00000000000 --- a/applications/test/dimField/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -Test-dimField.C - -EXE = $(FOAM_USER_APPBIN)/Test-dimField diff --git a/applications/test/dimField1/Make/files b/applications/test/dimField1/Make/files new file mode 100644 index 00000000000..226fc66a5d6 --- /dev/null +++ b/applications/test/dimField1/Make/files @@ -0,0 +1,3 @@ +Test-dimField1.cxx + +EXE = $(FOAM_USER_APPBIN)/Test-dimField1 diff --git a/applications/test/dimField/Make/options b/applications/test/dimField1/Make/options similarity index 100% rename from applications/test/dimField/Make/options rename to applications/test/dimField1/Make/options diff --git a/applications/test/dimField/Test-dimField.C b/applications/test/dimField1/Test-dimField1.cxx similarity index 80% rename from applications/test/dimField/Test-dimField.C rename to applications/test/dimField1/Test-dimField1.cxx index f711584883b..9eaf98fe95a 100644 --- a/applications/test/dimField/Test-dimField.C +++ b/applications/test/dimField1/Test-dimField1.cxx @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2020-2022 OpenCFD Ltd. + Copyright (C) 2020-2024 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -24,7 +24,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Application - Test-dimField + Test-dimField1 Description Simple tests for DimensionedField @@ -52,7 +52,12 @@ namespace Foam int main(int argc, char *argv[]) { + argList::addBoolOption("write", "write some test fields"); + #include "setRootCase.H" + + const bool doWrite = args.found("write"); + #include "createTime.H" #include "createMesh.H" @@ -60,19 +65,23 @@ int main(int argc, char *argv[]) Info<< "Tensor field\n" << endl; DimensionedField<tensor, volMesh> tensorfld ( - IOobject + mesh.newIOobject ( "tensor", - runTime.timeName(), - mesh, - { IOobject::READ_IF_PRESENT, IOobject::NO_REGISTER } + { IOobject::READ_IF_PRESENT, IOobject::NO_WRITE } ), mesh, dimensioned<tensor>(dimless, tensor(1,2,3,4,5,6,7,8,9)) ); - Info().beginBlock("transformed") - << tensorfld.T() << nl; + if (doWrite) + { + tensorfld.write(); + } + + + Info<< nl; + Info().beginBlock("transformed") << tensorfld.T(); Info().endBlock(); { @@ -84,8 +93,8 @@ int main(int argc, char *argv[]) dimensioned<scalar>(14) ); - Info().beginBlock(tfld().type()) - << tfld << nl; + Info<< nl; + Info().beginBlock(tfld().type()) << tfld; Info().endBlock(); } @@ -98,8 +107,8 @@ int main(int argc, char *argv[]) dimensioned<scalar>(5) ); - Info().beginBlock(tfld().type()) - << tfld() << nl; + Info<< nl; + Info().beginBlock(tfld().type()) << tfld(); Info().endBlock(); // From dissimilar types @@ -111,8 +120,8 @@ int main(int argc, char *argv[]) dimensioned<vector>(Zero) ); - Info().beginBlock(tfld2().type()) - << tfld2() << nl; + Info<< nl; + Info().beginBlock(tfld2().type()) << tfld2(); Info().endBlock(); } } @@ -122,20 +131,13 @@ int main(int argc, char *argv[]) Info<< "uint8 field\n" << endl; DimensionedField<uint8_t, volMesh> statefld ( - IOobject - ( - "state", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::NO_WRITE - ), + mesh.newIOobject("state") mesh, dimensioned<uint8_t>(dimless, uint8_t{100}) ); - Info().beginBlock("stateField") - << statefld << nl; + Info<< nl; + Info().beginBlock("stateField") << statefld; Info().endBlock(); } #endif diff --git a/applications/test/parallelOverset/Make/options b/applications/test/parallelOverset/Make/options index b0aa2ef220d..db6c073e474 100644 --- a/applications/test/parallelOverset/Make/options +++ b/applications/test/parallelOverset/Make/options @@ -7,5 +7,6 @@ EXE_INC = \ EXE_LIBS = \ -lfiniteVolume \ + -ldynamicFvMesh \ -lsampling \ -loverset diff --git a/applications/test/parallelOverset/laplacianDyMFoam.C b/applications/test/parallelOverset/laplacianDyMFoam.C index 997ef3f590e..f94bbd2cafe 100644 --- a/applications/test/parallelOverset/laplacianDyMFoam.C +++ b/applications/test/parallelOverset/laplacianDyMFoam.C @@ -56,6 +56,7 @@ Description #include "fvCFD.H" #include "simpleControl.H" +#include "predicates.H" #include "dynamicFvMesh.H" #include "dynamicOversetFvMesh.H" @@ -97,6 +98,7 @@ int main(int argc, char *argv[]) component(T.ref(), mesh.C(), 1); // Interpolate + halo swap T.correctBoundaryConditions(); + // T.boundaryFieldRef().evaluate_if(predicates::always{}); // Check halo swap dynamicOversetFvMesh::checkCoupledBC(T); } diff --git a/applications/utilities/preProcessing/mapFieldsPar/MapVolFields.H b/applications/utilities/preProcessing/mapFieldsPar/MapVolFields.H index f3106def5c4..34b26b49edb 100644 --- a/applications/utilities/preProcessing/mapFieldsPar/MapVolFields.H +++ b/applications/utilities/preProcessing/mapFieldsPar/MapVolFields.H @@ -26,8 +26,8 @@ License \*---------------------------------------------------------------------------*/ -#ifndef MapConsistentVolFields_H -#define MapConsistentVolFields_H +#ifndef Foam_MapConsistentVolFields_H +#define Foam_MapConsistentVolFields_H #include "GeometricField.H" #include "meshToMesh.H" @@ -41,10 +41,9 @@ namespace Foam template<class Type> void evaluateConstraintTypes(GeometricField<Type, fvPatchField, volMesh>& fld) { - auto& fldBf = fld.boundaryFieldRef(); + auto& bfld = fld.boundaryFieldRef(); const UPstream::commsTypes commsType = UPstream::defaultCommsType; - const label startOfRequests = UPstream::nRequests(); if ( @@ -52,37 +51,32 @@ void evaluateConstraintTypes(GeometricField<Type, fvPatchField, volMesh>& fld) || commsType == UPstream::commsTypes::nonBlocking ) { - forAll(fldBf, patchi) - { - fvPatchField<Type>& tgtField = fldBf[patchi]; + const label startOfRequests = UPstream::nRequests(); + for (auto& pfld : bfld) + { if ( - tgtField.type() == tgtField.patch().patch().type() - && polyPatch::constraintType(tgtField.patch().patch().type()) + pfld.type() == pfld.patch().patch().type() + && polyPatch::constraintType(pfld.patch().patch().type()) ) { - tgtField.initEvaluate(commsType); + pfld.initEvaluate(commsType); } } - // Wait for outstanding requests - if (commsType == UPstream::commsTypes::nonBlocking) - { - UPstream::waitRequests(startOfRequests); - } + // Wait for outstanding requests (non-blocking) + UPstream::waitRequests(startOfRequests); - forAll(fldBf, patchi) + for (auto& pfld : bfld) { - fvPatchField<Type>& tgtField = fldBf[patchi]; - if ( - tgtField.type() == tgtField.patch().patch().type() - && polyPatch::constraintType(tgtField.patch().patch().type()) + pfld.type() == pfld.patch().patch().type() + && polyPatch::constraintType(pfld.patch().patch().type()) ) { - tgtField.evaluate(commsType); + pfld.evaluate(commsType); } } } @@ -94,22 +88,21 @@ void evaluateConstraintTypes(GeometricField<Type, fvPatchField, volMesh>& fld) for (const auto& schedEval : patchSchedule) { const label patchi = schedEval.patch; - - fvPatchField<Type>& tgtField = fldBf[patchi]; + auto& pfld = bfld[patchi]; if ( - tgtField.type() == tgtField.patch().patch().type() - && polyPatch::constraintType(tgtField.patch().patch().type()) + pfld.type() == pfld.patch().patch().type() + && polyPatch::constraintType(pfld.patch().patch().type()) ) { if (schedEval.init) { - tgtField.initEvaluate(commsType); + pfld.initEvaluate(commsType); } else { - tgtField.evaluate(commsType); + pfld.evaluate(commsType); } } } diff --git a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C index f7332a19006..5d096e36f6a 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C +++ b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C @@ -1440,7 +1440,7 @@ void Foam::polyBoundaryMesh::writeEntry(Ostream& os) const void Foam::polyBoundaryMesh::writeEntry ( - const keyType& keyword, + const word& keyword, Ostream& os ) const { diff --git a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H index 93a059a06e6..d21d9cf0b59 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H +++ b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H @@ -379,7 +379,7 @@ public: //- Write as a primitive entry with given name. //- If the keyword is empty, revert to a plain list. - void writeEntry(const keyType& keyword, Ostream& os) const; + void writeEntry(const word& keyword, Ostream& os) const; //- The writeData member function required by regIOobject virtual bool writeData(Ostream& os) const; diff --git a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMeshEntries.C b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMeshEntries.C index 7cf2f53abb9..e8c4cfe61c5 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMeshEntries.C +++ b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMeshEntries.C @@ -214,7 +214,7 @@ void Foam::polyBoundaryMeshEntries::writeEntry(Ostream& os) const void Foam::polyBoundaryMeshEntries::writeEntry ( - const keyType& keyword, + const word& keyword, Ostream& os ) const { diff --git a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMeshEntries.H b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMeshEntries.H index 2fb5c6feae2..e614c0929ab 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMeshEntries.H +++ b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMeshEntries.H @@ -121,7 +121,7 @@ public: //- Write as a primitive entry with given name. //- If the keyword is empty, revert to a plain list. - void writeEntry(const keyType& keyword, Ostream& os) const; + void writeEntry(const word& keyword, Ostream& os) const; //- The writeData member function required by regIOobject virtual bool writeData(Ostream& os) const; diff --git a/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.C b/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.C index 55ee4b2899a..e770328a70b 100644 --- a/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.C +++ b/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.C @@ -1058,7 +1058,7 @@ void Foam::faBoundaryMesh::writeEntry(Ostream& os) const void Foam::faBoundaryMesh::writeEntry ( - const keyType& keyword, + const word& keyword, Ostream& os ) const { diff --git a/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.H b/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.H index 9c3cc9d0e90..cad29247915 100644 --- a/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.H +++ b/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.H @@ -299,7 +299,7 @@ public: //- Write as a primitive entry with given name. //- If the keyword is empty, revert to a plain list. - void writeEntry(const keyType& keyword, Ostream& os) const; + void writeEntry(const word& keyword, Ostream& os) const; //- The writeData member function required by regIOobject virtual bool writeData(Ostream& os) const; diff --git a/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMeshEntries.C b/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMeshEntries.C index 59ebacfe33f..2a07f2fd997 100644 --- a/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMeshEntries.C +++ b/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMeshEntries.C @@ -183,7 +183,7 @@ void Foam::faBoundaryMeshEntries::writeEntry(Ostream& os) const void Foam::faBoundaryMeshEntries::writeEntry ( - const keyType& keyword, + const word& keyword, Ostream& os ) const { diff --git a/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMeshEntries.H b/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMeshEntries.H index c9f85716937..ccaebe01acc 100644 --- a/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMeshEntries.H +++ b/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMeshEntries.H @@ -108,7 +108,7 @@ public: //- Write as a primitive entry with given name. //- If the keyword is empty, revert to a plain list. - void writeEntry(const keyType& keyword, Ostream& os) const; + void writeEntry(const word& keyword, Ostream& os) const; //- The writeData member function required by regIOobject virtual bool writeData(Ostream& os) const; diff --git a/src/finiteVolume/interpolation/volPointInterpolation/volPointInterpolate.C b/src/finiteVolume/interpolation/volPointInterpolation/volPointInterpolate.C index 3ef984cf4d7..f1b7fd0ff0a 100644 --- a/src/finiteVolume/interpolation/volPointInterpolation/volPointInterpolate.C +++ b/src/finiteVolume/interpolation/volPointInterpolation/volPointInterpolate.C @@ -107,8 +107,7 @@ void Foam::volPointInterpolation::addSeparated } } - // Wait for outstanding requests - // (commsType == UPstream::commsTypes::nonBlocking) + // Wait for outstanding requests (non-blocking) UPstream::waitRequests(startOfRequests); forAll(pfbf, patchi) diff --git a/src/functionObjects/field/mapFields/mapFieldsTemplates.C b/src/functionObjects/field/mapFields/mapFieldsTemplates.C index 2350ef32c0e..58bd9572dca 100644 --- a/src/functionObjects/field/mapFields/mapFieldsTemplates.C +++ b/src/functionObjects/field/mapFields/mapFieldsTemplates.C @@ -36,10 +36,9 @@ void Foam::functionObjects::mapFields::evaluateConstraintTypes GeometricField<Type, fvPatchField, volMesh>& fld ) const { - auto& fldBf = fld.boundaryFieldRef(); + auto& bfld = fld.boundaryFieldRef(); const UPstream::commsTypes commsType = UPstream::defaultCommsType; - const label startOfRequests = UPstream::nRequests(); if ( @@ -47,37 +46,32 @@ void Foam::functionObjects::mapFields::evaluateConstraintTypes || commsType == UPstream::commsTypes::nonBlocking ) { - forAll(fldBf, patchi) - { - fvPatchField<Type>& tgtField = fldBf[patchi]; + const label startOfRequests = UPstream::nRequests(); + for (auto& pfld : bfld) + { if ( - tgtField.type() == tgtField.patch().patch().type() - && polyPatch::constraintType(tgtField.patch().patch().type()) + pfld.type() == pfld.patch().patch().type() + && polyPatch::constraintType(pfld.patch().patch().type()) ) { - tgtField.initEvaluate(commsType); + pfld.initEvaluate(commsType); } } - // Wait for outstanding requests - if (commsType == UPstream::commsTypes::nonBlocking) - { - UPstream::waitRequests(startOfRequests); - } + // Wait for outstanding requests (non-blocking) + UPstream::waitRequests(startOfRequests); - forAll(fldBf, patchi) + for (auto& pfld : bfld) { - fvPatchField<Type>& tgtField = fldBf[patchi]; - if ( - tgtField.type() == tgtField.patch().patch().type() - && polyPatch::constraintType(tgtField.patch().patch().type()) + pfld.type() == pfld.patch().patch().type() + && polyPatch::constraintType(pfld.patch().patch().type()) ) { - tgtField.evaluate(commsType); + pfld.evaluate(commsType); } } } @@ -89,22 +83,21 @@ void Foam::functionObjects::mapFields::evaluateConstraintTypes for (const auto& schedEval : patchSchedule) { const label patchi = schedEval.patch; - - fvPatchField<Type>& tgtField = fldBf[patchi]; + auto& pfld = bfld[patchi]; if ( - tgtField.type() == tgtField.patch().patch().type() - && polyPatch::constraintType(tgtField.patch().patch().type()) + pfld.type() == pfld.patch().patch().type() + && polyPatch::constraintType(pfld.patch().patch().type()) ) { if (schedEval.init) { - tgtField.initEvaluate(commsType); + pfld.initEvaluate(commsType); } else { - tgtField.evaluate(commsType); + pfld.evaluate(commsType); } } } diff --git a/src/functionObjects/field/zeroGradient/zeroGradientTemplates.C b/src/functionObjects/field/zeroGradient/zeroGradientTemplates.C index 0894b199d55..0c6dcd4ecb9 100644 --- a/src/functionObjects/field/zeroGradient/zeroGradientTemplates.C +++ b/src/functionObjects/field/zeroGradient/zeroGradientTemplates.C @@ -37,11 +37,9 @@ bool Foam::functionObjects::zeroGradient::accept const GeometricField<Type, fvPatchField, volMesh>& input ) { - const auto& patches = input.boundaryField(); - - forAll(patches, patchi) + for (const auto& pfld : input.boundaryField()) { - if (!polyPatch::constraintType(patches[patchi].patch().patch().type())) + if (!polyPatch::constraintType(pfld.patch().patch().type())) { return true; } diff --git a/src/meshTools/topoSet/cellSources/fieldToCell/fieldDictionary.H b/src/meshTools/topoSet/cellSources/fieldToCell/fieldDictionary.H index 999f5a8862c..c04f5bfb384 100644 --- a/src/meshTools/topoSet/cellSources/fieldToCell/fieldDictionary.H +++ b/src/meshTools/topoSet/cellSources/fieldToCell/fieldDictionary.H @@ -32,11 +32,11 @@ Description \*---------------------------------------------------------------------------*/ -#ifndef fieldDictionary_H -#define fieldDictionary_H +#ifndef Foam_fieldDictionary_H +#define Foam_fieldDictionary_H -#include "regIOobject.H" #include "dictionary.H" +#include "regIOobject.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -52,22 +52,22 @@ class fieldDictionary public regIOobject, public dictionary { - // Private Data - const word type_; + //- The specified field type + const word fieldType_; public: // Constructors - //- Construct from ioobject and overloaded typename. - fieldDictionary(const IOobject& io, const word& type) + //- Construct from IOobject and specified (overloaded) type name + fieldDictionary(const IOobject& io, const word& fieldType) : regIOobject(io), - dictionary(readStream(type)), - type_(type) + dictionary(readStream(fieldType)), + fieldType_(fieldType) { close(); } @@ -78,13 +78,13 @@ public: //- Redefine type name to be of the instantiated type virtual const word& type() const { - return type_; + return fieldType_; } - bool writeData(Ostream& os) const + //- The writeData function required by regIOobject write operation + virtual bool writeData(Ostream& os) const { - static_cast<const dictionary&>(*this).write(os, false); - + dictionary::write(os, false); return os.good(); } }; diff --git a/src/overset/cellCellStencil/cellCellStencil/cellCellStencilTemplates.C b/src/overset/cellCellStencil/cellCellStencil/cellCellStencilTemplates.C index 80237911108..f110df64632 100644 --- a/src/overset/cellCellStencil/cellCellStencil/cellCellStencilTemplates.C +++ b/src/overset/cellCellStencil/cellCellStencil/cellCellStencilTemplates.C @@ -185,29 +185,26 @@ void Foam::cellCellStencil::correctBoundaryConditions // Version of GeoField::correctBoundaryConditions that exclude evaluation // of oversetFvPatchFields - typename GeoField::Boundary& bfld = psi.boundaryFieldRef(); + auto& bfld = psi.boundaryFieldRef(); - const label nReq = Pstream::nRequests(); + const label startOfRequests = UPstream::nRequests(); - forAll(bfld, patchi) + for (auto& pfld : bfld) { - if (!isA<SuppressBC>(bfld[patchi])) + if (!isA<SuppressBC>(pfld)) { - bfld[patchi].initEvaluate(Pstream::commsTypes::nonBlocking); + pfld.initEvaluate(UPstream::commsTypes::nonBlocking); } } - // Block for any outstanding requests - if (Pstream::parRun()) - { - Pstream::waitRequests(nReq); - } + // Wait for outstanding requests (non-blocking) + UPstream::waitRequests(startOfRequests); - forAll(bfld, patchi) + for (auto& pfld : bfld) { - if (!isA<SuppressBC>(bfld[patchi])) + if (!isA<SuppressBC>(pfld)) { - bfld[patchi].evaluate(Pstream::commsTypes::nonBlocking); + pfld.evaluate(UPstream::commsTypes::nonBlocking); } } } diff --git a/src/overset/oversetFvMesh/oversetFvMeshBase.H b/src/overset/oversetFvMesh/oversetFvMeshBase.H index 49513221954..b0678b1a24b 100644 --- a/src/overset/oversetFvMesh/oversetFvMeshBase.H +++ b/src/overset/oversetFvMesh/oversetFvMeshBase.H @@ -256,7 +256,7 @@ public: static void checkCoupledBC(const GeoField& fld); //- Correct boundary conditions of certain type (typeOnly = true) - // or explicitly not of the type (typeOnly = false) + //- or explicitly not of the type (typeOnly = false) template<class GeoField, class PatchType> static void correctBoundaryConditions ( diff --git a/src/overset/oversetFvMesh/oversetFvMeshBaseTemplates.C b/src/overset/oversetFvMesh/oversetFvMeshBaseTemplates.C index c57a6358188..471cbee742f 100644 --- a/src/overset/oversetFvMesh/oversetFvMeshBaseTemplates.C +++ b/src/overset/oversetFvMesh/oversetFvMeshBaseTemplates.C @@ -80,28 +80,36 @@ void Foam::oversetFvMeshBase::correctBoundaryConditions const bool typeOnly ) { + // Alternative (C++14) + // + // bfld.evaluate_if + // ( + // [typeOnly](const auto& pfld) -> bool + // { + // return (typeOnly == bool(isA<PatchType>(pfld))); + // }, + // UPstream::defaultCommsType + // ); + const UPstream::commsTypes commsType = UPstream::defaultCommsType; const label startOfRequests = UPstream::nRequests(); - forAll(bfld, patchi) + for (auto& pfld : bfld) { - if (typeOnly == (isA<PatchType>(bfld[patchi]) != nullptr)) + if (typeOnly == bool(isA<PatchType>(pfld))) { - bfld[patchi].initEvaluate(commsType); + pfld.initEvaluate(commsType); } } - // Wait for outstanding requests - if (commsType == UPstream::commsTypes::nonBlocking) - { - Pstream::waitRequests(startOfRequests); - } + // Wait for outstanding requests (non-blocking) + UPstream::waitRequests(startOfRequests); - forAll(bfld, patchi) + for (auto& pfld : bfld) { - if (typeOnly == (isA<PatchType>(bfld[patchi]) != nullptr)) + if (typeOnly == bool(isA<PatchType>(pfld))) { - bfld[patchi].evaluate(commsType); + pfld.evaluate(commsType); } } } @@ -989,32 +997,30 @@ void Foam::oversetFvMeshBase::write template<class GeoField> void Foam::oversetFvMeshBase::correctCoupledBoundaryConditions(GeoField& fld) { - typename GeoField::Boundary& bfld = fld.boundaryFieldRef(); + auto& bfld = fld.boundaryFieldRef(); const UPstream::commsTypes commsType = UPstream::defaultCommsType; + const label startOfRequests = UPstream::nRequests(); - forAll(bfld, patchi) + for (auto& pfld : bfld) { - if (bfld[patchi].coupled()) + if (pfld.coupled()) { - //Pout<< "initEval of " << bfld[patchi].patch().name() << endl; - bfld[patchi].initEvaluate(commsType); + //Pout<< "initEval of " << pfld.patch().name() << endl; + pfld.initEvaluate(commsType); } } - // Wait for outstanding requests - if (commsType == UPstream::commsTypes::nonBlocking) - { - Pstream::waitRequests(startOfRequests); - } + // Wait for outstanding requests (non-blocking) + UPstream::waitRequests(startOfRequests); - forAll(bfld, patchi) + for (auto& pfld : bfld) { - if (bfld[patchi].coupled()) + if (pfld.coupled()) { - //Pout<< "eval of " << bfld[patchi].patch().name() << endl; - bfld[patchi].evaluate(commsType); + //Pout<< "eval of " << pfld.patch().name() << endl; + pfld.evaluate(commsType); } } } -- GitLab