44 tmp<volScalarField> CoEulerDdtScheme<Type>::CorDeltaT()
const 48 tmp<volScalarField> tcorDeltaT
55 cofrDeltaT.instance(),
60 zeroGradientFvPatchScalarField::typeName
71 corDeltaT[owner[faceI]] =
72 max(corDeltaT[owner[faceI]], cofrDeltaT[faceI]);
74 corDeltaT[neighbour[faceI]] =
75 max(corDeltaT[neighbour[faceI]], cofrDeltaT[faceI]);
78 volScalarField::GeometricBoundaryField& bcorDeltaT =
79 corDeltaT.boundaryField();
84 cofrDeltaT.boundaryField()[
patchi];
86 const fvPatch& p = pcofrDeltaT.patch();
87 const labelUList& faceCells = p.patch().faceCells();
89 forAll(pcofrDeltaT, patchFacei)
91 corDeltaT[faceCells[patchFacei]] =
max 93 corDeltaT[faceCells[patchFacei]],
94 pcofrDeltaT[patchFacei]
99 corDeltaT.correctBoundaryConditions();
108 tmp<surfaceScalarField> CoEulerDdtScheme<Type>::CofrDeltaT()
const 113 static_cast<const objectRegistry&
>(
mesh())
114 .lookupObject<surfaceScalarField>(phiName_);
116 if (phi.dimensions() == dimensionSet(0, 3, -1, 0, 0))
125 return max(Co/maxCo_, scalar(1))/deltaT;
127 else if (phi.dimensions() == dimensionSet(1, 0, -1, 0, 0))
130 static_cast<const objectRegistry&
>(
mesh())
131 .lookupObject<volScalarField>(rhoName_).
oldTime();
140 return max(Co/maxCo_, scalar(1))/deltaT;
144 FatalErrorIn(
"CoEulerDdtScheme<Type>::CofrDeltaT() const")
145 <<
"Incorrect dimensions of phi: " << phi.dimensions()
148 return tmp<surfaceScalarField>(NULL);
154 tmp<GeometricField<Type, fvPatchField, volMesh> >
164 "ddt("+dt.
name()+
')',
165 mesh().time().timeName(),
186 tdtdt().internalField() =
188 *(1.0 -
mesh().Vsc0()/
mesh().Vsc());
224 "ddt("+vf.
name()+
')',
225 mesh().time().timeName(),
276 "ddt("+rho.
name()+
','+vf.
name()+
')',
277 mesh().time().timeName(),
309 rDeltaT*rho*(vf - vf.
oldTime())
328 "ddt("+rho.
name()+
','+vf.
name()+
')',
329 mesh().time().timeName(),
385 mesh().time().timeName(),
614 "ddtCorr(" + U.
name() +
',' + Uf.
name() +
')',
615 mesh().time().timeName(),
651 "ddtCorr(" + U.
name() +
',' + phi.
name() +
')',
652 mesh().time().timeName(),
697 mesh().time().timeName(),
716 return fvcDdtUfCorr(U, Uf);
722 "CoEulerDdtScheme<Type>::fvcDdtPhiCorr" 723 ) <<
"dimensions of Uf are not correct" 726 return fluxFieldType::null();
766 mesh().time().timeName(),
769 this->fvcDdtPhiCoeff(rhoU0, phi.
oldTime(), phiCorr)
780 return fvcDdtPhiCorr(U, phi);
786 "CoEulerDdtScheme<Type>::fvcDdtPhiCorr" 787 ) <<
"dimensions of phi are not correct" 790 return fluxFieldType::null();
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const GeometricField< Type, fvPatchField, volMesh > &vf, const surfaceScalarField &faceFlux, Istream &schemeData)
UList< label > labelUList
This boundary condition is not designed to be evaluated; it is assmued that the value is assigned via...
dimensioned< scalar > mag(const dimensioned< Type > &)
GeometricBoundaryField & boundaryField()
Return reference to GeometricBoundaryField.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
const dimensionSet dimVol(dimVolume)
const dimensionSet dimArea(sqr(dimLength))
InternalField & internalField()
Return internal field.
const surfaceScalarField & deltaCoeffs() const
Return reference to cell-centre difference coefficients.
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.
const dimensionSet dimDensity
fvsPatchField< scalar > fvsPatchScalarField
const dimensionSet & dimensions() const
Return const reference to dimensions.
Generic dimensioned Type class.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
GeometricField< scalar, fvPatchField, volMesh > volScalarField
const word & name() const
Return const reference to name.
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
tmp< fvMatrix< Type > > fvmDdt(const GeometricField< Type, fvPatchField, volMesh > &)
tmp< surfaceScalarField > meshPhi(const GeometricField< Type, fvPatchField, volMesh > &)
const dimensionSet & dimensions() const
Return dimensions.
errorManip< error > abort(error &err)
const word & name() const
Return name.
#define FatalErrorIn(functionName)
Report an error message using Foam::FatalError.
tmp< fluxFieldType > fvcDdtUfCorr(const GeometricField< Type, fvPatchField, volMesh > &U, const GeometricField< Type, fvsPatchField, surfaceMesh > &Uf)
tmp< fluxFieldType > fvcDdtPhiCorr(const GeometricField< Type, fvPatchField, volMesh > &U, const fluxFieldType &phi)
Calculate the divergence of the given field.
Traits class for primitives.
const GeometricField< Type, PatchField, GeoMesh > & oldTime() const
Return old time field.
const dimensionSet dimVolume(pow3(dimLength))
tmp< GeometricField< Type, fvPatchField, volMesh > > fvcDdt(const dimensioned< Type > &)
const dimensionSet dimVelocity
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
A class for managing temporary objects.
conserve internalField()+
const Type & value() const
Return const reference to value.
A special matrix type and solver, designed for finite volume solutions of scalar equations.