diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C index cf3fec1732..dfec32bc4b 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::preEvolve() template void Foam::ReactingCloud::evolveCloud() { - const volScalarField Cp = this->thermo().thermo().Cp(); - - autoPtr > CpInterp = interpolation::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 9dc75d5138..b383f38f10 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::preEvolve() template void Foam::ReactingMultiphaseCloud::evolveCloud() { - const volScalarField Cp = this->thermo().thermo().Cp(); - - autoPtr > CpInterp = interpolation::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 5296583c2b..17469774af 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::preEvolve() template void Foam::ThermoCloud::evolveCloud() { - const volScalarField Cp = thermo_.thermo().Cp(); - - autoPtr > CpInterp = interpolation::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 b4b9ff213a..97cfb935dc 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& cloud, - const interpolation& CpInterp, typename ReactingParcel::trackData::trackPart part = ReactingParcel::trackData::tpLinearTrack ); diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H index 454ec13f0e..4d67ca43d4 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H +++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelI.H @@ -54,11 +54,10 @@ template inline Foam::ReactingMultiphaseParcel::trackData::trackData ( ReactingMultiphaseCloud& cloud, - const interpolation& CpInterp, typename ReactingParcel::trackData::trackPart part ) : - ReactingParcel::trackData(cloud, CpInterp, part), + ReactingParcel::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 0d6cc119ab..d4423bc8c1 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& cloud, - const interpolation& CpInterp, typename ThermoParcel::trackData::trackPart part = ThermoParcel::trackData::tpLinearTrack ); diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H index 285a1af0da..4206975a70 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H +++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelI.H @@ -43,11 +43,10 @@ template inline Foam::ReactingParcel::trackData::trackData ( ReactingCloud& cloud, - const interpolation& CpInterp, typename ThermoParcel::trackData::trackPart part ) : - ThermoParcel::trackData(cloud, CpInterp, part), + ThermoParcel::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 38de73df1b..2924dc3eb0 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& cloud, - const interpolation& CpInterp, typename KinematicParcel::trackData::trackPart part = KinematicParcel::trackData::tpLinearTrack ); diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H index a7b9b9d68b..69ba4e6109 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H +++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H @@ -45,13 +45,24 @@ template inline Foam::ThermoParcel::trackData::trackData ( ThermoCloud& cloud, - const interpolation& CpInterp, typename KinematicParcel::trackData::trackPart part ) : KinematicParcel::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::New @@ -60,7 +71,14 @@ inline Foam::ThermoParcel::trackData::trackData cloud.T() ) ), - CpInterp_(CpInterp) + CpInterp_ + ( + interpolation::New + ( + cloud.solution().interpolationSchemes(), + Cp_ + ) + ) {}