diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C index cf3fec1732da77250167e2052cd8cf5e54afeb44..dfec32bc4bcb7c8b8378a11a2f5b6a09a912d34f 100644 --- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C @@ -67,15 +67,7 @@ void Foam::ReactingCloud<ParcelType>::preEvolve() template<class ParcelType> void Foam::ReactingCloud<ParcelType>::evolveCloud() { - const volScalarField Cp = this->thermo().thermo().Cp(); - - autoPtr<interpolation<scalar> > CpInterp = interpolation<scalar>::New - ( - this->solution().interpolationSchemes(), - Cp - ); - - typename ParcelType::trackData td(*this, CpInterp()); + typename ParcelType::trackData td(*this); label preInjectionSize = this->size(); diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C index 9dc75d51389e29a2a54417761e8081d1feee0284..b383f38f10aa70bef55a537412c6e927837e31e2 100644 --- a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C @@ -40,15 +40,7 @@ void Foam::ReactingMultiphaseCloud<ParcelType>::preEvolve() template<class ParcelType> void Foam::ReactingMultiphaseCloud<ParcelType>::evolveCloud() { - const volScalarField Cp = this->thermo().thermo().Cp(); - - autoPtr<interpolation<scalar> > CpInterp = interpolation<scalar>::New - ( - this->solution().interpolationSchemes(), - Cp - ); - - typename ParcelType::trackData td(*this, CpInterp()); + typename ParcelType::trackData td(*this); label preInjectionSize = this->size(); diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C index 5296583c2b05c60eca7006deefdfa8955de9b811..17469774af3e3d758161e0f42a5ca82855c0edb0 100644 --- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C @@ -41,15 +41,7 @@ void Foam::ThermoCloud<ParcelType>::preEvolve() template<class ParcelType> void Foam::ThermoCloud<ParcelType>::evolveCloud() { - const volScalarField Cp = thermo_.thermo().Cp(); - - autoPtr<interpolation<scalar> > CpInterp = interpolation<scalar>::New - ( - this->solution().interpolationSchemes(), - Cp - ); - - typename ParcelType::trackData td(*this, CpInterp()); + typename ParcelType::trackData td(*this); label preInjectionSize = this->size(); diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H index b4b9ff213a2cdbca9b3979ae6c2733dcf9eb850c..97cfb935dc4f2ba90f65ce7aaf6b85326ce6ae53 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H +++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H @@ -127,7 +127,6 @@ public: inline trackData ( ReactingMultiphaseCloud<ParcelType>& cloud, - const interpolation<scalar>& CpInterp, typename ReactingParcel<ParcelType>::trackData::trackPart part = ReactingParcel<ParcelType>::trackData::tpLinearTrack ); diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H index 454ec13f0efe97a343d2985711929afa0e76b240..4d67ca43d468eb3816711c9302540e5c9196d935 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H +++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H @@ -54,11 +54,10 @@ template<class ParcelType> inline Foam::ReactingMultiphaseParcel<ParcelType>::trackData::trackData ( ReactingMultiphaseCloud<ParcelType>& cloud, - const interpolation<scalar>& CpInterp, typename ReactingParcel<ParcelType>::trackData::trackPart part ) : - ReactingParcel<ParcelType>::trackData(cloud, CpInterp, part), + ReactingParcel<ParcelType>::trackData(cloud, part), cloud_(cloud), constProps_(cloud.constProps()) {} diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H index 0d6cc119ab55ba909fc1fc01796030b8b3a14430..d4423bc8c14c83588a12ea7bb76cd8fc6da4f837 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H +++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H @@ -139,7 +139,6 @@ public: inline trackData ( ReactingCloud<ParcelType>& cloud, - const interpolation<scalar>& CpInterp, typename ThermoParcel<ParcelType>::trackData::trackPart part = ThermoParcel<ParcelType>::trackData::tpLinearTrack ); diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H index 285a1af0dadf773e70746b5bb913b7c5963a2bfc..4206975a70c37af4dc5ee79f1591e54e26d2d5b4 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H +++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H @@ -43,11 +43,10 @@ template<class ParcelType> inline Foam::ReactingParcel<ParcelType>::trackData::trackData ( ReactingCloud<ParcelType>& cloud, - const interpolation<scalar>& CpInterp, typename ThermoParcel<ParcelType>::trackData::trackPart part ) : - ThermoParcel<ParcelType>::trackData(cloud, CpInterp, part), + ThermoParcel<ParcelType>::trackData(cloud, part), cloud_(cloud), constProps_(cloud.constProps()), pInterp_ diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H index 38de73df1bc57835c5c42508dad1023410794971..2924dc3eb0a6ac3a0ccf7db1b54dfa6a5a72960b 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H +++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H @@ -141,6 +141,11 @@ public: //- Particle constant properties const constantProperties& constProps_; + //- Local copy of specific heat field + // Cp not stored on acrrier thermo, but returned as tmp<...> + const volScalarField Cp_; + + // Interpolators for continuous phase fields //- Temperature field interpolator @@ -158,7 +163,6 @@ public: inline trackData ( ThermoCloud<ParcelType>& cloud, - const interpolation<scalar>& CpInterp, typename KinematicParcel<ParcelType>::trackData::trackPart part = KinematicParcel<ParcelType>::trackData::tpLinearTrack ); diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H index a7b9b9d68b91225e693b94b9f852ad106df7665e..69ba4e610940504f2889e2ac492230a10268a98b 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H +++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H @@ -45,13 +45,24 @@ template<class ParcelType> inline Foam::ThermoParcel<ParcelType>::trackData::trackData ( ThermoCloud<ParcelType>& cloud, - const interpolation<scalar>& CpInterp, typename KinematicParcel<ParcelType>::trackData::trackPart part ) : KinematicParcel<ParcelType>::trackData(cloud, part), cloud_(cloud), constProps_(cloud.constProps()), + Cp_ + ( + IOobject + ( + "Cp", + cloud.db().time().timeName(), + cloud.db(), + IOobject::NO_READ, + IOobject::NO_WRITE + ), + cloud.thermo().thermo().Cp() + ), TInterp_ ( interpolation<scalar>::New @@ -60,7 +71,14 @@ inline Foam::ThermoParcel<ParcelType>::trackData::trackData cloud.T() ) ), - CpInterp_(CpInterp) + CpInterp_ + ( + interpolation<scalar>::New + ( + cloud.solution().interpolationSchemes(), + Cp_ + ) + ) {}