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);
146 const fluxFieldType&
phi,
147 const fluxFieldType& phiCorr
162 U.mesh().time().timeName(),
172 if (ddtPhiCoeff_ < 0)
175 ddtCouplingCoeff -=
min 190 forAll(
U.boundaryField(), patchi)
194 U.boundaryField()[patchi].fixesValue()
195 || isA<cyclicAMIFvPatch>(
mesh().boundary()[patchi])
205 <<
"ddtCouplingCoeff mean max min = " 212 return tddtCouplingCoeff;
220 const fluxFieldType&
phi,
221 const fluxFieldType& phiCorr
236 U.mesh().time().timeName(),
246 if (ddtPhiCoeff_ < 0)
249 ddtCouplingCoeff -=
min 255 *
mesh().time().deltaT()*
mesh().deltaCoeffs()/
mesh().magSf(),
271 forAll(
U.boundaryField(), patchi)
275 U.boundaryField()[patchi].fixesValue()
276 || isA<cyclicAMIFvPatch>(
mesh().boundary()[patchi])
286 <<
"ddtCouplingCoeff mean max min = " 293 return tddtCouplingCoeff;
301 const fluxFieldType&
phi,
302 const fluxFieldType& phiCorr,
306 if (experimentalDdtCorr)
309 fvcDdtPhiCoeffExperimental
318 return fvcDdtPhiCoeff(
U,
phi, phiCorr);
327 const fluxFieldType&
phi 330 if (experimentalDdtCorr)
333 fvcDdtPhiCoeffExperimental
357 const fluxFieldType&
phi,
361 if (experimentalDdtCorr)
363 return fvcDdtPhiCoeffExperimental
373 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.
const dimensionSet dimVol(dimVolume)
Older spelling for dimVolume.
GeometricBoundaryField< scalar, fvsPatchField, surfaceMesh > Boundary
Type of boundary fields.
const dimensionSet dimless
Dimensionless.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
#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.
const dimensionSet & dimensions() const noexcept
Return const reference to dimensions.
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.
static const GeometricField< Type, PatchField, GeoMesh > & null()
Return a null geometric field.
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.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
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.
const dimensionSet & dimensions() const noexcept
Return dimensions.
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.