diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/VoFSolidificationMeltingSource/VoFSolidificationMeltingSource.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/VoFSolidificationMeltingSource/VoFSolidificationMeltingSource.C index 16eff5c6f9..864ebe11b9 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/VoFSolidificationMeltingSource/VoFSolidificationMeltingSource.C +++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/VoFSolidificationMeltingSource/VoFSolidificationMeltingSource.C @@ -144,10 +144,11 @@ Foam::fv::VoFSolidificationMeltingSource::VoFSolidificationMeltingSource ), curTimeIndex_(-1) { - fieldNames_.setSize(2); + fieldNames_.resize(2); fieldNames_[0] = "U"; fieldNames_[1] = "T"; - applied_.setSize(fieldNames_.size(), false); + + fv::option::resetApplied(); } diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/VoFSolidificationMeltingSource/VoFSolidificationMeltingSourceIO.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/VoFSolidificationMeltingSource/VoFSolidificationMeltingSourceIO.C index d5c7979fff..069c34d6ba 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/VoFSolidificationMeltingSource/VoFSolidificationMeltingSourceIO.C +++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/VoFSolidificationMeltingSource/VoFSolidificationMeltingSourceIO.C @@ -41,10 +41,6 @@ bool Foam::fv::VoFSolidificationMeltingSource::read(const dictionary& dict) return true; } - else - { - return false; - } return false; } diff --git a/src/atmosphericModels/fvOptions/atmAmbientTurbSource/atmAmbientTurbSource.C b/src/atmosphericModels/fvOptions/atmAmbientTurbSource/atmAmbientTurbSource.C index 932942adc7..8f8b5e0ffc 100644 --- a/src/atmosphericModels/fvOptions/atmAmbientTurbSource/atmAmbientTurbSource.C +++ b/src/atmosphericModels/fvOptions/atmAmbientTurbSource/atmAmbientTurbSource.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2020 ENERCON GmbH - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -107,7 +107,7 @@ Foam::fv::atmAmbientTurbSource::atmAmbientTurbSource << abort(FatalError); } - fieldNames_.setSize(2, "undefined"); + fieldNames_.resize(2); tmp tepsilon = turbPtr->epsilon(); tmp tomega = turbPtr->omega(); @@ -140,7 +140,7 @@ Foam::fv::atmAmbientTurbSource::atmAmbientTurbSource fieldNames_[1] = turbPtr->k()().name(); - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); Log << " Applying atmAmbientTurbSource to: " << fieldNames_[0] << " and " << fieldNames_[1] diff --git a/src/atmosphericModels/fvOptions/atmBuoyancyTurbSource/atmBuoyancyTurbSource.C b/src/atmosphericModels/fvOptions/atmBuoyancyTurbSource/atmBuoyancyTurbSource.C index 4cbbffc2d6..111bafe6b2 100644 --- a/src/atmosphericModels/fvOptions/atmBuoyancyTurbSource/atmBuoyancyTurbSource.C +++ b/src/atmosphericModels/fvOptions/atmBuoyancyTurbSource/atmBuoyancyTurbSource.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2020 ENERCON GmbH - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -198,7 +198,7 @@ Foam::fv::atmBuoyancyTurbSource::atmBuoyancyTurbSource << abort(FatalError); } - fieldNames_.setSize(2, "undefined"); + fieldNames_.resize(2); tmp tepsilon = turbPtr->epsilon(); tmp tomega = turbPtr->omega(); @@ -232,7 +232,7 @@ Foam::fv::atmBuoyancyTurbSource::atmBuoyancyTurbSource fieldNames_[1] = turbPtr->k()().name(); - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); Log << " Applying atmBuoyancyTurbSource to: " << fieldNames_[0] << " and " << fieldNames_[1] diff --git a/src/atmosphericModels/fvOptions/atmCoriolisUSource/atmCoriolisUSource.C b/src/atmosphericModels/fvOptions/atmCoriolisUSource/atmCoriolisUSource.C index 04e6c1cf3b..d53653d5ad 100644 --- a/src/atmosphericModels/fvOptions/atmCoriolisUSource/atmCoriolisUSource.C +++ b/src/atmosphericModels/fvOptions/atmCoriolisUSource/atmCoriolisUSource.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2020 CENER - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -109,9 +109,9 @@ Foam::fv::atmCoriolisUSource::atmCoriolisUSource << endl; } - fieldNames_.setSize(1, "U"); + fieldNames_.resize(1, "U"); - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); Log << " Applying atmCoriolisUSource to: " << fieldNames_[0] << endl; } diff --git a/src/atmosphericModels/fvOptions/atmLengthScaleTurbSource/atmLengthScaleTurbSource.C b/src/atmosphericModels/fvOptions/atmLengthScaleTurbSource/atmLengthScaleTurbSource.C index f22c8886f2..c45ab84f1d 100644 --- a/src/atmosphericModels/fvOptions/atmLengthScaleTurbSource/atmLengthScaleTurbSource.C +++ b/src/atmosphericModels/fvOptions/atmLengthScaleTurbSource/atmLengthScaleTurbSource.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2020 ENERCON GmbH - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -134,7 +134,7 @@ Foam::fv::atmLengthScaleTurbSource::atmLengthScaleTurbSource << abort(FatalError); } - fieldNames_.setSize(1, "undefined"); + fieldNames_.resize(1); tmp tepsilon = turbPtr->epsilon(); tmp tomega = turbPtr->omega(); @@ -165,7 +165,7 @@ Foam::fv::atmLengthScaleTurbSource::atmLengthScaleTurbSource << abort(FatalError); } - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); Log << " Applying atmLengthScaleTurbSource to: " << fieldNames_[0] << endl; diff --git a/src/atmosphericModels/fvOptions/atmNutSource/atmNutSource.C b/src/atmosphericModels/fvOptions/atmNutSource/atmNutSource.C index 4a558d9678..b67ce2ab73 100644 --- a/src/atmosphericModels/fvOptions/atmNutSource/atmNutSource.C +++ b/src/atmosphericModels/fvOptions/atmNutSource/atmNutSource.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2020 ENERCON GmbH - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -88,7 +88,7 @@ Foam::fv::atmNutSource::atmNutSource << abort(FatalError); } - fieldNames_.setSize(1, "undefined"); + fieldNames_.resize(1); const tmp& tnut = turbPtr->nut(); @@ -104,7 +104,7 @@ Foam::fv::atmNutSource::atmNutSource << abort(FatalError); } - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); Log << " Applying atmNutSource to: " << fieldNames_[0] << endl; } diff --git a/src/atmosphericModels/fvOptions/atmPlantCanopyTSource/atmPlantCanopyTSource.C b/src/atmosphericModels/fvOptions/atmPlantCanopyTSource/atmPlantCanopyTSource.C index ae907dc9bd..5faebf5973 100644 --- a/src/atmosphericModels/fvOptions/atmPlantCanopyTSource/atmPlantCanopyTSource.C +++ b/src/atmosphericModels/fvOptions/atmPlantCanopyTSource/atmPlantCanopyTSource.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2020 ENERCON GmbH - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -79,9 +79,9 @@ Foam::fv::atmPlantCanopyTSource::atmPlantCanopyTSource mesh ) { - fieldNames_.setSize(1, "T"); + fieldNames_.resize(1, "T"); - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); Log << " Applying atmPlantCanopyTSource to: " << fieldNames_[0] << endl; } diff --git a/src/atmosphericModels/fvOptions/atmPlantCanopyTurbSource/atmPlantCanopyTurbSource.C b/src/atmosphericModels/fvOptions/atmPlantCanopyTurbSource/atmPlantCanopyTurbSource.C index 548b4dff83..b137b8ae94 100644 --- a/src/atmosphericModels/fvOptions/atmPlantCanopyTurbSource/atmPlantCanopyTurbSource.C +++ b/src/atmosphericModels/fvOptions/atmPlantCanopyTurbSource/atmPlantCanopyTurbSource.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2020 ENERCON GmbH - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -108,7 +108,7 @@ Foam::fv::atmPlantCanopyTurbSource::atmPlantCanopyTurbSource << abort(FatalError); } - fieldNames_.setSize(1, "undefined"); + fieldNames_.resize(1); tmp tepsilon = turbPtr->epsilon(); tmp tomega = turbPtr->omega(); @@ -138,7 +138,7 @@ Foam::fv::atmPlantCanopyTurbSource::atmPlantCanopyTurbSource << abort(FatalError); } - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); Log << " Applying atmPlantCanopyTurbSource to: " << fieldNames_[0] << endl; diff --git a/src/atmosphericModels/fvOptions/atmPlantCanopyUSource/atmPlantCanopyUSource.C b/src/atmosphericModels/fvOptions/atmPlantCanopyUSource/atmPlantCanopyUSource.C index 4ad1fdc3c6..cefd8f8776 100644 --- a/src/atmosphericModels/fvOptions/atmPlantCanopyUSource/atmPlantCanopyUSource.C +++ b/src/atmosphericModels/fvOptions/atmPlantCanopyUSource/atmPlantCanopyUSource.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2020 ENERCON GmbH - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -78,9 +78,9 @@ Foam::fv::atmPlantCanopyUSource::atmPlantCanopyUSource mesh ) { - fieldNames_.setSize(1, "U"); + fieldNames_.resize(1, "U"); - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); Log << " Applying atmPlantCanopyUSource to: " << fieldNames_[0] << endl; } diff --git a/src/faOptions/faOption/faOption.C b/src/faOptions/faOption/faOption.C index 9f98da33fe..b043867f81 100644 --- a/src/faOptions/faOption/faOption.C +++ b/src/faOptions/faOption/faOption.C @@ -40,6 +40,15 @@ namespace Foam } +// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // + +void Foam::fa::option::resetApplied() +{ + applied_.resize(fieldNames_.size()); + applied_ = false; +} + + // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam::fa::option::option diff --git a/src/faOptions/faOption/faOption.H b/src/faOptions/faOption/faOption.H index c8d69e473f..e7bddf348f 100644 --- a/src/faOptions/faOption/faOption.H +++ b/src/faOptions/faOption/faOption.H @@ -132,6 +132,13 @@ protected: //- Region name (finite-area) word regionName_; + + // Protected Member Functions + + //- Resize/reset applied flag list for all fieldNames_ entries + void resetApplied(); + + private: // Private Data diff --git a/src/faOptions/faOption/faOptionList.C b/src/faOptions/faOption/faOptionList.C index b722e457a6..2c312807e7 100644 --- a/src/faOptions/faOption/faOptionList.C +++ b/src/faOptions/faOption/faOptionList.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2021 OpenCFD Ltd. ------------------------------------------------------------------------------ License This file is part of OpenFOAM. @@ -38,33 +38,27 @@ namespace fa } -// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // +// * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * // const Foam::dictionary& Foam::fa::optionList::optionsDict ( const dictionary& dict -) const +) { - if (dict.found("options")) - { - return dict.subDict("options"); - } - else - { - return dict; - } + return dict.optionalSubDict("options", keyType::LITERAL); } +// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // + bool Foam::fa::optionList::readOptions(const dictionary& dict) { checkTimeIndex_ = mesh_.time().timeIndex() + 2; bool allOk = true; - forAll(*this, i) + for (fa::option& opt : *this) { - option& bs = this->operator[](i); - bool ok = bs.read(dict.subDict(bs.name())); + bool ok = opt.read(dict.subDict(opt.name())); allOk = (allOk && ok); } return allOk; @@ -75,10 +69,9 @@ void Foam::fa::optionList::checkApplied() const { if (mesh_.time().timeIndex() == checkTimeIndex_) { - forAll(*this, i) + for (const fa::option& opt : *this) { - const option& bs = this->operator[](i); - bs.checkApplied(); + opt.checkApplied(); } } } @@ -144,6 +137,22 @@ void Foam::fa::optionList::reset(const dictionary& dict) } +bool Foam::fa::optionList::appliesToField(const word& fieldName) const +{ + for (const fa::option& source : *this) + { + const label fieldi = source.applyToField(fieldName); + + if (fieldi != -1) + { + return true; + } + } + + return false; +} + + bool Foam::fa::optionList::read(const dictionary& dict) { return readOptions(optionsDict(dict)); @@ -153,12 +162,12 @@ bool Foam::fa::optionList::read(const dictionary& dict) bool Foam::fa::optionList::writeData(Ostream& os) const { // Write list contents - forAll(*this, i) + for (const fa::option& opt : *this) { os << nl; - this->operator[](i).writeHeader(os); - this->operator[](i).writeData(os); - this->operator[](i).writeFooter(os); + opt.writeHeader(os); + opt.writeData(os); + opt.writeFooter(os); } // Check state of IOstream diff --git a/src/faOptions/faOption/faOptionList.H b/src/faOptions/faOption/faOptionList.H index a479c97196..18b3b535ab 100644 --- a/src/faOptions/faOption/faOptionList.H +++ b/src/faOptions/faOption/faOptionList.H @@ -83,8 +83,8 @@ protected: // Protected Member Functions - //- Return the "options" sub-dictionary if present otherwise return dict - const dictionary& optionsDict(const dictionary& dict) const; + //- Return "options" sub-dictionary (if present) or return dict + static const dictionary& optionsDict(const dictionary& dict); //- Read options dictionary bool readOptions(const dictionary& dict); @@ -117,11 +117,11 @@ public: // Constructors - //- Construct from patch - optionList(const fvPatch& p); + //- Default construct from patch + explicit optionList(const fvPatch& p); - //- Construct from mesh and dictionary - optionList(const fvPatch&, const dictionary& ); + //- Construct from patch and dictionary + optionList(const fvPatch& p, const dictionary&); //- Destructor @@ -133,6 +133,9 @@ public: //- Reset the source list void reset(const dictionary& dict); + //- Return whether there is something to apply to the field + bool appliesToField(const word& fieldName) const; + // Sources diff --git a/src/faOptions/faOption/faOptionListTemplates.C b/src/faOptions/faOption/faOptionListTemplates.C index 96a266e5a3..b71f495880 100644 --- a/src/faOptions/faOption/faOptionListTemplates.C +++ b/src/faOptions/faOption/faOptionListTemplates.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2021 OpenCFD Ltd. ------------------------------------------------------------------------------ License This file is part of OpenFOAM. @@ -44,11 +44,9 @@ Foam::tmp> Foam::fa::optionList::source tmp> tmtx(new faMatrix(field, ds)); faMatrix& mtx = tmtx.ref(); - forAll(*this, i) + for (fa::option& source : *this) { - option& source = this->operator[](i); - - label fieldi = source.applyToField(fieldName); + const label fieldi = source.applyToField(fieldName); if (fieldi != -1) { @@ -56,14 +54,24 @@ Foam::tmp> Foam::fa::optionList::source source.setApplied(fieldi); - if (source.isActive()) - { - if (debug) - { - Info<< "Applying source " << source.name() << " to field " - << fieldName << endl; - } + const bool ok = source.isActive(); + if (debug) + { + if (ok) + { + Info<< "Apply"; + } + else + { + Info<< "(Inactive)"; + } + Info<< " source " << source.name() + << " for field " << fieldName << endl; + } + + if (ok) + { source.addSup(h, mtx, fieldi); } } @@ -127,11 +135,9 @@ Foam::tmp> Foam::fa::optionList::operator() tmp> tmtx(new faMatrix(field, ds)); faMatrix& mtx = tmtx.ref(); - forAll(*this, i) + for (fa::option& source : *this) { - option& source = this->operator[](i); - - label fieldi = source.applyToField(fieldName); + const label fieldi = source.applyToField(fieldName); if (fieldi != -1) { @@ -139,14 +145,24 @@ Foam::tmp> Foam::fa::optionList::operator() source.setApplied(fieldi); - if (source.isActive()) - { - if (debug) - { - Info<< "Applying source " << source.name() << " to field " - << fieldName << endl; - } + const bool ok = source.isActive(); + if (debug) + { + if (ok) + { + Info<< "Apply"; + } + else + { + Info<< "(Inactive)"; + } + Info<< " source " << source.name() + << " for field " << fieldName << endl; + } + + if (ok) + { source.addSup(h, rho, mtx, fieldi); } } @@ -171,11 +187,9 @@ Foam::tmp> Foam::fa::optionList::operator() tmp> tmtx(new faMatrix(field, dsMat)); faMatrix& mtx = tmtx.ref(); - forAll(*this, i) + for (fa::option& source : *this) { - option& source = this->operator[](i); - - label fieldi = source.applyToField(field.name()); + const label fieldi = source.applyToField(field.name()); if (fieldi != -1) { @@ -183,14 +197,24 @@ Foam::tmp> Foam::fa::optionList::operator() source.setApplied(fieldi); - if (source.isActive()) - { - if (debug) - { - Info<< "Applying source " << source.name() << " to field " - << field.name() << endl; - } + const bool ok = source.isActive(); + if (debug) + { + if (ok) + { + Info<< "Apply"; + } + else + { + Info<< "(Inactive)"; + } + Info<< " source " << source.name() + << " for field " << field.name() << endl; + } + + if (ok) + { source.addSup(rho, mtx, fieldi); } } @@ -226,11 +250,9 @@ void Foam::fa::optionList::constrain(faMatrix& eqn) { checkApplied(); - forAll(*this, i) + for (fa::option& source : *this) { - option& source = this->operator[](i); - - label fieldi = source.applyToField(eqn.psi().name()); + const label fieldi = source.applyToField(eqn.psi().name()); if (fieldi != -1) { @@ -238,14 +260,24 @@ void Foam::fa::optionList::constrain(faMatrix& eqn) source.setApplied(fieldi); - if (source.isActive()) - { - if (debug) - { - Info<< "Applying constraint " << source.name() - << " to field " << eqn.psi().name() << endl; - } + const bool ok = source.isActive(); + if (debug) + { + if (ok) + { + Info<< "Constrain"; + } + else + { + Info<< "(Inactive constrain)"; + } + Info<< " source " << source.name() + << " for field " << eqn.psi().name() << endl; + } + + if (ok) + { source.constrain(eqn, fieldi); } } @@ -261,11 +293,9 @@ void Foam::fa::optionList::correct { const word& fieldName = field.name(); - forAll(*this, i) + for (fa::option& source : *this) { - option& source = this->operator[](i); - - label fieldi = source.applyToField(fieldName); + const label fieldi = source.applyToField(fieldName); if (fieldi != -1) { @@ -273,14 +303,24 @@ void Foam::fa::optionList::correct source.setApplied(fieldi); - if (source.isActive()) - { - if (debug) - { - Info<< "Correcting source " << source.name() - << " for field " << fieldName << endl; - } + const bool ok = source.isActive(); + if (debug) + { + if (ok) + { + Info<< "Correct"; + } + else + { + Info<< "(Inactive correct)"; + } + Info<< " source " << source.name() + << " for field " << fieldName << endl; + } + + if (ok) + { source.correct(field); } } diff --git a/src/faOptions/faceSetOption/faceSetOption.C b/src/faOptions/faceSetOption/faceSetOption.C index 24e176e56d..04eefeb2ff 100644 --- a/src/faOptions/faceSetOption/faceSetOption.C +++ b/src/faOptions/faceSetOption/faceSetOption.C @@ -204,7 +204,7 @@ Foam::fa::faceSetOption::faceSetOption bool Foam::fa::faceSetOption::isActive() { - if (option::isActive() && inTimeLimits(mesh_.time().value())) + if (fa::option::isActive() && inTimeLimits(mesh_.time().value())) { // Update the face set if the mesh is changing if (mesh_.changing()) @@ -229,7 +229,7 @@ bool Foam::fa::faceSetOption::isActive() bool Foam::fa::faceSetOption::read(const dictionary& dict) { - if (option::read(dict)) + if (fa::option::read(dict)) { if (coeffs_.readIfPresent("timeStart", timeStart_)) { diff --git a/src/faOptions/sources/derived/contactHeatFluxSource/contactHeatFluxSource.C b/src/faOptions/sources/derived/contactHeatFluxSource/contactHeatFluxSource.C index e9a4133d7a..8830273407 100644 --- a/src/faOptions/sources/derived/contactHeatFluxSource/contactHeatFluxSource.C +++ b/src/faOptions/sources/derived/contactHeatFluxSource/contactHeatFluxSource.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -78,9 +78,9 @@ Foam::fa::contactHeatFluxSource::contactHeatFluxSource contactRes_(0), curTimeIndex_(-1) { - fieldNames_.setSize(1, TName_); + fieldNames_.resize(1, TName_); - applied_.setSize(fieldNames_.size(), false); + fa::option::resetApplied(); read(dict); } diff --git a/src/faOptions/sources/derived/externalFileSource/externalFileSource.C b/src/faOptions/sources/derived/externalFileSource/externalFileSource.C index 81e93caa40..cc6da00221 100644 --- a/src/faOptions/sources/derived/externalFileSource/externalFileSource.C +++ b/src/faOptions/sources/derived/externalFileSource/externalFileSource.C @@ -83,9 +83,9 @@ Foam::fa::externalFileSource::externalFileSource ), curTimeIndex_(-1) { - fieldNames_.setSize(1, fieldName_); + fieldNames_.resize(1, fieldName_); - applied_.setSize(fieldNames_.size(), false); + fa::option::resetApplied(); read(dict); } diff --git a/src/faOptions/sources/derived/externalHeatFluxSource/externalHeatFluxSource.C b/src/faOptions/sources/derived/externalHeatFluxSource/externalHeatFluxSource.C index 22c8404e19..2a559f0fe7 100644 --- a/src/faOptions/sources/derived/externalHeatFluxSource/externalHeatFluxSource.C +++ b/src/faOptions/sources/derived/externalHeatFluxSource/externalHeatFluxSource.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -77,9 +77,9 @@ Foam::fa::externalHeatFluxSource::externalHeatFluxSource Ta_(), emissivity_(dict.getOrDefault("emissivity", 0)) { - fieldNames_.setSize(1, TName_); + fieldNames_.resize(1, TName_); - applied_.setSize(fieldNames_.size(), false); + fa::option::resetApplied(); read(dict); } diff --git a/src/faOptions/sources/derived/jouleHeatingSource/jouleHeatingSource.C b/src/faOptions/sources/derived/jouleHeatingSource/jouleHeatingSource.C index a752b74eff..583fd34ecd 100644 --- a/src/faOptions/sources/derived/jouleHeatingSource/jouleHeatingSource.C +++ b/src/faOptions/sources/derived/jouleHeatingSource/jouleHeatingSource.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -72,9 +72,9 @@ Foam::fa::jouleHeatingSource::jouleHeatingSource nIter_(1), anisotropicElectricalConductivity_(false) { - fieldNames_.setSize(1, TName_); + fieldNames_.resize(1, TName_); - applied_.setSize(fieldNames_.size(), false); + fa::option::resetApplied(); if (anisotropicElectricalConductivity_) { diff --git a/src/finiteVolume/cfdTools/general/fvOptions/fvOption.C b/src/finiteVolume/cfdTools/general/fvOptions/fvOption.C index 4614b1b8ac..a3aa2f6dad 100644 --- a/src/finiteVolume/cfdTools/general/fvOptions/fvOption.C +++ b/src/finiteVolume/cfdTools/general/fvOptions/fvOption.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2021 OpenCFD Ltd. Copyright (C) 2020 PCOpt/NTUA Copyright (C) 2020 FOSS GP ------------------------------------------------------------------------------- @@ -43,6 +43,15 @@ namespace Foam } +// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // + +void Foam::fv::option::resetApplied() +{ + applied_.resize(fieldNames_.size()); + applied_ = false; +} + + // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam::fv::option::option diff --git a/src/finiteVolume/cfdTools/general/fvOptions/fvOption.H b/src/finiteVolume/cfdTools/general/fvOptions/fvOption.H index 84539964ac..f7a7408b84 100644 --- a/src/finiteVolume/cfdTools/general/fvOptions/fvOption.H +++ b/src/finiteVolume/cfdTools/general/fvOptions/fvOption.H @@ -123,6 +123,12 @@ protected: bool active_; + // Protected Member Functions + + //- Resize/reset applied flag list for all fieldNames_ entries + void resetApplied(); + + public: //- Switch write log to Info diff --git a/src/finiteVolume/cfdTools/general/fvOptions/fvOptionList.C b/src/finiteVolume/cfdTools/general/fvOptions/fvOptionList.C index 2fe08194b5..45d114ca11 100644 --- a/src/finiteVolume/cfdTools/general/fvOptions/fvOptionList.C +++ b/src/finiteVolume/cfdTools/general/fvOptions/fvOptionList.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2015 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -39,33 +40,27 @@ namespace fv } -// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // +// * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * // const Foam::dictionary& Foam::fv::optionList::optionsDict ( const dictionary& dict -) const +) { - if (dict.found("options")) - { - return dict.subDict("options"); - } - else - { - return dict; - } + return dict.optionalSubDict("options", keyType::LITERAL); } +// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // + bool Foam::fv::optionList::readOptions(const dictionary& dict) { checkTimeIndex_ = mesh_.time().timeIndex() + 2; bool allOk = true; - forAll(*this, i) + for (fv::option& opt : *this) { - option& bs = this->operator[](i); - bool ok = bs.read(dict.subDict(bs.name())); + bool ok = opt.read(dict.subDict(opt.name())); allOk = (allOk && ok); } return allOk; @@ -76,10 +71,9 @@ void Foam::fv::optionList::checkApplied() const { if (mesh_.time().timeIndex() == checkTimeIndex_) { - forAll(*this, i) + for (const fv::option& opt : *this) { - const option& bs = this->operator[](i); - bs.checkApplied(); + opt.checkApplied(); } } } @@ -141,11 +135,9 @@ void Foam::fv::optionList::reset(const dictionary& dict) bool Foam::fv::optionList::appliesToField(const word& fieldName) const { - forAll(*this, i) + for (const fv::option& source : *this) { - const option& source = this->operator[](i); - - label fieldi = source.applyToField(fieldName); + const label fieldi = source.applyToField(fieldName); if (fieldi != -1) { @@ -166,12 +158,12 @@ bool Foam::fv::optionList::read(const dictionary& dict) bool Foam::fv::optionList::writeData(Ostream& os) const { // Write list contents - forAll(*this, i) + for (const fv::option& opt : *this) { os << nl; - this->operator[](i).writeHeader(os); - this->operator[](i).writeData(os); - this->operator[](i).writeFooter(os); + opt.writeHeader(os); + opt.writeData(os); + opt.writeFooter(os); } // Check state of IOstream diff --git a/src/finiteVolume/cfdTools/general/fvOptions/fvOptionList.H b/src/finiteVolume/cfdTools/general/fvOptions/fvOptionList.H index 1cbca46098..14b8ea08c9 100644 --- a/src/finiteVolume/cfdTools/general/fvOptions/fvOptionList.H +++ b/src/finiteVolume/cfdTools/general/fvOptions/fvOptionList.H @@ -84,8 +84,8 @@ protected: // Protected Member Functions - //- Return the "options" sub-dictionary if present otherwise return dict - const dictionary& optionsDict(const dictionary& dict) const; + //- Return "options" sub-dictionary (if present) or return dict + static const dictionary& optionsDict(const dictionary& dict); //- Read options dictionary bool readOptions(const dictionary& dict); @@ -117,8 +117,8 @@ public: // Constructors - //- Construct null - optionList(const fvMesh& mesh); + //- Default construct from mesh + explicit optionList(const fvMesh& mesh); //- Construct from mesh and dictionary optionList(const fvMesh& mesh, const dictionary& dict); diff --git a/src/finiteVolume/cfdTools/general/fvOptions/fvOptionListTemplates.C b/src/finiteVolume/cfdTools/general/fvOptions/fvOptionListTemplates.C index 8e76688319..374cc5ab25 100644 --- a/src/finiteVolume/cfdTools/general/fvOptions/fvOptionListTemplates.C +++ b/src/finiteVolume/cfdTools/general/fvOptions/fvOptionListTemplates.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2016 OpenCFD Ltd. + Copyright (C) 2016-2021 OpenCFD Ltd. Copyright (C) 2020 PCOpt/NTUA Copyright (C) 2020 FOSS GP ------------------------------------------------------------------------------- @@ -45,11 +45,9 @@ Foam::tmp> Foam::fv::optionList::source tmp> tmtx(new fvMatrix(field, ds)); fvMatrix& mtx = tmtx.ref(); - forAll(*this, i) + for (fv::option& source : *this) { - option& source = this->operator[](i); - - label fieldi = source.applyToField(fieldName); + const label fieldi = source.applyToField(fieldName); if (fieldi != -1) { @@ -57,14 +55,24 @@ Foam::tmp> Foam::fv::optionList::source source.setApplied(fieldi); - if (source.isActive()) - { - if (debug) - { - Info<< "Applying source " << source.name() << " to field " - << fieldName << endl; - } + const bool ok = source.isActive(); + if (debug) + { + if (ok) + { + Info<< "Apply"; + } + else + { + Info<< "(Inactive)"; + } + Info<< " source " << source.name() + << " for field " << fieldName << endl; + } + + if (ok) + { source.addSup(mtx, fieldi); } } @@ -124,11 +132,9 @@ Foam::tmp> Foam::fv::optionList::operator() tmp> tmtx(new fvMatrix(field, ds)); fvMatrix& mtx = tmtx.ref(); - forAll(*this, i) + for (fv::option& source : *this) { - option& source = this->operator[](i); - - label fieldi = source.applyToField(fieldName); + const label fieldi = source.applyToField(fieldName); if (fieldi != -1) { @@ -136,14 +142,24 @@ Foam::tmp> Foam::fv::optionList::operator() source.setApplied(fieldi); - if (source.isActive()) - { - if (debug) - { - Info<< "Applying source " << source.name() << " to field " - << fieldName << endl; - } + const bool ok = source.isActive(); + if (debug) + { + if (ok) + { + Info<< "Apply"; + } + else + { + Info<< "(Inactive)"; + } + Info<< " source " << source.name() + << " for field " << fieldName << endl; + } + + if (ok) + { source.addSup(rho, mtx, fieldi); } } @@ -185,11 +201,9 @@ Foam::tmp> Foam::fv::optionList::operator() tmp> tmtx(new fvMatrix(field, ds)); fvMatrix& mtx = tmtx.ref(); - forAll(*this, i) + for (fv::option& source : *this) { - option& source = this->operator[](i); - - label fieldi = source.applyToField(fieldName); + const label fieldi = source.applyToField(fieldName); if (fieldi != -1) { @@ -197,14 +211,24 @@ Foam::tmp> Foam::fv::optionList::operator() source.setApplied(fieldi); - if (source.isActive()) - { - if (debug) - { - Info<< "Applying source " << source.name() << " to field " - << fieldName << endl; - } + const bool ok = source.isActive(); + if (debug) + { + if (ok) + { + Info<< "Apply"; + } + else + { + Info<< "(Inactive)"; + } + Info<< " source " << source.name() + << " for field " << fieldName << endl; + } + + if (ok) + { source.addSup(alpha, rho, mtx, fieldi); } } @@ -291,11 +315,9 @@ void Foam::fv::optionList::constrain(fvMatrix& eqn) { checkApplied(); - forAll(*this, i) + for (fv::option& source : *this) { - option& source = this->operator[](i); - - label fieldi = source.applyToField(eqn.psi().name()); + const label fieldi = source.applyToField(eqn.psi().name()); if (fieldi != -1) { @@ -303,14 +325,24 @@ void Foam::fv::optionList::constrain(fvMatrix& eqn) source.setApplied(fieldi); - if (source.isActive()) - { - if (debug) - { - Info<< "Applying constraint " << source.name() - << " to field " << eqn.psi().name() << endl; - } + const bool ok = source.isActive(); + if (debug) + { + if (ok) + { + Info<< "Constrain"; + } + else + { + Info<< "(Inactive constrain)"; + } + Info<< " source " << source.name() + << " for field " << eqn.psi().name() << endl; + } + + if (ok) + { source.constrain(eqn, fieldi); } } @@ -326,11 +358,9 @@ void Foam::fv::optionList::correct { const word& fieldName = field.name(); - forAll(*this, i) + for (fv::option& source : *this) { - option& source = this->operator[](i); - - label fieldi = source.applyToField(fieldName); + const label fieldi = source.applyToField(fieldName); if (fieldi != -1) { @@ -338,14 +368,24 @@ void Foam::fv::optionList::correct source.setApplied(fieldi); - if (source.isActive()) - { - if (debug) - { - Info<< "Correcting source " << source.name() - << " for field " << fieldName << endl; - } + const bool ok = source.isActive(); + if (debug) + { + if (ok) + { + Info<< "Correct"; + } + else + { + Info<< "(Inactive correct)"; + } + Info<< " source " << source.name() + << " for field " << fieldName << endl; + } + + if (ok) + { source.correct(field); } } @@ -361,25 +401,24 @@ void Foam::fv::optionList::postProcessSens const word& designVariablesName ) { - forAll(*this, i) + for (fv::option& source : *this) { - option& source = this->operator[](i); - - label fieldi = source.applyToField(fieldName); + const label fieldi = source.applyToField(fieldName); if (fieldi != -1) { addProfiling(fvopt, "fvOption::postProcessSens." + source.name()); - if (source.isActive()) - { - if (debug) - { - Info<< "Post processing sensitivity from source " - << source.name() - << " for field " << fieldName << endl; - } + const bool ok = source.isActive(); + if (debug && ok) + { + Info<< "Post processing sensitivity source " + << source.name() << " for field " << fieldName << endl; + } + + if (ok) + { source.postProcessSens ( sensField, diff --git a/src/fvOptions/Make/files b/src/fvOptions/Make/files index da81bfc306..01e2288baa 100644 --- a/src/fvOptions/Make/files +++ b/src/fvOptions/Make/files @@ -4,7 +4,7 @@ interRegionOption/interRegionOption.C /* Sources */ generalSources=sources/general -$(generalSources)/codedSource/codedSource.C +$(generalSources)/codedSource/codedFvSources.C $(generalSources)/semiImplicitSource/semiImplicitSource.C derivedSources=sources/derived diff --git a/src/fvOptions/constraints/derived/fixedTemperatureConstraint/fixedTemperatureConstraint.C b/src/fvOptions/constraints/derived/fixedTemperatureConstraint/fixedTemperatureConstraint.C index 3bfa919f9e..1142b18bba 100644 --- a/src/fvOptions/constraints/derived/fixedTemperatureConstraint/fixedTemperatureConstraint.C +++ b/src/fvOptions/constraints/derived/fixedTemperatureConstraint/fixedTemperatureConstraint.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2012-2016 OpenFOAM Foundation - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -101,9 +101,9 @@ Foam::fv::fixedTemperatureConstraint::fixedTemperatureConstraint const auto& thermo = mesh_.lookupObject(basicThermo::dictName); - fieldNames_.setSize(1, thermo.he().name()); + fieldNames_.resize(1, thermo.he().name()); - applied_.setSize(1, false); + fv::option::resetApplied(); } diff --git a/src/fvOptions/constraints/derived/velocityDampingConstraint/velocityDampingConstraint.C b/src/fvOptions/constraints/derived/velocityDampingConstraint/velocityDampingConstraint.C index a9eeea31b3..9e96727a52 100644 --- a/src/fvOptions/constraints/derived/velocityDampingConstraint/velocityDampingConstraint.C +++ b/src/fvOptions/constraints/derived/velocityDampingConstraint/velocityDampingConstraint.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2015 OpenFOAM Foundation - Copyright (C) 2015 OpenCFD Ltd. + Copyright (C) 2015-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -132,7 +132,7 @@ bool Foam::fv::velocityDampingConstraint::read(const dictionary& dict) fieldNames_.first() = coeffs_.getOrDefault("U", "U"); } - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); return true; } diff --git a/src/fvOptions/constraints/general/fixedValueConstraint/FixedValueConstraint.C b/src/fvOptions/constraints/general/fixedValueConstraint/FixedValueConstraint.C index 34ac46c490..30681d5891 100644 --- a/src/fvOptions/constraints/general/fixedValueConstraint/FixedValueConstraint.C +++ b/src/fvOptions/constraints/general/fixedValueConstraint/FixedValueConstraint.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2016 OpenFOAM Foundation - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -59,9 +59,10 @@ bool Foam::fv::FixedValueConstraint::read(const dictionary& dict) label count = fieldValuesDict.size(); - fieldNames_.setSize(count); - fieldValues_.setSize(count); - applied_.setSize(count, false); + fieldNames_.resize(count); + fieldValues_.resize(count); + + fv::option::resetApplied(); count = 0; for (const entry& dEntry : fieldValuesDict) diff --git a/src/fvOptions/corrections/limitTemperature/limitTemperature.C b/src/fvOptions/corrections/limitTemperature/limitTemperature.C index 7d07a32188..627e69cdeb 100644 --- a/src/fvOptions/corrections/limitTemperature/limitTemperature.C +++ b/src/fvOptions/corrections/limitTemperature/limitTemperature.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2012-2017 OpenFOAM Foundation - Copyright (C) 2018-2020 OpenCFD Ltd. + Copyright (C) 2018-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -66,9 +66,9 @@ Foam::fv::limitTemperature::limitTemperature IOobject::groupName(basicThermo::dictName, phase_) ); - fieldNames_.setSize(1, thermo.he().name()); + fieldNames_.resize(1, thermo.he().name()); - applied_.setSize(1, false); + fv::option::resetApplied(); } diff --git a/src/fvOptions/corrections/limitVelocity/limitVelocity.C b/src/fvOptions/corrections/limitVelocity/limitVelocity.C index 9ac693e5ed..4458695984 100644 --- a/src/fvOptions/corrections/limitVelocity/limitVelocity.C +++ b/src/fvOptions/corrections/limitVelocity/limitVelocity.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2016-2017 OpenFOAM Foundation - Copyright (C) 2018-2020 OpenCFD Ltd. + Copyright (C) 2018-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -56,8 +56,8 @@ Foam::fv::limitVelocity::limitVelocity UName_(coeffs_.getOrDefault("U", "U")), max_(coeffs_.get("max")) { - fieldNames_.setSize(1, UName_); - applied_.setSize(1, false); + fieldNames_.resize(1, UName_); + fv::option::resetApplied(); } diff --git a/src/fvOptions/sources/derived/acousticDampingSource/acousticDampingSource.C b/src/fvOptions/sources/derived/acousticDampingSource/acousticDampingSource.C index 428e602694..d9bfb7e95d 100644 --- a/src/fvOptions/sources/derived/acousticDampingSource/acousticDampingSource.C +++ b/src/fvOptions/sources/derived/acousticDampingSource/acousticDampingSource.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2016-2020 OpenCFD Ltd. + Copyright (C) 2016-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -182,7 +182,7 @@ bool Foam::fv::acousticDampingSource::read(const dictionary& dict) fieldNames_.first() = coeffs_.getOrDefault("U", "U"); } - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); coeffs_.readEntry("frequency", frequency_.value()); coeffs_.readEntry("URef", URefName_); diff --git a/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.C b/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.C index aee210098f..4c4995e801 100644 --- a/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.C +++ b/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.C @@ -7,7 +7,7 @@ ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation Copyright (C) 2020 ENERCON GmbH - Copyright (C) 2018-2020 OpenCFD Ltd + Copyright (C) 2018-2021 OpenCFD Ltd ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -219,9 +219,9 @@ Foam::fv::actuationDiskSource::actuationDiskSource { setMonitorCells(coeffs_); - fieldNames_.setSize(1, "U"); + fieldNames_.resize(1, "U"); - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); Info<< " - creating actuation disk zone: " << this->name() << endl; diff --git a/src/fvOptions/sources/derived/buoyancyEnergy/buoyancyEnergy.C b/src/fvOptions/sources/derived/buoyancyEnergy/buoyancyEnergy.C index ee3e5d1312..92d0cb41d5 100644 --- a/src/fvOptions/sources/derived/buoyancyEnergy/buoyancyEnergy.C +++ b/src/fvOptions/sources/derived/buoyancyEnergy/buoyancyEnergy.C @@ -64,7 +64,7 @@ Foam::fv::buoyancyEnergy::buoyancyEnergy << "settings are:" << fieldNames_ << exit(FatalError); } - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); } diff --git a/src/fvOptions/sources/derived/buoyancyForce/buoyancyForce.C b/src/fvOptions/sources/derived/buoyancyForce/buoyancyForce.C index 72fa97cfd4..1debb34aae 100644 --- a/src/fvOptions/sources/derived/buoyancyForce/buoyancyForce.C +++ b/src/fvOptions/sources/derived/buoyancyForce/buoyancyForce.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2015-2017 OpenFOAM Foundation - Copyright (C) 2018-2020 OpenCFD Ltd. + Copyright (C) 2018-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -64,7 +64,7 @@ Foam::fv::buoyancyForce::buoyancyForce << "settings are:" << fieldNames_ << exit(FatalError); } - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); } diff --git a/src/fvOptions/sources/derived/buoyancyTurbSource/buoyancyTurbSource.C b/src/fvOptions/sources/derived/buoyancyTurbSource/buoyancyTurbSource.C index a262664637..b2b8be4bab 100644 --- a/src/fvOptions/sources/derived/buoyancyTurbSource/buoyancyTurbSource.C +++ b/src/fvOptions/sources/derived/buoyancyTurbSource/buoyancyTurbSource.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -178,7 +178,7 @@ Foam::fv::buoyancyTurbSource::buoyancyTurbSource << exit(FatalError); } - fieldNames_.setSize(2, "undefined"); + fieldNames_.resize(2); tmp tepsilon = turbPtr->epsilon(); tmp tomega = turbPtr->omega(); @@ -202,7 +202,8 @@ Foam::fv::buoyancyTurbSource::buoyancyTurbSource } fieldNames_[1] = turbPtr->k()().name(); - applied_.setSize(fieldNames_.size(), false); + + fv::option::resetApplied(); Log << " Applying buoyancyTurbSource to: " << fieldNames_[0] << " and " << fieldNames_[1] diff --git a/src/fvOptions/sources/derived/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C b/src/fvOptions/sources/derived/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C index ef9866c434..6f1d97e559 100644 --- a/src/fvOptions/sources/derived/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C +++ b/src/fvOptions/sources/derived/directionalPressureGradientExplicitSource/directionalPressureGradientExplicitSource.C @@ -223,7 +223,7 @@ directionalPressureGradientExplicitSource << exit(FatalError); } - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); // Read the initial pressure gradient from file if it exists IFstream propsFile diff --git a/src/fvOptions/sources/derived/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.C b/src/fvOptions/sources/derived/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.C index 807a3bc67c..e2d9b56fd4 100644 --- a/src/fvOptions/sources/derived/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.C +++ b/src/fvOptions/sources/derived/effectivenessHeatExchangerSource/effectivenessHeatExchangerSource.C @@ -160,9 +160,9 @@ Foam::fv::effectivenessHeatExchangerSource::effectivenessHeatExchangerSource const auto& thermo = mesh_.lookupObject(basicThermo::dictName); - fieldNames_.setSize(1, thermo.he().name()); + fieldNames_.resize(1, thermo.he().name()); - applied_.setSize(1, false); + fv::option::resetApplied(); eTable_.reset(new interpolation2DTable(coeffs_)); diff --git a/src/fvOptions/sources/derived/explicitPorositySource/explicitPorositySource.C b/src/fvOptions/sources/derived/explicitPorositySource/explicitPorositySource.C index b5ee9b738a..d52cd09b5f 100644 --- a/src/fvOptions/sources/derived/explicitPorositySource/explicitPorositySource.C +++ b/src/fvOptions/sources/derived/explicitPorositySource/explicitPorositySource.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2012-2018 OpenFOAM Foundation - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -123,7 +123,7 @@ bool Foam::fv::explicitPorositySource::read(const dictionary& dict) fieldNames_.first() = coeffs_.getOrDefault("U", "U"); } - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); return true; } diff --git a/src/fvOptions/sources/derived/jouleHeatingSource/jouleHeatingSource.C b/src/fvOptions/sources/derived/jouleHeatingSource/jouleHeatingSource.C index ff661db956..5b59cfbfc8 100644 --- a/src/fvOptions/sources/derived/jouleHeatingSource/jouleHeatingSource.C +++ b/src/fvOptions/sources/derived/jouleHeatingSource/jouleHeatingSource.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2016-2020 OpenCFD Ltd. + Copyright (C) 2016-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -134,9 +134,9 @@ Foam::fv::jouleHeatingSource::jouleHeatingSource const auto& thermo = mesh_.lookupObject(basicThermo::dictName); - fieldNames_.setSize(1, thermo.he().name()); + fieldNames_.resize(1, thermo.he().name()); - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); read(dict); } diff --git a/src/fvOptions/sources/derived/meanVelocityForce/meanVelocityForce.C b/src/fvOptions/sources/derived/meanVelocityForce/meanVelocityForce.C index 00c9a8f1e1..f10e8d8d97 100644 --- a/src/fvOptions/sources/derived/meanVelocityForce/meanVelocityForce.C +++ b/src/fvOptions/sources/derived/meanVelocityForce/meanVelocityForce.C @@ -98,7 +98,7 @@ Foam::fv::meanVelocityForce::meanVelocityForce << "settings are:" << fieldNames_ << exit(FatalError); } - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); // Read the initial pressure gradient from file if it exists IFstream propsFile diff --git a/src/fvOptions/sources/derived/multiphaseStabilizedTurbulence/multiphaseStabilizedTurbulence.C b/src/fvOptions/sources/derived/multiphaseStabilizedTurbulence/multiphaseStabilizedTurbulence.C index 96a399d2be..b88e716163 100644 --- a/src/fvOptions/sources/derived/multiphaseStabilizedTurbulence/multiphaseStabilizedTurbulence.C +++ b/src/fvOptions/sources/derived/multiphaseStabilizedTurbulence/multiphaseStabilizedTurbulence.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -96,7 +96,7 @@ Foam::fv::multiphaseStabilizedTurbulence::multiphaseStabilizedTurbulence ) ) { - fieldNames_.setSize(2, "undefined"); + fieldNames_.resize(2); // Note: incompressible only const auto* turbPtr = @@ -123,7 +123,7 @@ Foam::fv::multiphaseStabilizedTurbulence::multiphaseStabilizedTurbulence << exit(FatalError); } - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); } diff --git a/src/fvOptions/sources/derived/phaseLimitStabilization/PhaseLimitStabilization.C b/src/fvOptions/sources/derived/phaseLimitStabilization/PhaseLimitStabilization.C index 69df18ba5e..7d90715a32 100644 --- a/src/fvOptions/sources/derived/phaseLimitStabilization/PhaseLimitStabilization.C +++ b/src/fvOptions/sources/derived/phaseLimitStabilization/PhaseLimitStabilization.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2017 OpenFOAM Foundation - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -47,8 +47,8 @@ Foam::fv::PhaseLimitStabilization::PhaseLimitStabilization rateName_(coeffs_.get("rate")), residualAlpha_(coeffs_.get("residualAlpha")) { - fieldNames_.setSize(1, fieldName_); - applied_.setSize(1, false); + fieldNames_.resize(1, fieldName_); + fv::option::resetApplied(); } diff --git a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.C b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.C index 509b5e1695..2094eb7170 100644 --- a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.C +++ b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2018-2020 OpenCFD Ltd. + Copyright (C) 2018-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -548,7 +548,7 @@ bool Foam::fv::rotorDiskSource::read(const dictionary& dict) if (cellSetOption::read(dict)) { coeffs_.readEntry("fields", fieldNames_); - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); // Read coordinate system/geometry invariant properties omega_ = rpmToRads(coeffs_.get("rpm")); diff --git a/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.C b/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.C index e2d464b8c5..ca9deb5827 100644 --- a/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.C +++ b/src/fvOptions/sources/derived/solidificationMeltingSource/solidificationMeltingSource.C @@ -192,7 +192,7 @@ Foam::fv::solidificationMeltingSource::solidificationMeltingSource curTimeIndex_(-1), deltaT_(cells_.size(), 0) { - fieldNames_.setSize(2); + fieldNames_.resize(2); fieldNames_[0] = UName_; switch (mode_) @@ -218,7 +218,7 @@ Foam::fv::solidificationMeltingSource::solidificationMeltingSource } } - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); } diff --git a/src/fvOptions/sources/derived/tabulatedAccelerationSource/tabulatedAccelerationSource.C b/src/fvOptions/sources/derived/tabulatedAccelerationSource/tabulatedAccelerationSource.C index 7daf9d27a6..eafb5d8dc7 100644 --- a/src/fvOptions/sources/derived/tabulatedAccelerationSource/tabulatedAccelerationSource.C +++ b/src/fvOptions/sources/derived/tabulatedAccelerationSource/tabulatedAccelerationSource.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2015-2016 OpenFOAM Foundation - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -59,8 +59,8 @@ Foam::fv::tabulatedAccelerationSource::tabulatedAccelerationSource UName_(coeffs_.getOrDefault("U", "U")), g0_("g0", dimAcceleration, Zero) { - fieldNames_.setSize(1, UName_); - applied_.setSize(1, false); + fieldNames_.resize(1, UName_); + fv::option::resetApplied(); if (mesh.time().foundObject("g")) { diff --git a/src/fvOptions/sources/derived/viscousDissipation/viscousDissipation.C b/src/fvOptions/sources/derived/viscousDissipation/viscousDissipation.C index c3c4b71a79..79673faffa 100644 --- a/src/fvOptions/sources/derived/viscousDissipation/viscousDissipation.C +++ b/src/fvOptions/sources/derived/viscousDissipation/viscousDissipation.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2017-2020 OpenCFD Ltd. + Copyright (C) 2017-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -106,7 +106,7 @@ Foam::fv::viscousDissipation::viscousDissipation if (thermoPtr) { - fieldNames_.setSize(1, thermoPtr->he().name()); + fieldNames_.resize(1, thermoPtr->he().name()); } if (fieldNames_.empty()) @@ -120,7 +120,7 @@ Foam::fv::viscousDissipation::viscousDissipation << "settings are:" << fieldNames_ << exit(FatalError); } - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); } diff --git a/src/fvOptions/sources/general/codedSource/CodedSource.C b/src/fvOptions/sources/general/codedSource/CodedFvSource.C similarity index 76% rename from src/fvOptions/sources/general/codedSource/CodedSource.C rename to src/fvOptions/sources/general/codedSource/CodedFvSource.C index 07bb792d99..969cb79374 100644 --- a/src/fvOptions/sources/general/codedSource/CodedSource.C +++ b/src/fvOptions/sources/general/codedSource/CodedFvSource.C @@ -26,7 +26,7 @@ License \*---------------------------------------------------------------------------*/ -#include "CodedSource.H" +#include "CodedFvSource.H" #include "fvMesh.H" #include "fvMatrices.H" #include "dynamicCode.H" @@ -52,7 +52,7 @@ Foam::string Foam::fv::CodedSource::description() const template void Foam::fv::CodedSource::clearRedirect() const { - redirectFvOptionPtr_.reset(nullptr); + redirectOptionPtr_.reset(nullptr); } @@ -124,7 +124,7 @@ Foam::fv::CodedSource::CodedSource const fvMesh& mesh ) : - cellSetOption(name, modelType, dict, mesh) + fv::cellSetOption(name, modelType, dict, mesh) { read(dict); } @@ -133,22 +133,62 @@ Foam::fv::CodedSource::CodedSource // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template -Foam::fv::option& Foam::fv::CodedSource::redirectFvOption() const +bool Foam::fv::CodedSource::read(const dictionary& dict) { - if (!redirectFvOptionPtr_) + codedBase::setCodeContext(coeffs_); + + if (!fv::cellSetOption::read(dict)) + { + return false; + } + + coeffs_.readEntry("fields", fieldNames_); + + fv::option::resetApplied(); + + dict.readCompat("name", {{"redirectType", 1706}}, name_); + + + // Code context chunks + + auto& ctx = codedBase::codeContext(); + + ctx.readEntry("codeCorrect", codeCorrect_); + ctx.readEntry("codeAddSup", codeAddSup_); + + // ctx.readEntry("codeConstrain", codeConstrain_); + ctx.readEntry // Compatibility + ( + coeffs_.lookupEntryCompat + ( + "codeConstrain", + {{ "codeSetValue", 1812 }}, + keyType::LITERAL + ).keyword(), + codeConstrain_ + ); + + return true; +} + + +template +Foam::fv::option& Foam::fv::CodedSource::redirectOption() const +{ + if (!redirectOptionPtr_) { dictionary constructDict(dict_); constructDict.set("type", name_); constructDict.changeKeyword(modelType_ & "Coeffs", name_ & "Coeffs"); - redirectFvOptionPtr_ = fv::option::New + redirectOptionPtr_ = fv::option::New ( name_, constructDict, mesh_ ); } - return *redirectFvOptionPtr_; + return *redirectOptionPtr_; } @@ -159,11 +199,11 @@ void Foam::fv::CodedSource::correct ) { DebugInfo - << "CodedSource<" << pTraits::typeName + << "fv::CodedSource<" << pTraits::typeName << ">::correct for source " << name_ << endl; updateLibrary(name_); - redirectFvOption().correct(field); + redirectOption().correct(field); } @@ -175,11 +215,11 @@ void Foam::fv::CodedSource::addSup ) { DebugInfo - << "CodedSource<" << pTraits::typeName + << "fv::CodedSource<" << pTraits::typeName << ">::addSup for source " << name_ << endl; updateLibrary(name_); - redirectFvOption().addSup(eqn, fieldi); + redirectOption().addSup(eqn, fieldi); } @@ -192,11 +232,11 @@ void Foam::fv::CodedSource::addSup ) { DebugInfo - << "CodedSource<" << pTraits::typeName + << "fv::CodedSource<" << pTraits::typeName << ">::addSup for source " << name_ << endl; updateLibrary(name_); - redirectFvOption().addSup(rho, eqn, fieldi); + redirectOption().addSup(rho, eqn, fieldi); } @@ -208,11 +248,11 @@ void Foam::fv::CodedSource::constrain ) { DebugInfo - << "CodedSource<" << pTraits::typeName + << "fv::CodedSource<" << pTraits::typeName << ">::constrain for source " << name_ << endl; updateLibrary(name_); - redirectFvOption().constrain(eqn, fieldi); + redirectOption().constrain(eqn, fieldi); } diff --git a/src/fvOptions/sources/general/codedSource/CodedSource.H b/src/fvOptions/sources/general/codedSource/CodedFvSource.H similarity index 91% rename from src/fvOptions/sources/general/codedSource/CodedSource.H rename to src/fvOptions/sources/general/codedSource/CodedFvSource.H index 0da0e711c7..2f1606df96 100644 --- a/src/fvOptions/sources/general/codedSource/CodedSource.H +++ b/src/fvOptions/sources/general/codedSource/CodedFvSource.H @@ -58,6 +58,14 @@ Description field is the name of the field in the fields list eqn is the fvMatrix + These are in addition to the usual code entries: + \plaintable + codeInclude | include files + codeOptions | compiler line: added to EXE_INC (Make/options) + codeLibs | linker line: added to LIB_LIBS (Make/options) + localCode | c++; local static functions + \endplaintable + Usage Example usage in controlDict: \verbatim @@ -89,7 +97,7 @@ Usage heSource -= 0.1*sqr(time.value())*V; #}; - codeContrain + codeConstrain #{ Pout<< "**codeConstrain**" << endl; #}; @@ -97,14 +105,13 @@ Usage } \endverbatim - SourceFiles codedSource.C \*---------------------------------------------------------------------------*/ -#ifndef CodedSource_H -#define CodedSource_H +#ifndef fv_CodedFvSource_H +#define fv_CodedFvSource_H #include "cellSetOption.H" #include "codedBase.H" @@ -137,7 +144,7 @@ protected: string codeConstrain_; //- Underlying code - mutable autoPtr redirectFvOptionPtr_; + mutable autoPtr redirectOptionPtr_; // Protected Member Functions @@ -190,7 +197,7 @@ public: // Member Functions //- Dynamically compiled fvOption - option& redirectFvOption() const; + fv::option& redirectOption() const; // Evaluation @@ -239,8 +246,7 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository - #include "CodedSource.C" - #include "CodedSourceIO.C" + #include "CodedFvSource.C" #endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/fvOptions/sources/general/codedSource/CodedSourceIO.C b/src/fvOptions/sources/general/codedSource/CodedSourceIO.C deleted file mode 100644 index 02a1232f43..0000000000 --- a/src/fvOptions/sources/general/codedSource/CodedSourceIO.C +++ /dev/null @@ -1,72 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | www.openfoam.com - \\/ M anipulation | -------------------------------------------------------------------------------- - Copyright (C) 2012-2016 OpenFOAM Foundation - Copyright (C) 2019-2021 OpenCFD Ltd. -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM. If not, see . - -\*---------------------------------------------------------------------------*/ - -#include "CodedSource.H" - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template -bool Foam::fv::CodedSource::read(const dictionary& dict) -{ - codedBase::setCodeContext(coeffs_); - - if (!cellSetOption::read(dict)) - { - return false; - } - - coeffs_.readEntry("fields", fieldNames_); - applied_.resize(fieldNames_.size(), false); - - dict.readCompat("name", {{"redirectType", 1706}}, name_); - - - // Code context chunks - - auto& ctx = codedBase::codeContext(); - - ctx.readEntry("codeCorrect", codeCorrect_); - ctx.readEntry("codeAddSup", codeAddSup_); - - // ctx.readEntry("codeConstrain", codeConstrain_); - ctx.readEntry // Compatibility - ( - coeffs_.lookupEntryCompat - ( - "codeConstrain", - {{ "codeSetValue", 1812 }}, - keyType::LITERAL - ).keyword(), - codeConstrain_ - ); - - return true; -} - - -// ************************************************************************* // diff --git a/src/fvOptions/sources/general/codedSource/codedSource.C b/src/fvOptions/sources/general/codedSource/codedFvSources.C similarity index 98% rename from src/fvOptions/sources/general/codedSource/codedSource.C rename to src/fvOptions/sources/general/codedSource/codedFvSources.C index 0b0a7bc1cc..f07d55e4b1 100644 --- a/src/fvOptions/sources/general/codedSource/codedSource.C +++ b/src/fvOptions/sources/general/codedSource/codedFvSources.C @@ -26,7 +26,7 @@ License \*---------------------------------------------------------------------------*/ #include "makeFvOption.H" -#include "CodedSource.H" +#include "CodedFvSource.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/fvOptions/sources/general/semiImplicitSource/SemiImplicitSource.C b/src/fvOptions/sources/general/semiImplicitSource/SemiImplicitSource.C index 2a3739f173..f605301139 100644 --- a/src/fvOptions/sources/general/semiImplicitSource/SemiImplicitSource.C +++ b/src/fvOptions/sources/general/semiImplicitSource/SemiImplicitSource.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -54,10 +54,10 @@ void Foam::fv::SemiImplicitSource::setFieldData(const dictionary& dict) label count = dict.size(); fieldNames_.resize(count); - Su_.resize(count); - Sp_.resize(count); + Su_.resize(fieldNames_.size()); + Sp_.resize(fieldNames_.size()); - applied_.resize(count, false); + fv::option::resetApplied(); count = 0; for (const entry& dEntry : dict) diff --git a/src/fvOptions/sources/interRegion/interRegionExplicitPorositySource/interRegionExplicitPorositySource.C b/src/fvOptions/sources/interRegion/interRegionExplicitPorositySource/interRegionExplicitPorositySource.C index e4b815b68b..4e00e9b225 100644 --- a/src/fvOptions/sources/interRegion/interRegionExplicitPorositySource/interRegionExplicitPorositySource.C +++ b/src/fvOptions/sources/interRegion/interRegionExplicitPorositySource/interRegionExplicitPorositySource.C @@ -126,8 +126,8 @@ Foam::fv::interRegionExplicitPorositySource::interRegionExplicitPorositySource { if (active_) { - fieldNames_.setSize(1, UName_); - applied_.setSize(1, false); + fieldNames_.resize(1, UName_); + fv::option::resetApplied(); } } diff --git a/src/fvOptions/sources/interRegion/interRegionHeatTransfer/interRegionHeatTransferModel/interRegionHeatTransferModel.C b/src/fvOptions/sources/interRegion/interRegionHeatTransfer/interRegionHeatTransferModel/interRegionHeatTransferModel.C index 5cf4aff036..ea1d6f4d17 100644 --- a/src/fvOptions/sources/interRegion/interRegionHeatTransfer/interRegionHeatTransferModel/interRegionHeatTransferModel.C +++ b/src/fvOptions/sources/interRegion/interRegionHeatTransfer/interRegionHeatTransferModel/interRegionHeatTransferModel.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -147,9 +147,8 @@ Foam::fv::interRegionHeatTransferModel::interRegionHeatTransferModel if (active()) { coeffs_.readEntry("fields", fieldNames_); - applied_.setSize(fieldNames_.size(), false); - coeffs_.readEntry("semiImplicit", semiImplicit_); + fv::option::resetApplied(); } } diff --git a/src/thermophysicalModels/radiation/fvOptions/radiation/radiation.C b/src/thermophysicalModels/radiation/fvOptions/radiation/radiation.C index 93f8eb8bfd..e9f8993233 100644 --- a/src/thermophysicalModels/radiation/fvOptions/radiation/radiation.C +++ b/src/thermophysicalModels/radiation/fvOptions/radiation/radiation.C @@ -57,9 +57,9 @@ Foam::fv::radiation::radiation { const auto& thermo = mesh_.lookupObject(basicThermo::dictName); - fieldNames_.setSize(1); + fieldNames_.resize(1); fieldNames_[0] = thermo.he().name(); - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); radiation_ = Foam::radiation::radiationModel::New(thermo.T()); } diff --git a/src/waveModels/fvOptions/multiphaseMangrovesSource/multiphaseMangrovesSource.C b/src/waveModels/fvOptions/multiphaseMangrovesSource/multiphaseMangrovesSource.C index c7cb5844d5..b0e7d64fe6 100644 --- a/src/waveModels/fvOptions/multiphaseMangrovesSource/multiphaseMangrovesSource.C +++ b/src/waveModels/fvOptions/multiphaseMangrovesSource/multiphaseMangrovesSource.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2017 IH-Cantabria - Copyright (C) 2017-2020 OpenCFD Ltd. + Copyright (C) 2017-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -213,8 +213,7 @@ bool Foam::fv::multiphaseMangrovesSource::read(const dictionary& dict) fieldNames_.resize(1); fieldNames_.first() = coeffs_.getOrDefault("U", "U"); } - - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); // Create the Mangroves models - 1 per region const dictionary& regionsDict(coeffs_.subDict("regions")); diff --git a/src/waveModels/fvOptions/multiphaseMangrovesTurbulenceModel/multiphaseMangrovesTurbulenceModel.C b/src/waveModels/fvOptions/multiphaseMangrovesTurbulenceModel/multiphaseMangrovesTurbulenceModel.C index fb754cafbc..5cda1d1da8 100644 --- a/src/waveModels/fvOptions/multiphaseMangrovesTurbulenceModel/multiphaseMangrovesTurbulenceModel.C +++ b/src/waveModels/fvOptions/multiphaseMangrovesTurbulenceModel/multiphaseMangrovesTurbulenceModel.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2017 IH-Cantabria - Copyright (C) 2017-2018 OpenCFD Ltd. + Copyright (C) 2017-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -243,8 +243,7 @@ bool Foam::fv::multiphaseMangrovesTurbulenceModel::read(const dictionary& dict) fieldNames_[1] = "k"; } } - - applied_.setSize(fieldNames_.size(), false); + fv::option::resetApplied(); // Create the Mangroves models - 1 per region const dictionary& regionsDict(coeffs_.subDict("regions"));