96#ifndef Foam_CrankNicolsonDdtScheme_H
97#define Foam_CrankNicolsonDdtScheme_H
117class CrankNicolsonDdtScheme
126 template<
class GeoField>
131 label startTimeIndex_;
147 const typename GeoField::value_type& value,
152 label startTimeIndex()
const noexcept {
return startTimeIndex_; }
155 GeoField& operator()();
158 void operator=(
const GeoField& gf);
170 CrankNicolsonDdtScheme(
const CrankNicolsonDdtScheme&) =
delete;
173 void operator=(
const CrankNicolsonDdtScheme&) =
delete;
175 template<
class GeoField>
176 DDt0Field<GeoField>& ddt0_
183 template<
class GeoField>
184 bool evaluate(DDt0Field<GeoField>& ddt0);
188 template<
class GeoField>
189 scalar coef_(
const DDt0Field<GeoField>&)
const;
193 template<
class GeoField>
194 scalar coef0_(
const DDt0Field<GeoField>&)
const;
198 template<
class GeoField>
203 template<
class GeoField>
207 template<
class GeoField>
237 return ocCoeff_->value(
mesh().time().value());
Generic GeometricField class.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Dimension set for the base types, which can be used to implement rigorous dimension checking for alge...
Generic dimensioned Type class.
Mesh data needed to do the Finite Volume discretisation.
tmp< GeometricField< Type, fvPatchField, volMesh > > fvcDdt(const dimensioned< Type > &)
tmp< fluxFieldType > fvcDdtUfCorr(const GeometricField< Type, fvPatchField, volMesh > &U, const GeometricField< Type, fvsPatchField, surfaceMesh > &Uf)
scalar ocCoeff() const
Return the current off-centreing coefficient.
tmp< fvMatrix< Type > > fvmDdt(const GeometricField< Type, fvPatchField, volMesh > &)
ddtScheme< Type >::fluxFieldType fluxFieldType
tmp< fluxFieldType > fvcDdtPhiCorr(const GeometricField< Type, fvPatchField, volMesh > &U, const fluxFieldType &phi)
const fvMesh & mesh() const
Return mesh reference.
tmp< surfaceScalarField > meshPhi(const GeometricField< Type, fvPatchField, volMesh > &)
TypeName("CrankNicolson")
Runtime type information.
Abstract base class for ddt schemes.
const fvMesh & mesh() const
Return mesh reference.
GeometricField< typename flux< Type >::type, fvsPatchField, surfaceMesh > fluxFieldType
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
const volScalarField & psi
autoPtr< surfaceVectorField > Uf
Namespace for finite-volume.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.