diff --git a/applications/solvers/combustion/rhoReactingFoam/pEqn.H b/applications/solvers/combustion/rhoReactingFoam/pEqn.H index f11c9792245d8275afd46682ccd77207e5491ea1..ee03ece751859dfdc4854bba69bca2ce6e15e2d2 100644 --- a/applications/solvers/combustion/rhoReactingFoam/pEqn.H +++ b/applications/solvers/combustion/rhoReactingFoam/pEqn.H @@ -24,12 +24,17 @@ fvc::interpolate(thermo.psi())*phiv ); + fvScalarMatrix pDDtEqn + ( + fvc::ddt(rho) + fvc::div(phi) + + correction(fvm::ddt(psi, p) + fvm::div(phid, p)) + ); + for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) { fvScalarMatrix pEqn ( - fvc::ddt(rho) + fvc::div(phi) - + correction(fvm::ddt(psi, p) + fvm::div(phid, p)) + pDDtEqn - fvm::laplacian(rho*rAU, p) ); @@ -63,12 +68,17 @@ + fvc::ddtPhiCorr(rAU, rho, U, phi) ); + fvScalarMatrix pDDtEqn + ( + fvc::ddt(rho) + psi*correction(fvm::ddt(p)) + + fvc::div(phi) + ); + for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) { fvScalarMatrix pEqn ( - fvc::ddt(rho) + psi*correction(fvm::ddt(p)) - + fvc::div(phi) + pDDtEqn - fvm::laplacian(rho*rAU, p) ); diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H b/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H index 768876c316ba6dffe7e55751b69413353bb8d088..c6d1ad5e3c80087b5757b4333f71e74d752cd0ff 100644 --- a/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H +++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/pEqn.H @@ -19,12 +19,17 @@ surfaceScalarField buoyancyPhi(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf()); phi += buoyancyPhi; + fvScalarMatrix p_rghDDtEqn + ( + fvc::ddt(rho) + psi*correction(fvm::ddt(p_rgh)) + + fvc::div(phi) + ); + for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) { fvScalarMatrix p_rghEqn ( - fvc::ddt(rho) + psi*correction(fvm::ddt(p_rgh)) - + fvc::div(phi) + p_rghDDtEqn - fvm::laplacian(rhorAUf, p_rgh) ); diff --git a/applications/solvers/lagrangian/LTSReactingParcelFoam/pEqn.H b/applications/solvers/lagrangian/LTSReactingParcelFoam/pEqn.H index fccb98c8cb79855b4fad2089ed98111b2c40158c..9fb91f1d36fd3f429f7ead10cbff5c81714f1c3b 100644 --- a/applications/solvers/lagrangian/LTSReactingParcelFoam/pEqn.H +++ b/applications/solvers/lagrangian/LTSReactingParcelFoam/pEqn.H @@ -23,7 +23,7 @@ ); } - fvScalarMatrix DrhoDtEqn + fvScalarMatrix pDDtEqn ( fvc::ddt(rho) + psi*correction(fvm::ddt(p)) + fvc::div(phi) @@ -36,7 +36,7 @@ { fvScalarMatrix pEqn ( - DrhoDtEqn + pDDtEqn - fvm::laplacian(rho*rAU, p) ); diff --git a/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/pEqn.H b/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/pEqn.H index 4a28b0dd9427fd96151896593ac2480aa2ff2f84..e173fa858b30541e765c408f8512a9682fa6d05f 100644 --- a/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/pEqn.H +++ b/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/pEqn.H @@ -23,16 +23,21 @@ ); } + fvScalarMatrix pDDtEqn + ( + fvc::ddt(rho) + psi*correction(fvm::ddt(p)) + + fvc::div(phi) + == + parcels.Srho() + + massSource.SuTot() + ); + for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) { fvScalarMatrix pEqn ( - fvc::ddt(rho) + psi*correction(fvm::ddt(p)) - + fvc::div(phi) + pDDtEqn - fvm::laplacian(rho*rAU, p) - == - parcels.Srho() - + massSource.SuTot() ); if (corr == nCorr-1 && nonOrth == nNonOrthCorr) diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C index 3e49d29cd508c4a6a59b6bce2a3b76acedfeeccd..26cae658c62bf2e3cfe0ac93401ba94ac13ad352 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C @@ -218,10 +218,10 @@ void Foam::KinematicCloud<CloudType>::evolveCloud(TrackData& td) { // this->surfaceFilm().injectSteadyState(td); - this->injection().injectSteadyState(td, solution_.deltaT()); + this->injection().injectSteadyState(td, solution_.deltaTValue()); td.part() = TrackData::tpLinearTrack; - CloudType::move(td, solution_.deltaT()); + CloudType::move(td, solution_.deltaTValue()); } } @@ -353,7 +353,7 @@ Foam::KinematicCloud<CloudType>::KinematicCloud IOobject::AUTO_WRITE ), mesh_, - dimensionedScalar("zero", dimMass/dimTime, 0.0) + dimensionedScalar("zero", dimMass, 0.0) ) ) { @@ -504,7 +504,7 @@ void Foam::KinematicCloud<CloudType>::checkParcelProperties parcel.rho() = constProps_.rho0(); } - const scalar carrierDt = solution_.deltaT(); + const scalar carrierDt = solution_.deltaTValue(); parcel.stepFraction() = (carrierDt - lagrangianDt)/carrierDt; parcel.typeId() = constProps_.parcelTypeId(); } @@ -582,7 +582,7 @@ template<class TrackData> void Foam::KinematicCloud<CloudType>::motion(TrackData& td) { td.part() = TrackData::tpLinearTrack; - CloudType::move(td, solution_.deltaT()); + CloudType::move(td, solution_.deltaTValue()); updateCellOccupancy(); } diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H index 681712f6e482a4c75477bb1a1ee5e3f334c75bb6..5987192bfdd802d99378dfe585c228780a3da7f8 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H @@ -332,10 +332,10 @@ Foam::KinematicCloud<CloudType>::SU(volVectorField& U) const { if (solution_.semiImplicit("U")) { - return - UTrans()/(mesh_.V()*this->db().time().deltaT()) - - fvm::Sp(UCoeff()/mesh_.V(), U) - + UCoeff()/mesh_.V()*U; + const DimensionedField<scalar, volMesh> + Vdt(mesh_.V()*this->db().time().deltaT()); + + return UTrans()/Vdt - fvm::Sp(UCoeff()/Vdt, U) + UCoeff()/Vdt*U; } else { diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H index 1162df65062b2b399c0c2cf65166226626f3e530..cb1c8330b325c87391aaf26b77fd690bafb1ea6d 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H @@ -169,7 +169,10 @@ public: inline label nextIter(); //- Return the time step - inline scalar deltaT() const; + inline scalar deltaTValue() const; + + //- Return the time step + inline const dimensionedScalar deltaT() const; //- Return const access to the coupled flag inline const Switch coupled() const; diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolutionI.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolutionI.H index 37aad4dbdffa4a47a6dcacdd950d4936e8565511..a5da04150d9ac1e117fbb3a760fc02acf8d55e60 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolutionI.H +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolutionI.H @@ -95,12 +95,18 @@ inline Foam::label Foam::cloudSolution::nextIter() } -inline Foam::scalar Foam::cloudSolution::deltaT() const +inline Foam::scalar Foam::cloudSolution::deltaTValue() const { return deltaT_; } +inline const Foam::dimensionedScalar Foam::cloudSolution::deltaT() const +{ + return dimensionedScalar("cloudSolution::deltaT", dimTime, deltaT_); +} + + inline const Foam::Switch Foam::cloudSolution::coupled() const { return coupled_; diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloudI.H b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloudI.H index 79b66f87ff079e8636423e11dc290396e12bd893..52c33017f33e8dddb48da85f80100022e4ab03c3 100644 --- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloudI.H +++ b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloudI.H @@ -114,7 +114,7 @@ inline Foam::tmp<Foam::fvScalarMatrix> Foam::ReactingCloud<CloudType>::SYi volScalarField& sourceField = trhoTrans(); sourceField.internalField() = - rhoTrans_[i]/(this->db().time().deltaT()*this->mesh().V()); + rhoTrans_[i]/(this->db().time().deltaTValue()*this->mesh().V()); const dimensionedScalar YiSMALL("YiSMALL", dimless, SMALL); @@ -127,7 +127,7 @@ inline Foam::tmp<Foam::fvScalarMatrix> Foam::ReactingCloud<CloudType>::SYi tmp<fvScalarMatrix> tfvm(new fvScalarMatrix(Yi, dimMass/dimTime)); fvScalarMatrix& fvm = tfvm(); - fvm.source() = -rhoTrans_[i]/this->db().time().deltaT(); + fvm.source() = -rhoTrans_[i]/this->db().time().deltaTValue(); return tfvm; } @@ -167,7 +167,7 @@ Foam::ReactingCloud<CloudType>::Srho(const label i) const if (this->solution().coupled()) { scalarField& rhoi = tRhoi(); - rhoi = rhoTrans_[i]/(this->db().time().deltaT()*this->mesh().V()); + rhoi = rhoTrans_[i]/(this->db().time().deltaTValue()*this->mesh().V()); } return tRhoi; @@ -209,7 +209,7 @@ Foam::ReactingCloud<CloudType>::Srho() const sourceField += rhoTrans_[i]; } - sourceField /= this->db().time().deltaT()*this->mesh().V(); + sourceField /= this->db().time().deltaTValue()*this->mesh().V(); } return trhoTrans; @@ -249,7 +249,7 @@ Foam::ReactingCloud<CloudType>::Srho(volScalarField& rho) const { sourceField += rhoTrans_[i]; } - sourceField /= this->db().time().deltaT()*this->mesh().V(); + sourceField /= this->db().time().deltaTValue()*this->mesh().V(); return fvm::SuSp(trhoTrans()/rho, rho); } diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C index 2dbe453580df4c20539e644a554d937f7c7f15b1..e0365b54e21e4241a7b9127f7f00de2523382f42 100644 --- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C @@ -127,7 +127,7 @@ Foam::ThermoCloud<CloudType>::ThermoCloud IOobject::AUTO_WRITE ), this->mesh(), - dimensionedScalar("zero", dimEnergy/dimTime/dimTemperature, 0.0) + dimensionedScalar("zero", dimEnergy/dimTemperature, 0.0) ) ) diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H index c774133cb090b864b393eb02112786fa9239ceac..688938543138000c7902916e67d4f0943196401f 100644 --- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H +++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H @@ -138,11 +138,13 @@ Foam::ThermoCloud<CloudType>::Sh(volScalarField& hs) const if (this->solution().semiImplicit("hs")) { const volScalarField Cp(thermo_.thermo().Cp()); + const DimensionedField<scalar, volMesh> + Vdt(this->mesh().V()*this->db().time().deltaT()); return - hsTrans()/(this->mesh().V()*this->db().time().deltaT()) - - fvm::Sp(hsCoeff()/(Cp*this->mesh().V()), hs) - + hsCoeff()/(Cp*this->mesh().V())*hs; + hsTrans()/Vdt + - fvm::Sp(hsCoeff()/(Cp*Vdt), hs) + + hsCoeff()/(Cp*Vdt)*hs; } else { diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C index 0a3e05d200fa753ee8120aa0988f8cee3018b3d8..40e3efcb734164bbd55e566ac5689202453515d7 100644 --- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C +++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C @@ -202,7 +202,7 @@ const Foam::vector Foam::KinematicParcel<ParcelType>::calcVelocity const vector abp = (Feff.Sp()*Uc_ + (Feff.Su() + Su))/mass; const scalar bp = Feff.Sp()/mass; - Spu = Feff.Sp()*dt/td.cloud().solution().deltaT(); + Spu = dt*Feff.Sp(); IntegrationScheme<vector>::integrationResult Ures = td.cloud().UIntegrator().integrate(U, dt, abp, bp); diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C index 9df054c2d0a43551b2b6927d3ef353b44430bcd6..53a8e5545e703179369c18283446bbc500760a8b 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C +++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C @@ -339,7 +339,7 @@ Foam::scalar Foam::ThermoParcel<ParcelType>::calcHeatTransfer dhsTrans += dt*htc*As*(0.5*(T + Tnew) - Tc_); - Cuh = bp*dt/td.cloud().solution().deltaT(); + Cuh = dt*bp; return Tnew; } diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C index 5bf1c140c3e9147d2f299e77ccd780261870c0a5..fb077dba513c429b85014542912bc8f60bb1e2f9 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C @@ -520,7 +520,7 @@ void Foam::InjectionModel<CloudType>::inject(TrackData& td) } const scalar time = this->owner().db().time().value(); - const scalar carrierDt = this->owner().solution().deltaT(); + const scalar carrierDt = this->owner().solution().deltaTValue(); const polyMesh& mesh = this->owner().mesh(); // Prepare for next time step diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C index 3236774c18bc85d9ffac240d4d698f77ec9ae65f..70e440b0c3e894a3c3998d86ebbba3f0cfa0faee 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C @@ -290,7 +290,7 @@ void Foam::PatchInteractionModel<CloudType>::patchData } else { - Up = (Cf - Cf00)/this->owner().solution().deltaT(); + Up = (Cf - Cf00)/this->owner().time().deltaTValue(); } if (mag(dn) > SMALL) @@ -314,7 +314,7 @@ void Foam::PatchInteractionModel<CloudType>::patchData // angle/dt to give the correct angular velocity vector. omega *= Foam::asin(magOmega) - /(magOmega*this->owner().solution().deltaT()); + /(magOmega*this->owner().time().deltaTValue()); // Project position onto face and calculate this position // relative to the face centre.