diff --git a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C index ed93bc7f4e..250ddc086a 100644 --- a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C +++ b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C @@ -899,7 +899,8 @@ int main(int argc, char *argv[]) runTime.system(), runTime, IOobject::MUST_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), args.getOrDefault("decomposeParDict", "") ) diff --git a/applications/utilities/surface/surfaceRedistributePar/surfaceRedistributePar.C b/applications/utilities/surface/surfaceRedistributePar/surfaceRedistributePar.C index d5d887d973..80f3bf8b18 100644 --- a/applications/utilities/surface/surfaceRedistributePar/surfaceRedistributePar.C +++ b/applications/utilities/surface/surfaceRedistributePar/surfaceRedistributePar.C @@ -171,7 +171,8 @@ int main(int argc, char *argv[]) runTime.system(), runTime, IOobject::MUST_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), args.getOrDefault("decomposeParDict", "") ) diff --git a/src/finiteVolume/expressions/base/fvExprDriver.C b/src/finiteVolume/expressions/base/fvExprDriver.C index 13ccbdfc03..0e9a3a7935 100644 --- a/src/finiteVolume/expressions/base/fvExprDriver.C +++ b/src/finiteVolume/expressions/base/fvExprDriver.C @@ -537,7 +537,9 @@ Foam::expressions::fvExprDriver::regionMesh regionName, mesh.time().constant(), mesh.time(), - IOobject::MUST_READ + IOobject::MUST_READ, + IOobject::NO_WRITE, + IOobject::REGISTER ) ); diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/LimitedScheme/LimitedScheme.C b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/LimitedScheme/LimitedScheme.C index 266e061da1..aed48475eb 100644 --- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/LimitedScheme/LimitedScheme.C +++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/LimitedScheme/LimitedScheme.C @@ -151,30 +151,28 @@ Foam::LimitedScheme::limiter if (this->mesh().cache("limiter")) { - if (!mesh.foundObject(limiterFieldName)) + auto* fldptr = mesh.getObjectPtr(limiterFieldName); + + if (!fldptr) { - surfaceScalarField* limiterField + fldptr = new surfaceScalarField ( - new surfaceScalarField + IOobject ( - IOobject - ( - limiterFieldName, - mesh.time().timeName(), - mesh, - IOobject::NO_READ, - IOobject::NO_WRITE - ), + limiterFieldName, + mesh.time().timeName(), mesh, - dimless - ) + IOobject::NO_READ, + IOobject::NO_WRITE, + IOobject::REGISTER + ), + mesh, + dimless ); - mesh.objectRegistry::store(limiterField); + mesh.objectRegistry::store(fldptr); } - - surfaceScalarField& limiterField = - mesh.lookupObjectRef(limiterFieldName); + auto& limiterField = *fldptr; calcLimiter(phi, limiterField); diff --git a/src/functionObjects/field/CourantNo/CourantNo.C b/src/functionObjects/field/CourantNo/CourantNo.C index 55ff252fb3..98aeb51a9c 100644 --- a/src/functionObjects/field/CourantNo/CourantNo.C +++ b/src/functionObjects/field/CourantNo/CourantNo.C @@ -78,17 +78,11 @@ bool Foam::functionObjects::CourantNo::calc() ) ); - if (foundObject(resultName_, false)) - { - volScalarField& Co = - lookupObjectRef(resultName_); + auto* resultPtr = getObjectPtr(resultName_); - Co.ref() = Coi(); - Co.correctBoundaryConditions(); - } - else + if (!resultPtr) { - auto tCo = tmp::New + resultPtr = new volScalarField ( IOobject ( @@ -96,16 +90,19 @@ bool Foam::functionObjects::CourantNo::calc() mesh_.time().timeName(), mesh_, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), mesh_, dimensionedScalar(dimless, Zero), fvPatchFieldBase::zeroGradientType() ); - tCo.ref().ref() = Coi(); - tCo.ref().correctBoundaryConditions(); - mesh_.objectRegistry::store(tCo.ptr()); + mesh_.objectRegistry::store(resultPtr); } + auto& Co = *resultPtr; + + Co.internalFieldRef() = Coi; + Co.correctBoundaryConditions(); return true; } diff --git a/src/functionObjects/field/DESModelRegions/DESModelRegions.C b/src/functionObjects/field/DESModelRegions/DESModelRegions.C index 07bc912eda..ce2e343942 100644 --- a/src/functionObjects/field/DESModelRegions/DESModelRegions.C +++ b/src/functionObjects/field/DESModelRegions/DESModelRegions.C @@ -80,7 +80,8 @@ Foam::functionObjects::DESModelRegions::DESModelRegions time_.timeName(), mesh_, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), mesh_, dimensionedScalar(dimless, Zero) diff --git a/src/functionObjects/field/blendingFactor/blendingFactor.C b/src/functionObjects/field/blendingFactor/blendingFactor.C index 81e0cc2307..aa93aa646b 100644 --- a/src/functionObjects/field/blendingFactor/blendingFactor.C +++ b/src/functionObjects/field/blendingFactor/blendingFactor.C @@ -92,7 +92,8 @@ Foam::functionObjects::blendingFactor::blendingFactor time_.timeName(), mesh_, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), mesh_, dimensionedScalar(dimless, Zero), diff --git a/src/functionObjects/field/ddt2/ddt2Templates.C b/src/functionObjects/field/ddt2/ddt2Templates.C index 187c0e4d24..e90f9c025c 100644 --- a/src/functionObjects/field/ddt2/ddt2Templates.C +++ b/src/functionObjects/field/ddt2/ddt2Templates.C @@ -66,7 +66,8 @@ int Foam::functionObjects::ddt2::apply(const word& inputName, int& state) time_.timeName(), mesh_, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), mesh_, dimensionedScalar(dims, Zero) diff --git a/src/functionObjects/field/fieldAverage/fieldAverageTemplates.C b/src/functionObjects/field/fieldAverage/fieldAverageTemplates.C index 95fc5bcc1d..9b612df9a8 100644 --- a/src/functionObjects/field/fieldAverage/fieldAverageTemplates.C +++ b/src/functionObjects/field/fieldAverage/fieldAverageTemplates.C @@ -143,7 +143,8 @@ void Foam::functionObjects::fieldAverage::restoreWindowFieldsType obr().time().timeName(obr().time().startTime().value()), obr(), IOobject::MUST_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ); if (io.typeHeaderOk(true)) diff --git a/src/functionObjects/field/heatTransferCoeff/heatTransferCoeff.C b/src/functionObjects/field/heatTransferCoeff/heatTransferCoeff.C index dbc80d2ec7..5c33fcdc62 100644 --- a/src/functionObjects/field/heatTransferCoeff/heatTransferCoeff.C +++ b/src/functionObjects/field/heatTransferCoeff/heatTransferCoeff.C @@ -82,7 +82,8 @@ Foam::functionObjects::heatTransferCoeff::heatTransferCoeff mesh_.time().timeName(), mesh_, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), mesh_, dimensionedScalar(dimPower/dimArea/dimTemperature, Zero) diff --git a/src/functionObjects/field/heatTransferCoeff/multiphaseInterHtcModel/multiphaseInterHtcModel.C b/src/functionObjects/field/heatTransferCoeff/multiphaseInterHtcModel/multiphaseInterHtcModel.C index 0c76e09930..0dc05eede6 100644 --- a/src/functionObjects/field/heatTransferCoeff/multiphaseInterHtcModel/multiphaseInterHtcModel.C +++ b/src/functionObjects/field/heatTransferCoeff/multiphaseInterHtcModel/multiphaseInterHtcModel.C @@ -138,7 +138,8 @@ Foam::functionObjects::multiphaseInterHtcModel::multiphaseInterHtcModel mesh_.time().timeName(), mesh_, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), mesh_, dimensionedScalar(dimPower/dimArea/dimTemperature, Zero) diff --git a/src/functionObjects/field/heatTransferCoeff/reactingEulerHtcModel/reactingEulerHtcModel.C b/src/functionObjects/field/heatTransferCoeff/reactingEulerHtcModel/reactingEulerHtcModel.C index 9b4267bf42..a4ebe4b2df 100644 --- a/src/functionObjects/field/heatTransferCoeff/reactingEulerHtcModel/reactingEulerHtcModel.C +++ b/src/functionObjects/field/heatTransferCoeff/reactingEulerHtcModel/reactingEulerHtcModel.C @@ -147,7 +147,8 @@ Foam::functionObjects::reactingEulerHtcModel::reactingEulerHtcModel mesh_.time().timeName(), mesh_, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), mesh_, dimensionedScalar(dimPower/dimArea/dimTemperature, Zero) diff --git a/src/functionObjects/field/momentumError/momentumError.C b/src/functionObjects/field/momentumError/momentumError.C index 4eceecaefc..6bbc1068fc 100644 --- a/src/functionObjects/field/momentumError/momentumError.C +++ b/src/functionObjects/field/momentumError/momentumError.C @@ -173,7 +173,8 @@ Foam::functionObjects::momentumError::momentumError subMesh.time().timeName(), subMesh, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), subMesh, dimensionedVector(momDims) @@ -192,7 +193,8 @@ Foam::functionObjects::momentumError::momentumError time_.timeName(), mesh_, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), mesh_, dimensionedVector(momDims) diff --git a/src/functionObjects/field/pressure/pressure.C b/src/functionObjects/field/pressure/pressure.C index 22861c8052..9b67f4c7ec 100644 --- a/src/functionObjects/field/pressure/pressure.C +++ b/src/functionObjects/field/pressure/pressure.C @@ -332,7 +332,8 @@ bool Foam::functionObjects::pressure::calc() p.mesh().time().timeName(), p.mesh(), IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), coeff(calcPressure(p, rhoScale(p))) ); diff --git a/src/functionObjects/field/processorField/processorField.C b/src/functionObjects/field/processorField/processorField.C index 54abba4ed4..652001af0a 100644 --- a/src/functionObjects/field/processorField/processorField.C +++ b/src/functionObjects/field/processorField/processorField.C @@ -65,10 +65,11 @@ Foam::functionObjects::processorField::processorField mesh_.time().timeName(), mesh_, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), mesh_, - dimensionedScalar(dimless, Pstream::myProcNo()) + dimensionedScalar(dimless, UPstream::myProcNo()) ) ); @@ -92,7 +93,7 @@ bool Foam::functionObjects::processorField::execute() mesh_.lookupObjectRef("processorID"); procField == - dimensionedScalar("proci", dimless, Pstream::myProcNo()); + dimensionedScalar("proci", dimless, UPstream::myProcNo()); return true; } @@ -123,10 +124,11 @@ void Foam::functionObjects::processorField::updateMesh(const mapPolyMesh& mpm) mesh_.time().timeName(), mesh_, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), mesh_, - dimensionedScalar(dimless, Pstream::myProcNo()) + dimensionedScalar(dimless, UPstream::myProcNo()) ) ); diff --git a/src/functionObjects/field/stabilityBlendingFactor/stabilityBlendingFactor.C b/src/functionObjects/field/stabilityBlendingFactor/stabilityBlendingFactor.C index 63c976e07e..ef07ad51de 100644 --- a/src/functionObjects/field/stabilityBlendingFactor/stabilityBlendingFactor.C +++ b/src/functionObjects/field/stabilityBlendingFactor/stabilityBlendingFactor.C @@ -541,7 +541,8 @@ Foam::functionObjects::stabilityBlendingFactor::stabilityBlendingFactor time_.timeName(), mesh_, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), mesh_, dimensionedScalar(dimless, Zero) @@ -565,7 +566,7 @@ Foam::functionObjects::stabilityBlendingFactor::stabilityBlendingFactor if (fieldHeader.typeHeaderOk(true, true, false)) { - volScalarField* vfPtr = new volScalarField(fieldHeader, mesh_); + auto* vfPtr = new volScalarField(fieldHeader, mesh_); mesh_.objectRegistry::store(vfPtr); } else @@ -595,7 +596,7 @@ Foam::functionObjects::stabilityBlendingFactor::stabilityBlendingFactor if (fieldHeader.typeHeaderOk(true, true, false)) { - volScalarField* vfPtr = new volScalarField(fieldHeader, mesh_); + auto* vfPtr = new volScalarField(fieldHeader, mesh_); mesh_.objectRegistry::store(vfPtr); } else @@ -623,7 +624,7 @@ Foam::functionObjects::stabilityBlendingFactor::stabilityBlendingFactor if (fieldHeader.typeHeaderOk(true, true, false)) { - volScalarField* vfPtr(new volScalarField(fieldHeader, mesh_)); + auto* vfPtr = new volScalarField(fieldHeader, mesh_); mesh_.objectRegistry::store(vfPtr); } else diff --git a/src/functionObjects/field/streamFunction/streamFunction.C b/src/functionObjects/field/streamFunction/streamFunction.C index 9bcd7a68ea..3329d20131 100644 --- a/src/functionObjects/field/streamFunction/streamFunction.C +++ b/src/functionObjects/field/streamFunction/streamFunction.C @@ -404,10 +404,11 @@ Foam::tmp Foam::functionObjects::streamFunction::calc bool Foam::functionObjects::streamFunction::calc() { - if (foundObject(fieldName_)) + const auto* phiPtr = findObject(fieldName_); + + if (phiPtr) { - const surfaceScalarField& phi = - mesh_.lookupObject(fieldName_); + const surfaceScalarField& phi = *phiPtr; return store(resultName_, calc(phi)); } diff --git a/src/functionObjects/field/surfaceDistance/surfaceDistance.C b/src/functionObjects/field/surfaceDistance/surfaceDistance.C index 0a2e3133e8..682c30ae5b 100644 --- a/src/functionObjects/field/surfaceDistance/surfaceDistance.C +++ b/src/functionObjects/field/surfaceDistance/surfaceDistance.C @@ -53,7 +53,7 @@ Foam::functionObjects::surfaceDistance::surfaceDistance { read(dict); - volScalarField* procFieldPtr + volScalarField* distPtr ( new volScalarField ( @@ -63,14 +63,15 @@ Foam::functionObjects::surfaceDistance::surfaceDistance mesh_.time().timeName(), mesh_, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), mesh_, dimensionedScalar(dimLength, Zero) ) ); - mesh_.objectRegistry::store(procFieldPtr); + mesh_.objectRegistry::store(distPtr); } diff --git a/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C b/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C index c8e5ed9b86..ca638e238f 100644 --- a/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C +++ b/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C @@ -119,7 +119,8 @@ Foam::functionObjects::wallHeatFlux::wallHeatFlux mesh_.time().timeName(), mesh_, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), mesh_, dimensionedScalar(dimMass/pow3(dimTime), Zero) diff --git a/src/functionObjects/field/wallShearStress/wallShearStress.C b/src/functionObjects/field/wallShearStress/wallShearStress.C index 8f9ee5b751..43feefd219 100644 --- a/src/functionObjects/field/wallShearStress/wallShearStress.C +++ b/src/functionObjects/field/wallShearStress/wallShearStress.C @@ -106,7 +106,8 @@ Foam::functionObjects::wallShearStress::wallShearStress mesh_.time().timeName(), mesh_, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), mesh_, dimensionedVector(sqr(dimLength)/sqr(dimTime), Zero) diff --git a/src/functionObjects/field/yPlus/yPlus.C b/src/functionObjects/field/yPlus/yPlus.C index b17622fa7f..68365a610e 100644 --- a/src/functionObjects/field/yPlus/yPlus.C +++ b/src/functionObjects/field/yPlus/yPlus.C @@ -87,7 +87,8 @@ Foam::functionObjects::yPlus::yPlus mesh_.time().timeName(), mesh_, IOobject::NO_READ, - IOobject::AUTO_WRITE + IOobject::AUTO_WRITE, + IOobject::REGISTER ), mesh_, dimensionedScalar(dimless, Zero) diff --git a/src/functionObjects/field/zeroGradient/zeroGradientTemplates.C b/src/functionObjects/field/zeroGradient/zeroGradientTemplates.C index 75505f24fe..0894b199d5 100644 --- a/src/functionObjects/field/zeroGradient/zeroGradientTemplates.C +++ b/src/functionObjects/field/zeroGradient/zeroGradientTemplates.C @@ -92,7 +92,8 @@ int Foam::functionObjects::zeroGradient::apply time_.timeName(), mesh_, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), mesh_, dimensioned(input.dimensions(), Zero), diff --git a/src/functionObjects/initialisation/hydrostaticPressure/hydrostaticPressure.C b/src/functionObjects/initialisation/hydrostaticPressure/hydrostaticPressure.C index 53b3870081..9bc7e256f0 100644 --- a/src/functionObjects/initialisation/hydrostaticPressure/hydrostaticPressure.C +++ b/src/functionObjects/initialisation/hydrostaticPressure/hydrostaticPressure.C @@ -191,7 +191,8 @@ Foam::functionObjects::hydrostaticPressure::hydrostaticPressure runTime.timeName(), mesh_, IOobject::MUST_READ, - IOobject::AUTO_WRITE // To enable restart + IOobject::AUTO_WRITE, // To enable restart + IOobject::REGISTER ), mesh_ ); diff --git a/src/functionObjects/solvers/electricPotential/electricPotential.C b/src/functionObjects/solvers/electricPotential/electricPotential.C index c13f858e35..1a1f20118d 100644 --- a/src/functionObjects/solvers/electricPotential/electricPotential.C +++ b/src/functionObjects/solvers/electricPotential/electricPotential.C @@ -57,7 +57,8 @@ Foam::functionObjects::electricPotential::operandField() mesh_.time().timeName(), mesh_, IOobject::MUST_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), mesh_ ); diff --git a/src/functionObjects/solvers/energyTransport/energyTransport.C b/src/functionObjects/solvers/energyTransport/energyTransport.C index 4df38d094a..255fce3636 100644 --- a/src/functionObjects/solvers/energyTransport/energyTransport.C +++ b/src/functionObjects/solvers/energyTransport/energyTransport.C @@ -67,7 +67,8 @@ Foam::volScalarField& Foam::functionObjects::energyTransport::transportedField() mesh_.time().timeName(), mesh_, IOobject::MUST_READ, - IOobject::AUTO_WRITE + IOobject::AUTO_WRITE, + IOobject::REGISTER ), mesh_ ); diff --git a/src/functionObjects/solvers/scalarTransport/scalarTransport.C b/src/functionObjects/solvers/scalarTransport/scalarTransport.C index 7e900da06f..7a93ae4bfd 100644 --- a/src/functionObjects/solvers/scalarTransport/scalarTransport.C +++ b/src/functionObjects/solvers/scalarTransport/scalarTransport.C @@ -69,7 +69,8 @@ Foam::volScalarField& Foam::functionObjects::scalarTransport::transportedField() mesh_.time().timeName(), mesh_, IOobject::MUST_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), mesh_ ); diff --git a/src/functionObjects/utilities/solverInfo/solverInfo.C b/src/functionObjects/utilities/solverInfo/solverInfo.C index 361c8998e6..e9f151d2e6 100644 --- a/src/functionObjects/utilities/solverInfo/solverInfo.C +++ b/src/functionObjects/utilities/solverInfo/solverInfo.C @@ -91,7 +91,9 @@ void Foam::functionObjects::solverInfo::createResidualField IOobject::scopedName("initialResidual", fieldName) ); - if (!mesh_.foundObject>(residualName)) + auto* fieldPtr = mesh_.getObjectPtr>(residualName); + + if (!fieldPtr) { auto* fieldPtr = new IOField diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/HeatTransferCoeff/HeatTransferCoeff.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/HeatTransferCoeff/HeatTransferCoeff.C index 63ba5bc3e0..51ae1bc7be 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/HeatTransferCoeff/HeatTransferCoeff.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/HeatTransferCoeff/HeatTransferCoeff.C @@ -64,11 +64,11 @@ void Foam::HeatTransferCoeff::postEvolve const auto& tc = static_cast>>&>(c); - auto* htcPtr = c.template getObjectPtr>("htc"); + auto* resultPtr = c.template getObjectPtr>("htc"); - if (!htcPtr) + if (!resultPtr) { - htcPtr = new IOField + resultPtr = new IOField ( IOobject ( @@ -81,9 +81,9 @@ void Foam::HeatTransferCoeff::postEvolve ) ); - htcPtr->store(); + resultPtr->store(); } - auto& htc = *htcPtr; + auto& htc = *resultPtr; htc.resize(c.size()); diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/KinematicReynoldsNumber/KinematicReynoldsNumber.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/KinematicReynoldsNumber/KinematicReynoldsNumber.C index 9a8e5f0c4e..5193283ecf 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/KinematicReynoldsNumber/KinematicReynoldsNumber.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/KinematicReynoldsNumber/KinematicReynoldsNumber.C @@ -61,11 +61,11 @@ void Foam::KinematicReynoldsNumber::postEvolve { auto& c = this->owner(); - auto* RePtr = c.template getObjectPtr>("Re"); + auto* resultPtr = c.template getObjectPtr>("Re"); - if (!RePtr) + if (!resultPtr) { - RePtr = new IOField + resultPtr = new IOField ( IOobject ( @@ -78,9 +78,9 @@ void Foam::KinematicReynoldsNumber::postEvolve ) ); - RePtr->store(); + resultPtr->store(); } - auto& Re = *RePtr; + auto& Re = *resultPtr; Re.resize(c.size()); diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/NusseltNumber/NusseltNumber.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/NusseltNumber/NusseltNumber.C index 573aaf7081..d2d785a10a 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/NusseltNumber/NusseltNumber.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/NusseltNumber/NusseltNumber.C @@ -64,11 +64,11 @@ void Foam::NusseltNumber::postEvolve const auto& tc = static_cast>>&>(c); - auto* NuPtr = c.template getObjectPtr>("Nu"); + auto* resultPtr = c.template getObjectPtr>("Nu"); - if (!NuPtr) + if (!resultPtr) { - NuPtr = new IOField + resultPtr = new IOField ( IOobject ( @@ -81,9 +81,9 @@ void Foam::NusseltNumber::postEvolve ) ); - NuPtr->store(); + resultPtr->store(); } - auto& Nu = *NuPtr; + auto& Nu = *resultPtr; Nu.resize(c.size()); diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleDose/ParticleDose.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleDose/ParticleDose.C index 89339f87c1..02bfd9f97c 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleDose/ParticleDose.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleDose/ParticleDose.C @@ -64,11 +64,11 @@ void Foam::ParticleDose::postEvolve { auto& c = this->owner(); - auto* DPtr = c.template getObjectPtr>("D"); + auto* resultPtr = c.template getObjectPtr>("D"); - if (!DPtr) + if (!resultPtr) { - DPtr = new IOField + resultPtr = new IOField ( IOobject ( @@ -81,9 +81,9 @@ void Foam::ParticleDose::postEvolve ) ); - DPtr->store(); + resultPtr->store(); } - auto& D = *DPtr; + auto& D = *resultPtr; D.resize(c.size(), Zero); diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ThermoReynoldsNumber/ThermoReynoldsNumber.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ThermoReynoldsNumber/ThermoReynoldsNumber.C index 6f06c372d8..090f37d518 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ThermoReynoldsNumber/ThermoReynoldsNumber.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ThermoReynoldsNumber/ThermoReynoldsNumber.C @@ -62,11 +62,11 @@ void Foam::ThermoReynoldsNumber::postEvolve { auto& c = this->owner(); - auto* RePtr = c.template getObjectPtr>("Re"); + auto* resultPtr = c.template getObjectPtr>("Re"); - if (!RePtr) + if (!resultPtr) { - RePtr = new IOField + resultPtr = new IOField ( IOobject ( @@ -79,9 +79,9 @@ void Foam::ThermoReynoldsNumber::postEvolve ) ); - RePtr->store(); + resultPtr->store(); } - auto& Re = *RePtr; + auto& Re = *resultPtr; Re.resize(c.size()); diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/WeberNumber/WeberNumberReacting.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/WeberNumber/WeberNumberReacting.C index 307db42ec0..30a42b12ee 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/WeberNumber/WeberNumberReacting.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/WeberNumber/WeberNumberReacting.C @@ -62,11 +62,11 @@ void Foam::WeberNumberReacting::postEvolve { const auto& c = this->owner(); - auto* WePtr = c.template getObjectPtr>("We"); + auto* resultPtr = c.template getObjectPtr>("We"); - if (!WePtr) + if (!resultPtr) { - WePtr = new IOField + resultPtr = new IOField ( IOobject ( @@ -79,9 +79,9 @@ void Foam::WeberNumberReacting::postEvolve ) ); - WePtr->store(); + resultPtr->store(); } - auto& We = *WePtr; + auto& We = *resultPtr; We.resize(c.size()); diff --git a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Interface/InterfaceForce.C b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Interface/InterfaceForce.C index 21f054122a..028bddae18 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Interface/InterfaceForce.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Interface/InterfaceForce.C @@ -67,26 +67,28 @@ Foam::InterfaceForce::~InterfaceForce() template void Foam::InterfaceForce::cacheFields(const bool store) { - static word fName("gradAlpha"); + static word resultName("gradAlpha"); - bool fieldExists = - this->mesh().template foundObject(fName); + volVectorField* resultPtr = + this->mesh().template getObjectPtr(resultName); if (store) { - if (!fieldExists) + if (!resultPtr) { const volScalarField& alpha = this->mesh().template lookupObject(alphaName_); - volVectorField* gradInterForcePtr = - new volVectorField(fName, fvc::grad(alpha*(1-alpha))); + resultPtr = new volVectorField + ( + resultName, + fvc::grad(alpha*(1-alpha)) + ); - gradInterForcePtr->store(); + resultPtr->store(); } - const volVectorField& gradInterForce = this->mesh().template - lookupObject(fName); + const volVectorField& gradInterForce = *resultPtr; gradInterForceInterpPtr_.reset ( @@ -101,12 +103,9 @@ void Foam::InterfaceForce::cacheFields(const bool store) { gradInterForceInterpPtr_.clear(); - if (fieldExists) + if (resultPtr) { - volVectorField& gradInterForce = - this->mesh().template lookupObjectRef(fName); - - gradInterForce.checkOut(); + resultPtr->checkOut(); } } } diff --git a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/LiftForce/LiftForce.C b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/LiftForce/LiftForce.C index 55b6478a79..89bb5818aa 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/LiftForce/LiftForce.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/LiftForce/LiftForce.C @@ -84,25 +84,24 @@ Foam::LiftForce::~LiftForce() template void Foam::LiftForce::cacheFields(const bool store) { - static word fName("curlUcDt"); + static word resultName("curlUcDt"); - bool fieldExists = this->mesh().template foundObject(fName); + volVectorField* resultPtr = + this->mesh().template getObjectPtr(resultName); if (store) { - if (!fieldExists) + if (!resultPtr) { const volVectorField& Uc = this->mesh().template lookupObject(UName_); - volVectorField* curlUcPtr = - new volVectorField(fName, fvc::curl(Uc)); + resultPtr = new volVectorField(resultName, fvc::curl(Uc)); - curlUcPtr->store(); + resultPtr->store(); } - const volVectorField& curlUc = this->mesh().template - lookupObject(fName); + const volVectorField& curlUc = *resultPtr; curlUcInterpPtr_.reset ( @@ -117,12 +116,9 @@ void Foam::LiftForce::cacheFields(const bool store) { curlUcInterpPtr_.clear(); - if (fieldExists) + if (resultPtr) { - volVectorField& curlUc = - this->mesh().template lookupObjectRef(fName); - - curlUc.checkOut(); + resultPtr->checkOut(); } } } diff --git a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/PressureGradient/PressureGradientForce.C b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/PressureGradient/PressureGradientForce.C index e0d0aa3bea..a39a3d6138 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/PressureGradient/PressureGradientForce.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/PressureGradient/PressureGradientForce.C @@ -71,28 +71,27 @@ Foam::PressureGradientForce::~PressureGradientForce() template void Foam::PressureGradientForce::cacheFields(const bool store) { - static word fName("DUcDt"); + static word resultName("DUcDt"); - bool fieldExists = this->mesh().template foundObject(fName); + volVectorField* resultPtr = + this->mesh().template getObjectPtr(resultName); if (store) { - if (!fieldExists) + if (!resultPtr) { const volVectorField& Uc = this->mesh().template lookupObject(UName_); - volVectorField* DUcDtPtr = new volVectorField + resultPtr = new volVectorField ( - fName, + resultName, fvc::ddt(Uc) + (Uc & fvc::grad(Uc)) ); - DUcDtPtr->store(); + resultPtr->store(); } - - const volVectorField& DUcDt = this->mesh().template - lookupObject(fName); + const volVectorField& DUcDt = *resultPtr; DUcDtInterpPtr_.reset ( @@ -107,12 +106,9 @@ void Foam::PressureGradientForce::cacheFields(const bool store) { DUcDtInterpPtr_.clear(); - if (fieldExists) + if (resultPtr) { - volVectorField& DUcDt = - this->mesh().template lookupObjectRef(fName); - - DUcDt.checkOut(); + resultPtr->checkOut(); } } } diff --git a/src/lumpedPointMotion/pointPatchFields/lumpedPointDisplacementPointPatchVectorField.C b/src/lumpedPointMotion/pointPatchFields/lumpedPointDisplacementPointPatchVectorField.C index b2fad27088..6a6814fc6f 100644 --- a/src/lumpedPointMotion/pointPatchFields/lumpedPointDisplacementPointPatchVectorField.C +++ b/src/lumpedPointMotion/pointPatchFields/lumpedPointDisplacementPointPatchVectorField.C @@ -186,15 +186,15 @@ Foam::lumpedPointDisplacementPointPatchVectorField::movement() const lumpedPointIOMovement* ptr = lumpedPointIOMovement::getMovementObject(obr); - if (ptr) + if (!ptr) { - return *ptr; // Already exists + // Create and register with this patch as the owner + ptr = lumpedPointIOMovement::New(obr, this->patch().index()).ptr(); + + objectRegistry::store(ptr); } - // Create and register with this patch as the owner - ptr = lumpedPointIOMovement::New(obr, this->patch().index()).ptr(); - - return objectRegistry::store(ptr); + return *ptr; } diff --git a/src/meshTools/mappedPatches/mappedPolyPatch/mappedPatchBaseTemplates.C b/src/meshTools/mappedPatches/mappedPolyPatch/mappedPatchBaseTemplates.C index e4ee68ab43..7429ae88e5 100644 --- a/src/meshTools/mappedPatches/mappedPolyPatch/mappedPatchBaseTemplates.C +++ b/src/meshTools/mappedPatches/mappedPolyPatch/mappedPatchBaseTemplates.C @@ -292,7 +292,7 @@ bool Foam::mappedPatchBase::constructIOField if (tok.isCompound() && tok.compoundToken().type() == tag) { - IOField* fldPtr = obr.findObject>(name); + IOField* fldPtr = obr.getObjectPtr>(name); if (fldPtr) { fldPtr->transfer @@ -305,14 +305,15 @@ bool Foam::mappedPatchBase::constructIOField } else { - IOField* fldPtr = new IOField + fldPtr = new IOField ( IOobject ( name, obr, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), label(0) ); @@ -342,7 +343,7 @@ void Foam::mappedPatchBase::storeField const Field& values ) { - IOField* fldPtr = obr.findObject>(fieldName); + IOField* fldPtr = obr.getObjectPtr>(fieldName); if (fldPtr) { *fldPtr = values; @@ -356,7 +357,8 @@ void Foam::mappedPatchBase::storeField fieldName, obr, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), values ); diff --git a/src/regionModels/regionModel/regionModel/regionModel.C b/src/regionModels/regionModel/regionModel/regionModel.C index d0d6f58ab7..6f8440339e 100644 --- a/src/regionModels/regionModel/regionModel/regionModel.C +++ b/src/regionModels/regionModel/regionModel/regionModel.C @@ -47,19 +47,22 @@ namespace regionModels void Foam::regionModels::regionModel::constructMeshObjects() { - if (!time_.foundObject(regionName_)) + fvMesh* regionMeshPtr = time_.getObjectPtr(regionName_); + + if (!regionMeshPtr) { - fvMesh* regionMeshPtr = - new fvMesh + regionMeshPtr = new fvMesh + ( + IOobject ( - IOobject - ( - regionName_, - time_.timeName(), - time_, - IOobject::MUST_READ - ) - ); + regionName_, + time_.timeName(), + time_, + IOobject::MUST_READ, + IOobject::NO_WRITE, + IOobject::REGISTER + ) + ); regionMeshPtr->objectRegistry::store(); } diff --git a/src/thermophysicalModels/basic/basicThermo/basicThermo.H b/src/thermophysicalModels/basic/basicThermo/basicThermo.H index 54dc0061d0..24d7e23493 100644 --- a/src/thermophysicalModels/basic/basicThermo/basicThermo.H +++ b/src/thermophysicalModels/basic/basicThermo/basicThermo.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2017-2021 OpenCFD Ltd. + Copyright (C) 2017-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -43,8 +43,8 @@ SourceFiles \*---------------------------------------------------------------------------*/ -#ifndef basicThermo_H -#define basicThermo_H +#ifndef Foam_basicThermo_H +#define Foam_basicThermo_H #include "volFields.H" #include "typeInfo.H" @@ -219,7 +219,7 @@ public: static autoPtr New ( const fvMesh&, - const word& phaseName=word::null + const word& phaseName = word::null ); //- Generic New for each of the related thermodynamics packages @@ -228,7 +228,7 @@ public: ( const fvMesh&, const dictionary&, - const word& phaseName=word::null + const word& phaseName = word::null ); //- Generic New for each of the related thermodynamics packages @@ -244,7 +244,7 @@ public: static autoPtr New ( const fvMesh&, - const word& phaseName=word::null + const word& phaseName = word::null ); @@ -254,22 +254,34 @@ public: // Member Functions + //- The dictionary name ("thermophysicalProperties") static const word dictName; - static word phasePropertyName - ( - const word& name, - const word& phaseName - ) + //- The phase property name as property.phase + //- \sa IOobject::groupName + static word phasePropertyName(const word& name, const word& phaseName) { return IOobject::groupName(name, phaseName); } + //- The phase property name as property.phase (using phaseName_) + //- \sa IOobject::groupName word phasePropertyName(const word& name) const { return IOobject::groupName(name, phaseName_); } + //- The phase property name scoped as scope:property.phase + //- \sa IOobject::groupName and \sa IOobject::scopedName + word phaseScopedName(const std::string& scope, const word& name) const + { + return IOobject::groupName + ( + IOobject::scopedName(scope, name), + phaseName_ + ); + } + static const basicThermo& lookupThermo(const fvPatchScalarField& pf); //- Print (filtered) table of thermo names, splits on \c " ,<>" diff --git a/src/thermophysicalModels/chemistryModel/functionObjects/BilgerMixtureFraction/BilgerMixtureFraction.C b/src/thermophysicalModels/chemistryModel/functionObjects/BilgerMixtureFraction/BilgerMixtureFraction.C index 2db2a51f07..3deae52445 100644 --- a/src/thermophysicalModels/chemistryModel/functionObjects/BilgerMixtureFraction/BilgerMixtureFraction.C +++ b/src/thermophysicalModels/chemistryModel/functionObjects/BilgerMixtureFraction/BilgerMixtureFraction.C @@ -58,9 +58,11 @@ namespace functionObjects void Foam::functionObjects::BilgerMixtureFraction::calcBilgerMixtureFraction() { - if (!mesh_.foundObject(resultName_, false)) + auto* resultPtr = mesh_.getObjectPtr(resultName_); + + if (!resultPtr) { - auto tCo = tmp::New + resultPtr = new volScalarField ( IOobject ( @@ -68,15 +70,15 @@ void Foam::functionObjects::BilgerMixtureFraction::calcBilgerMixtureFraction() mesh_.time().timeName(), mesh_, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::NO_WRITE, + IOobject::REGISTER ), mesh_, dimensionedScalar(dimless, Zero) ); - mesh_.objectRegistry::store(tCo.ptr()); + mesh_.objectRegistry::store(resultPtr); } - - auto& f_Bilger = mesh_.lookupObjectRef(resultName_); + auto& f_Bilger = *resultPtr; auto& Y = thermo_.Y();