31 #include "surfaceInterpolate.H" 63 <<
"Ddt scheme not specified" <<
endl <<
endl 64 <<
"Valid ddt schemes are :" <<
endl 65 << IstreamConstructorTablePtr_->sortedToc()
69 const word schemeName(schemeData);
71 auto* ctorPtr = IstreamConstructorTable(schemeName);
80 *IstreamConstructorTablePtr_
84 return ctorPtr(
mesh, schemeData);
131 const fluxFieldType&
phi,
132 const fluxFieldType& phiCorr
147 U.mesh().time().timeName(),
157 if (ddtPhiCoeff_ < 0)
160 ddtCouplingCoeff -=
min 175 forAll(
U.boundaryField(), patchi)
179 U.boundaryField()[patchi].fixesValue()
180 || isA<cyclicAMIFvPatch>(
mesh().boundary()[patchi])
190 <<
"ddtCouplingCoeff mean max min = " 197 return tddtCouplingCoeff;
205 const fluxFieldType&
phi,
206 const fluxFieldType& phiCorr
221 U.mesh().time().timeName(),
231 if (ddtPhiCoeff_ < 0)
234 ddtCouplingCoeff -=
min 240 *
mesh().time().deltaT()*
mesh().deltaCoeffs()/
mesh().magSf(),
256 forAll(
U.boundaryField(), patchi)
260 U.boundaryField()[patchi].fixesValue()
261 || isA<cyclicAMIFvPatch>(
mesh().boundary()[patchi])
271 <<
"ddtCouplingCoeff mean max min = " 278 return tddtCouplingCoeff;
286 const fluxFieldType&
phi,
287 const fluxFieldType& phiCorr,
291 if (experimentalDdtCorr)
294 fvcDdtPhiCoeffExperimental
303 return fvcDdtPhiCoeff(
U,
phi, phiCorr);
312 const fluxFieldType&
phi 315 if (experimentalDdtCorr)
318 fvcDdtPhiCoeffExperimental
342 const fluxFieldType&
phi,
346 if (experimentalDdtCorr)
348 return fvcDdtPhiCoeffExperimental
358 return fvcDdtPhiCoeff
virtual tmp< GeometricField< Type, fvPatchField, volMesh > > fvcDdt(const dimensioned< Type > &)=0
const Internal::FieldType & primitiveField() const noexcept
Return a const-reference to the internal field values.
errorManipArg< error, int > exit(error &err, const int errNo=1)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
Type gMin(const FieldField< Field, Type > &f)
virtual tmp< fvMatrix< Type > > fvmDdt(const GeometricField< Type, fvPatchField, volMesh > &)=0
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
static tmp< GeometricField< typename innerProduct< vector, Type >::type, fvsPatchField, surfaceMesh > > dotInterpolate(const surfaceVectorField &Sf, const GeometricField< Type, fvPatchField, volMesh > &tvf)
Interpolate field onto faces.
Ostream & endl(Ostream &os)
Add newline and flush stream.
GeometricBoundaryField< scalar, fvsPatchField, surfaceMesh > Boundary
Type of boundary fields.
const dimensionSet dimless
Dimensionless.
#define forAll(list, i)
Loop across all elements in list.
tmp< surfaceScalarField > fvcDdtPhiCoeffExperimental(const GeometricField< Type, fvPatchField, volMesh > &U, const fluxFieldType &phi, const fluxFieldType &phiCorr)
A class for handling words, derived from Foam::string.
void setOriented(bool on=true) noexcept
Set the oriented flag: on/off.
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
int debug
Static debugging option.
Type gMax(const FieldField< Field, Type > &f)
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const GeometricField< Type, fvPatchField, volMesh > &tvf, const surfaceScalarField &faceFlux, Istream &schemeData)
Interpolate field onto faces using scheme given by Istream.
tmp< surfaceScalarField > fvcDdtPhiCoeff(const GeometricField< Type, fvPatchField, volMesh > &U, const fluxFieldType &phi, const fluxFieldType &phiCorr)
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
static tmp< ddtScheme< Type > > New(const fvMesh &mesh, Istream &schemeData)
Return a pointer to a new ddtScheme created on freestore.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
Type gAverage(const FieldField< Field, Type > &f)
Mesh data needed to do the Finite Volume discretisation.
Boundary & boundaryFieldRef(const bool updateAccessTime=true)
Return a reference to the boundary field.
Internal & ref(const bool updateAccessTime=true)
Same as internalFieldRef()
A class for managing temporary objects.
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
Defines the attributes of an object for which implicit objectRegistry management is supported...
#define FatalIOErrorInLookup(ios, lookupTag, lookupName, lookupTable)
Report an error message using Foam::FatalIOError.
bool eof() const noexcept
True if end of input seen.
IOerror FatalIOError
Error stream (stdout output on all processes), with additional 'FOAM FATAL IO ERROR' header text and ...
#define InfoInFunction
Report an information message using Foam::Info.