30#include "surfaceInterpolate.H"
74 tdtdt.
ref().primitiveFieldRef() =
101 "ddt("+vf.
name()+
')',
127 tdtdt.ref().boundaryFieldRef().
128 template evaluateCoupled<coupledFvPatch>();
158 "ddt("+
rho.name()+
','+vf.
name()+
')',
184 tdtdt.
ref().boundaryFieldRef().
185 template evaluateCoupled<coupledFvPatch>();
191 return tmp<GeometricField<Type, fvPatchField, volMesh>>
193 new GeometricField<Type, fvPatchField, volMesh>
215 "ddt("+
rho.name()+
','+vf.
name()+
')',
236 -
rho.oldTime().boundaryField()
244 tdtdt.
ref().boundaryFieldRef().
245 template evaluateCoupled<coupledFvPatch>();
251 return tmp<GeometricField<Type, fvPatchField, volMesh>>
253 new GeometricField<Type, fvPatchField, volMesh>
300 alpha.boundaryField()
304 -
alpha.oldTime().boundaryField()
305 *
rho.oldTime().boundaryField()
313 tdtdt.
ref().boundaryFieldRef().
314 template evaluateCoupled<coupledFvPatch>();
320 return tmp<GeometricField<Type, fvPatchField, volMesh>>
322 new GeometricField<Type, fvPatchField, volMesh>
347 "ddt("+sf.
name()+
')',
381 scalar rDeltaT = 1.0/
mesh().time().deltaTValue();
383 fvm.diag() = rDeltaT*
mesh().Vsc();
387 fvm.source() = rDeltaT*vf.
oldTime().primitiveField()*
mesh().Vsc0();
391 fvm.source() = rDeltaT*vf.
oldTime().primitiveField()*
mesh().Vsc();
416 scalar rDeltaT = 1.0/
mesh().time().deltaTValue();
418 fvm.diag() = rDeltaT*
rho.value()*
mesh().Vsc();
422 fvm.source() = rDeltaT
427 fvm.source() = rDeltaT
453 scalar rDeltaT = 1.0/
mesh().time().deltaTValue();
455 fvm.diag() = rDeltaT*
rho.primitiveField()*
mesh().Vsc();
459 fvm.source() = rDeltaT
460 *
rho.oldTime().primitiveField()
465 fvm.source() = rDeltaT
466 *
rho.oldTime().primitiveField()
493 scalar rDeltaT = 1.0/
mesh().time().deltaTValue();
496 rDeltaT*
alpha.primitiveField()*
rho.primitiveField()*
mesh().Vsc();
500 fvm.source() = rDeltaT
501 *
alpha.oldTime().primitiveField()
502 *
rho.oldTime().primitiveField()
507 fvm.source() = rDeltaT
508 *
alpha.oldTime().primitiveField()
509 *
rho.oldTime().primitiveField()
539 "ddtCorr(" +
U.name() +
',' +
Uf.name() +
')',
543 this->fvcDdtPhiCoeff(
U.oldTime(), phiUf0, phiCorr)
571 "ddtCorr(" +
U.name() +
',' +
phi.name() +
')',
575 this->fvcDdtPhiCoeff(
U.oldTime(),
phi.oldTime(), phiCorr)
601 rho.oldTime()*
U.oldTime()
614 +
rho.name() +
',' +
U.name() +
',' +
Uf.name() +
')',
618 this->fvcDdtPhiCoeff(rhoU0, phiUf0, phiCorr,
rho.oldTime())
629 fluxFieldType phiUf0(
mesh().Sf() &
Uf.oldTime());
630 fluxFieldType phiCorr
642 +
rho.name() +
',' +
U.name() +
',' +
Uf.name() +
')',
659 <<
"dimensions of Uf are not correct"
673 const fluxFieldType&
phi
686 rho.oldTime()*
U.oldTime()
689 fluxFieldType phiCorr
701 +
rho.name() +
',' +
U.name() +
',' +
phi.name() +
')',
721 fluxFieldType phiCorr
726 return tmp<fluxFieldType>
733 +
rho.name() +
',' +
U.name() +
',' +
phi.name() +
')',
750 <<
"dimensions of phi are not correct"
const dimensionSet & dimensions() const noexcept
Return dimensions.
Generic GeometricField class.
static const this_type & null() noexcept
Return a null GeometricField (reference to a nullObject).
const GeometricField< Type, PatchField, GeoMesh > & oldTime() const
Return old time field.
const Boundary & boundaryField() const noexcept
Return const-reference to the boundary field.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const word & name() const noexcept
Return the object name.
Generic dimensioned Type class.
const dimensionSet & dimensions() const noexcept
Return const reference to dimensions.
const word & name() const noexcept
Return const reference to name.
const Type & value() const noexcept
Return const reference to value.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
static const word & calculatedType() noexcept
The type name for calculated patch fields.
tmp< GeometricField< Type, fvPatchField, volMesh > > fvcDdt(const dimensioned< Type > &)
tmp< fvMatrix< Type > > fvmDdt(const GeometricField< Type, fvPatchField, volMesh > &)
ddtScheme< Type >::fluxFieldType fluxFieldType
const fvMesh & mesh() const
Return mesh reference.
tmp< surfaceScalarField > meshPhi(const GeometricField< Type, fvPatchField, volMesh > &)
tmp< fluxFieldType > fvcDdtPhiCorr(const GeometricField< Type, fvPatchField, volMesh > &U, const fluxFieldType &phi)
tmp< fluxFieldType > fvcDdtUfCorr(const GeometricField< Type, fvPatchField, volMesh > &U, const GeometricField< Type, fvsPatchField, surfaceMesh > &Uf)
tmp< surfaceScalarField > fvcDdtPhiCoeff(const GeometricField< Type, fvPatchField, volMesh > &U, const fluxFieldType &phi, const fluxFieldType &phiCorr)
A class for managing temporary objects.
T & ref() const
Return non-const reference to the contents of a non-null managed pointer.
autoPtr< surfaceVectorField > Uf
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
A special matrix type and solver, designed for finite volume solutions of scalar equations.
Calculate the divergence of the given field.
Namespace for finite-volume.
static tmp< GeometricField< typename innerProduct< vector, Type >::type, fvsPatchField, surfaceMesh > > dotInterpolate(const surfaceVectorField &Sf, const GeometricField< Type, fvPatchField, volMesh > &tvf)
Interpolate field onto faces.
Namespace of functions to calculate implicit derivatives returning a matrix.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh > > &tf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
const dimensionSet dimArea(sqr(dimLength))
const dimensionSet dimVelocity
errorManip< error > abort(error &err)
static constexpr const zero Zero
Global zero (0).
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
const dimensionSet dimVol(dimVolume)
Older spelling for dimVolume.