39 template<
class RhoType>
44 "tmp<surfaceScalarField> interpolate(const RhoType& rho)" 58 template<
class RhoType,
class SpType,
class SuType>
80 scalar maxUnboundedness
113 mesh.
time().
deltaT()*mesh.surfaceInterpolation::deltaCoeffs()
116 CoLambda == 1.0/
max(CoCoeff*Cof, scalar(1));
121 mesh.
time().
deltaT()*mesh.surfaceInterpolation::deltaCoeffs()
124 CoLambda == 1.0/
max(CoCoeff*Cof, scalar(1));
167 for (
label i=0; i<maxIter; i++)
171 allLambda = allCoLambda;
190 psiConvectionDiffusion +
fvc::div(lambda*phiCorr),
194 scalar maxPsiM1 =
gMax(psi.internalField()) - 1.0;
195 scalar minPsi =
gMin(psi.internalField());
197 scalar unboundedness =
max(
max(maxPsiM1, 0.0), -
min(minPsi, 0.0));
199 if (unboundedness < maxUnboundedness)
205 Info<<
"MULES: max(" << psi.name() <<
" - 1) = " << maxPsiM1
206 <<
" min(" << psi.name() <<
") = " << minPsi <<
endl;
208 phiBD = psiConvectionDiffusion.
flux();
235 phiPsi = psiConvectionDiffusion.
flux() + lambda*phiCorr;
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const GeometricField< Type, fvPatchField, volMesh > &vf, const surfaceScalarField &faceFlux, Istream &schemeData)
tmp< fvMatrix< Type > > ddt(const GeometricField< Type, fvPatchField, volMesh > &vf)
Mesh data needed to do the Finite Volume discretisation.
Calculate the matrix for implicit and explicit sources.
dimensioned< scalar > mag(const dimensioned< Type > &)
Central-differencing interpolation scheme class.
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > flux() const
Return the face-flux field from the matrix.
IMULES: Multidimensional universal limiter for implicit solution.
Specialization of GeometricField which holds slices of given complete fields in a form that they act ...
const dimensionSet dimArea(sqr(dimLength))
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
tmp< GeometricField< Type, fvPatchField, volMesh > > Sp(const volScalarField &sp, const GeometricField< Type, fvPatchField, volMesh > &vf)
static word timeName(const scalar, const int precision=precision_)
Return time name of given scalar time.
const dictionary & solverDict(const word &name) const
Return the solver controls dictionary for the given field.
Calulate the matrix for the first temporal derivative.
A special matrix type and solver, designed for finite volume solutions of scalar equations. Face addressing is used to make all matrix assembly and solution loops vectorise.
tmp< surfaceScalarField > interpolate(const RhoType &rho)
const Mesh & mesh() const
Return mesh.
const dimensionSet dimDensity
A list of keyword definitions, which are a keyword followed by any number of values (e...
tmp< fvMatrix< Type > > Sp(const DimensionedField< scalar, volMesh > &, const GeometricField< Type, fvPatchField, volMesh > &)
label readLabel(Istream &is)
tmp< GeometricField< Type, fvPatchField, volMesh > > Su(const GeometricField< Type, fvPatchField, volMesh > &su, const GeometricField< Type, fvPatchField, volMesh > &vf)
const Time & time() const
Return the top-level database.
Ostream & endl(Ostream &os)
Add newline and flush stream.
const surfaceScalarField & magSf() const
Return cell face area magnitudes.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
scalar deltaTValue() const
Return time step value.
Basic second-order convection using face-gradients and Gauss' theorem.
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
bool readScalar(const char *buf, doubleScalar &s)
Read whole of buf as a scalar. Return true if succesful.
dimensionedScalar lambda(laminarTransport.lookup("lambda"))
const volScalarField & psi
const dimensionSet & dimensions() const
Return dimensions.
const word & name() const
Return name.
Type gMin(const FieldField< Field, Type > &f)
solverPerformance solve(fvMatrix< Type > &, const dictionary &)
Solve returning the solution statistics given convergence tolerance.
Calculate the divergence of the given field.
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.
Upwind differencing scheme class.
const dimensionSet dimless(0, 0, 0, 0, 0, 0, 0)
tmp< GeometricField< Type, fvPatchField, volMesh > > div(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
dimensionedScalar deltaT() const
Return time step.
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
#define notImplemented(functionName)
Issue a FatalErrorIn for a function not currently implemented.
void limiter(scalarField &allLambda, const RdeltaTType &rDeltaT, const RhoType &rho, const volScalarField &psi, const surfaceScalarField &phiBD, const surfaceScalarField &phiCorr, const SpType &Sp, const SuType &Su, const scalar psiMax, const scalar psiMin)
const dimensionSet dimVelocity
void implicitSolve(const RhoType &rho, volScalarField &gamma, const surfaceScalarField &phi, surfaceScalarField &phiCorr, const SpType &Sp, const SuType &Su, const scalar psiMax, const scalar psiMin)
Type gMax(const FieldField< Field, Type > &f)
A class for managing temporary objects.