From ba45fb2cbaa4f9a1ab95a60f7d9b0586d2bc7935 Mon Sep 17 00:00:00 2001 From: Andrew Heather <> Date: Mon, 22 Nov 2021 17:23:38 +0000 Subject: [PATCH] ENH: Function1 - updated time-based Function1 usage --- .../primitives/functions/Function1/Sine/Sine.C | 2 +- .../primitives/functions/Function1/ramp/ramp.C | 4 ++-- .../InjectionModel/ConeInjection/ConeInjection.C | 8 +++++++- .../InjectionModel/ConeInjection/ConeInjection.H | 10 +++++----- .../ConeNozzleInjection/ConeNozzleInjection.C | 10 +++++++++- .../ConeNozzleInjection/ConeNozzleInjection.H | 8 ++++---- .../InflationInjection/InflationInjection.C | 6 +++++- .../InjectionModel/InjectionModel/InjectionModel.C | 1 + .../PatchFlowRateInjection/PatchFlowRateInjection.C | 5 ++++- .../PatchFlowRateInjection/PatchFlowRateInjection.H | 2 +- .../InjectionModel/PatchInjection/PatchInjection.C | 5 ++++- .../InjectionModel/PatchInjection/PatchInjection.H | 2 +- .../restraints/linearSpringDamper/linearSpringDamper.C | 2 +- .../radiation/radiationModels/fvDOM/fvDOM/fvDOM.C | 2 +- .../radiation/radiationModels/solarLoad/solarLoad.C | 2 +- .../submodels/solarCalculator/solarCalculator.C | 6 ++++-- 16 files changed, 51 insertions(+), 24 deletions(-) diff --git a/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C b/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C index 8dcd13f5e5..87a1cf9c26 100644 --- a/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C +++ b/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C @@ -77,7 +77,7 @@ Foam::Function1Types::Sine::Sine(const Sine& rhs) template void Foam::Function1Types::Sine::userTimeToTime(const Time& t) { - t0_ = t.timeToUserTime(t0_); + t0_ = t.userTimeToTime(t0_); } diff --git a/src/OpenFOAM/primitives/functions/Function1/ramp/ramp.C b/src/OpenFOAM/primitives/functions/Function1/ramp/ramp.C index 23f14ce817..660e4deaf9 100644 --- a/src/OpenFOAM/primitives/functions/Function1/ramp/ramp.C +++ b/src/OpenFOAM/primitives/functions/Function1/ramp/ramp.C @@ -61,8 +61,8 @@ void Foam::Function1Types::ramp::writeEntries(Ostream& os) const void Foam::Function1Types::ramp::userTimeToTime(const Time& t) { - start_ = t.timeToUserTime(start_); - duration_ = t.timeToUserTime(duration_); + start_ = t.userTimeToTime(start_); + duration_ = t.userTimeToTime(duration_); } diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C index a06fe5803d..59cc22beba 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C @@ -106,7 +106,13 @@ Foam::ConeInjection::ConeInjection tanVec1_.setSize(positionAxis_.size()); tanVec2_.setSize(positionAxis_.size()); - duration_ = owner.db().time().userTimeToTime(duration_); + // Convert from user time to reduce the number of time conversion calls + const Time& time = owner.db().time(); + duration_ = time.userTimeToTime(duration_); + flowRateProfile_->userTimeToTime(time); + Umag_->userTimeToTime(time); + thetaInner_->userTimeToTime(time); + thetaOuter_->userTimeToTime(time); // Normalise direction vector and determine direction vectors // tangential to injector axis direction diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H index 69e3663e7b..15a4486aad 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H @@ -91,19 +91,19 @@ class ConeInjection const label parcelsPerInjector_; //- Flow rate profile relative to SOI [] - const autoPtr> flowRateProfile_; + autoPtr> flowRateProfile_; //- Parcel velocity magnitude relative to SOI [m/s] - const autoPtr> Umag_; + autoPtr> Umag_; //- Inner half-cone angle relative to SOI [deg] - const autoPtr> thetaInner_; + autoPtr> thetaInner_; //- Outer half-cone angle relative to SOI [deg] - const autoPtr> thetaOuter_; + autoPtr> thetaOuter_; //- Parcel size distribution model - const autoPtr sizeDistribution_; + autoPtr sizeDistribution_; //- Number of parcels per injector already injected mutable label nInjected_; diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C index 5ffc3b4bea..53c93ebee0 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C @@ -83,6 +83,7 @@ void Foam::ConeNozzleInjection::setInjectionMethod() &this->owner().mesh() ) ); + positionVsTime_->userTimeToTime(this->owner().time()); break; } default: @@ -117,6 +118,7 @@ void Foam::ConeNozzleInjection::setFlowType() &this->owner().mesh() ) ); + Pinj_->userTimeToTime(this->owner().time()); break; } case flowType::ftFlowRateAndDischarge: @@ -130,6 +132,7 @@ void Foam::ConeNozzleInjection::setFlowType() &this->owner().mesh() ) ); + Cd_->userTimeToTime(this->owner().time()); break; } default: @@ -221,7 +224,12 @@ Foam::ConeNozzleInjection::ConeNozzleInjection << exit(FatalError); } - duration_ = owner.db().time().userTimeToTime(duration_); + // Convert from user time to reduce the number of time conversion calls + const Time& time = owner.db().time(); + duration_ = time.userTimeToTime(duration_); + flowRateProfile_->userTimeToTime(time); + thetaInner_->userTimeToTime(time); + thetaOuter_->userTimeToTime(time); setInjectionMethod(); diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H index 90ea53a103..0329d1e03a 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H @@ -155,16 +155,16 @@ private: const label parcelsPerSecond_; //- Flow rate profile relative to SOI [] - const autoPtr> flowRateProfile_; + autoPtr> flowRateProfile_; //- Inner half-cone angle relative to SOI [deg] - const autoPtr> thetaInner_; + autoPtr> thetaInner_; //- Outer half-cone angle relative to SOI [deg] - const autoPtr> thetaOuter_; + autoPtr> thetaOuter_; //- Parcel size PDF model - const autoPtr sizeDistribution_; + autoPtr sizeDistribution_; // Tangential vectors to the direction vector diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C index 74741ef8b3..227aefcf5f 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C @@ -82,7 +82,11 @@ Foam::InflationInjection::InflationInjection ) ) { - duration_ = owner.db().time().userTimeToTime(duration_); + // Convert from user time to reduce the number of time conversion calls + const Time& time = owner.db().time(); + duration_ = time.userTimeToTime(duration_); + flowRateProfile_->userTimeToTime(time); + growthRate_->userTimeToTime(time); if (selfSeed_) { diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C index 6731f675f4..37f9750551 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C @@ -348,6 +348,7 @@ Foam::InjectionModel::InjectionModel &owner.mesh() ) ); + massFlowRate_->userTimeToTime(owner.db().time()); massTotal_ = massFlowRate_->value(owner.db().time().value()); this->coeffDict().readIfPresent("SOI", SOI_); } diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.C index e5a9663ecc..ae5c3c88f8 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.C @@ -68,7 +68,10 @@ Foam::PatchFlowRateInjection::PatchFlowRateInjection ) ) { - duration_ = owner.db().time().userTimeToTime(duration_); + // Convert from user time to reduce the number of time conversion calls + const Time& time = owner.db().time(); + duration_ = time.userTimeToTime(duration_); + concentration_->userTimeToTime(time); patchInjectionBase::updateMesh(owner.mesh()); diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.H index b33be4fe93..f29c02e5ce 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.H +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.H @@ -84,7 +84,7 @@ class PatchFlowRateInjection scalar duration_; //- Concentration profile of particle volume to carrier volume [-] - const autoPtr> concentration_; + autoPtr> concentration_; //- Parcels to introduce per unit volume flow rate m3 [n/m3] const scalar parcelConcentration_; diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.C index 1552c8f3bd..934f1343cf 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.C @@ -65,7 +65,10 @@ Foam::PatchInjection::PatchInjection ) ) { - duration_ = owner.db().time().userTimeToTime(duration_); + // Convert from user time to reduce the number of time conversion calls + const Time& time = owner.db().time(); + duration_ = time.userTimeToTime(duration_); + flowRateProfile_->userTimeToTime(time); patchInjectionBase::updateMesh(owner.mesh()); diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.H index e33a68d8af..25c1a007cf 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.H +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.H @@ -84,7 +84,7 @@ class PatchInjection const vector U0_; //- Flow rate profile relative to SOI [] - const autoPtr> flowRateProfile_; + autoPtr> flowRateProfile_; //- Parcel size distribution model const autoPtr sizeDistribution_; diff --git a/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion/restraints/linearSpringDamper/linearSpringDamper.C b/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion/restraints/linearSpringDamper/linearSpringDamper.C index 0a6d987614..a600881a86 100644 --- a/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion/restraints/linearSpringDamper/linearSpringDamper.C +++ b/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion/restraints/linearSpringDamper/linearSpringDamper.C @@ -92,7 +92,7 @@ void Foam::sixDoFRigidBodyMotionRestraints::linearSpringDamper::restrain ); } - scalar t = motion.time().value(); + scalar t = motion.time().timeOutputValue(); restraintPosition = motion.transform(refAttachmentPt_); diff --git a/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.C b/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.C index 78b13ef350..1f452986b6 100644 --- a/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.C +++ b/src/thermophysicalModels/radiation/radiationModels/fvDOM/fvDOM/fvDOM.C @@ -131,7 +131,7 @@ void Foam::radiation::fvDOM::initialise() ); spectralDistribution_ = - spectralDistributions_->value(mesh_.time().value()); + spectralDistributions_->value(mesh_.time().timeOutputValue()); spectralDistribution_ = spectralDistribution_/sum(spectralDistribution_); diff --git a/src/thermophysicalModels/radiation/radiationModels/solarLoad/solarLoad.C b/src/thermophysicalModels/radiation/radiationModels/solarLoad/solarLoad.C index 347b0df313..9aab8a5795 100644 --- a/src/thermophysicalModels/radiation/radiationModels/solarLoad/solarLoad.C +++ b/src/thermophysicalModels/radiation/radiationModels/solarLoad/solarLoad.C @@ -378,7 +378,7 @@ void Foam::radiation::solarLoad::initialise(const dictionary& coeffs) ); spectralDistribution_ = - spectralDistributions_->value(mesh_.time().value()); + spectralDistributions_->value(mesh_.time().timeOutputValue()); nBands_ = spectralDistribution_.size(); diff --git a/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.C b/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.C index ca2f49accb..e14c88bb81 100644 --- a/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.C +++ b/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.C @@ -221,8 +221,10 @@ void Foam::solarCalculator::initialise() ) ); - directSolarRad_ = directSolarRads_->value(mesh_.time().value()); - diffuseSolarRad_ = diffuseSolarRads_->value(mesh_.time().value()); + directSolarRad_ = + directSolarRads_->value(mesh_.time().timeOutputValue()); + diffuseSolarRad_ = + diffuseSolarRads_->value(mesh_.time().timeOutputValue()); break; } case mSunLoadFairWeatherConditions: