ENH: Function1 - updated time-based Function1 usage

This commit is contained in:
Andrew Heather 2021-11-22 17:23:38 +00:00 committed by Mark Olesen
parent f6ee1811e7
commit ba45fb2cba
16 changed files with 51 additions and 24 deletions

View File

@ -77,7 +77,7 @@ Foam::Function1Types::Sine<Type>::Sine(const Sine<Type>& rhs)
template<class Type>
void Foam::Function1Types::Sine<Type>::userTimeToTime(const Time& t)
{
t0_ = t.timeToUserTime(t0_);
t0_ = t.userTimeToTime(t0_);
}

View File

@ -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_);
}

View File

@ -106,7 +106,13 @@ Foam::ConeInjection<CloudType>::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

View File

@ -91,19 +91,19 @@ class ConeInjection
const label parcelsPerInjector_;
//- Flow rate profile relative to SOI []
const autoPtr<Function1<scalar>> flowRateProfile_;
autoPtr<Function1<scalar>> flowRateProfile_;
//- Parcel velocity magnitude relative to SOI [m/s]
const autoPtr<Function1<scalar>> Umag_;
autoPtr<Function1<scalar>> Umag_;
//- Inner half-cone angle relative to SOI [deg]
const autoPtr<Function1<scalar>> thetaInner_;
autoPtr<Function1<scalar>> thetaInner_;
//- Outer half-cone angle relative to SOI [deg]
const autoPtr<Function1<scalar>> thetaOuter_;
autoPtr<Function1<scalar>> thetaOuter_;
//- Parcel size distribution model
const autoPtr<distributionModel> sizeDistribution_;
autoPtr<distributionModel> sizeDistribution_;
//- Number of parcels per injector already injected
mutable label nInjected_;

View File

@ -83,6 +83,7 @@ void Foam::ConeNozzleInjection<CloudType>::setInjectionMethod()
&this->owner().mesh()
)
);
positionVsTime_->userTimeToTime(this->owner().time());
break;
}
default:
@ -117,6 +118,7 @@ void Foam::ConeNozzleInjection<CloudType>::setFlowType()
&this->owner().mesh()
)
);
Pinj_->userTimeToTime(this->owner().time());
break;
}
case flowType::ftFlowRateAndDischarge:
@ -130,6 +132,7 @@ void Foam::ConeNozzleInjection<CloudType>::setFlowType()
&this->owner().mesh()
)
);
Cd_->userTimeToTime(this->owner().time());
break;
}
default:
@ -221,7 +224,12 @@ Foam::ConeNozzleInjection<CloudType>::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();

View File

@ -155,16 +155,16 @@ private:
const label parcelsPerSecond_;
//- Flow rate profile relative to SOI []
const autoPtr<Function1<scalar>> flowRateProfile_;
autoPtr<Function1<scalar>> flowRateProfile_;
//- Inner half-cone angle relative to SOI [deg]
const autoPtr<Function1<scalar>> thetaInner_;
autoPtr<Function1<scalar>> thetaInner_;
//- Outer half-cone angle relative to SOI [deg]
const autoPtr<Function1<scalar>> thetaOuter_;
autoPtr<Function1<scalar>> thetaOuter_;
//- Parcel size PDF model
const autoPtr<distributionModel> sizeDistribution_;
autoPtr<distributionModel> sizeDistribution_;
// Tangential vectors to the direction vector

View File

@ -82,7 +82,11 @@ Foam::InflationInjection<CloudType>::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_)
{

View File

@ -348,6 +348,7 @@ Foam::InjectionModel<CloudType>::InjectionModel
&owner.mesh()
)
);
massFlowRate_->userTimeToTime(owner.db().time());
massTotal_ = massFlowRate_->value(owner.db().time().value());
this->coeffDict().readIfPresent("SOI", SOI_);
}

View File

@ -68,7 +68,10 @@ Foam::PatchFlowRateInjection<CloudType>::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());

View File

@ -84,7 +84,7 @@ class PatchFlowRateInjection
scalar duration_;
//- Concentration profile of particle volume to carrier volume [-]
const autoPtr<Function1<scalar>> concentration_;
autoPtr<Function1<scalar>> concentration_;
//- Parcels to introduce per unit volume flow rate m3 [n/m3]
const scalar parcelConcentration_;

View File

@ -65,7 +65,10 @@ Foam::PatchInjection<CloudType>::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());

View File

@ -84,7 +84,7 @@ class PatchInjection
const vector U0_;
//- Flow rate profile relative to SOI []
const autoPtr<Function1<scalar>> flowRateProfile_;
autoPtr<Function1<scalar>> flowRateProfile_;
//- Parcel size distribution model
const autoPtr<distributionModel> sizeDistribution_;

View File

@ -92,7 +92,7 @@ void Foam::sixDoFRigidBodyMotionRestraints::linearSpringDamper::restrain
);
}
scalar t = motion.time().value();
scalar t = motion.time().timeOutputValue();
restraintPosition = motion.transform(refAttachmentPt_);

View File

@ -131,7 +131,7 @@ void Foam::radiation::fvDOM::initialise()
);
spectralDistribution_ =
spectralDistributions_->value(mesh_.time().value());
spectralDistributions_->value(mesh_.time().timeOutputValue());
spectralDistribution_ =
spectralDistribution_/sum(spectralDistribution_);

View File

@ -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();

View File

@ -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: