32 template<
class RdeltaTType,
class RhoType,
class SpType>
35 const RdeltaTType& rDeltaT,
47 psi.primitiveFieldRef() =
49 (
rho.primitiveField()*rDeltaT -
Sp.primitiveField())
52 )/(
rho.primitiveField()*rDeltaT -
Sp.primitiveField());
54 psi.correctBoundaryConditions();
58 template<
class RhoType>
70 template<
class RhoType,
class SpType>
81 if (fv::localEulerDdt::enabled(
mesh))
94 template<
class RhoType,
class PsiMaxType,
class PsiMinType>
102 const PsiMaxType& psiMax,
103 const PsiMinType& psiMin
135 const PsiMaxType& psiMax,
136 const PsiMinType& psiMin
141 if (fv::localEulerDdt::enabled(
mesh))
193 const RdeltaTType& rDeltaT,
199 const PsiMaxType& psiMax,
200 const PsiMinType& psiMin
224 *(
rho.primitiveField()*rDeltaT -
Sp.primitiveField())
225 *
psi.primitiveField()
263 const PsiMaxType& psiMax,
264 const PsiMinType& psiMin
269 if (fv::localEulerDdt::enabled(
mesh))
CMULES: Multidimensional universal limiter for explicit corrected implicit solution.
Generic GeometricField class.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
scalar deltaTValue() const
Return time step value.
const word & name() const
Return const reference to name.
Mesh data needed to do the Finite Volume discretisation.
const Time & time() const
Return the top-level database.
tmp< DimensionedField< scalar, volMesh > > Vsc() const
Return sub-cycle cell volumes.
A class representing the concept of a field of 0 used to avoid unnecessary manipulations for objects ...
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
Surface integrate surfaceField creating a volField. Surface sum a surfaceField creating a volField.
const volScalarField & psi
dimensionedScalar lambda(viscosity->lookup("lambda"))
void correct(const RdeltaTType &rDeltaT, const RhoType &rho, volScalarField &psi, const surfaceScalarField &phiCorr, const SpType &Sp)
void limitCorr(const control &controls, const RdeltaTType &rDeltaT, const RhoType &rho, const volScalarField &psi, const surfaceScalarField &phiBD, surfaceScalarField &phiCorr, const SpType &Sp, const PsiMaxType &psiMax, const PsiMinType &psiMin)
void limiter(const control &controls, surfaceScalarField &lambda, const RdeltaTType &rDeltaT, const RhoType &rho, const volScalarField &psi, const scalarField &SuCorr, const surfaceScalarField &phi, const surfaceScalarField &phiCorr, const SpType &Sp, const PsiMaxType &psiMax, const PsiMinType &psiMin)
void surfaceIntegrate(Field< Type > &ivf, const SurfaceField< Type > &ssf)
tmp< VolField< Type > > Sp(const volScalarField &sp, const VolField< Type > &vf)
Ostream & endl(Ostream &os)
Add newline and flush stream.
const dimensionSet dimless