43 void SLTSDdtScheme<Type>::relaxedDiag
57 diag[owner[faceI]] += phi[faceI];
58 rD[neighbour[faceI]] += phi[faceI];
62 diag[neighbour[faceI]] -= phi[faceI];
63 rD[owner[faceI]] -= phi[faceI];
70 const labelUList& faceCells = pphi.patch().patch().faceCells();
74 if (pphi[patchFacei] > 0.0)
76 diag[faceCells[patchFacei]] += pphi[patchFacei];
80 rD[faceCells[patchFacei]] -= pphi[patchFacei];
85 rD += (1.0/alpha_ - 2.0)*
diag;
90 tmp<volScalarField> SLTSDdtScheme<Type>::SLrDeltaT()
const 93 mesh().objectRegistry::template
94 lookupObject<surfaceScalarField>(phiName_);
110 zeroGradientFvPatchScalarField::typeName
116 relaxedDiag(rDeltaT, phi);
118 if (phi.dimensions() == dimensionSet(0, 3, -1, 0, 0))
120 rDeltaT.internalField() =
max 122 rDeltaT.internalField()/
mesh().V(),
123 scalar(1)/deltaT.value()
126 else if (phi.dimensions() == dimensionSet(1, 0, -1, 0, 0))
129 mesh().objectRegistry::template lookupObject<volScalarField>
134 rDeltaT.internalField() =
max 136 rDeltaT.internalField()/(rho.internalField()*
mesh().V()),
137 scalar(1)/deltaT.value()
143 <<
"Incorrect dimensions of phi: " << phi.dimensions()
147 rDeltaT.correctBoundaryConditions();
154 tmp<GeometricField<Type, fvPatchField, volMesh> >
164 "ddt("+dt.
name()+
')',
165 mesh().time().timeName(),
186 tdtdt().internalField() =
223 "ddt("+vf.
name()+
')',
224 mesh().time().timeName(),
275 "ddt("+rho.
name()+
','+vf.
name()+
')',
276 mesh().time().timeName(),
308 rDeltaT*rho*(vf - vf.
oldTime())
327 "ddt("+rho.
name()+
','+vf.
name()+
')',
328 mesh().time().timeName(),
384 mesh().time().timeName(),
459 Info<<
"SLTSDdtScheme<Type>::fvmDdt: max/min rDeltaT " 616 "ddtCorr(" + U.
name() +
',' + Uf.
name() +
')',
617 mesh().time().timeName(),
653 "ddtCorr(" + U.
name() +
',' + phi.
name() +
')',
654 mesh().time().timeName(),
699 mesh().time().timeName(),
718 return fvcDdtUfCorr(U, Uf);
724 "SLTSDdtScheme<Type>::fvcDdtPhiCorr" 725 ) <<
"dimensions of Uf are not correct" 728 return fluxFieldType::null();
768 mesh().time().timeName(),
771 this->fvcDdtPhiCoeff(rhoU0, phi.
oldTime(), phiCorr)
782 return fvcDdtPhiCorr(U, phi);
788 "SLTSDdtScheme<Type>::fvcDdtPhiCorr" 789 ) <<
"dimensions of phi are not correct" 792 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...
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))
tmp< fvMatrix< Type > > fvmDdt(const GeometricField< Type, fvPatchField, volMesh > &)
InternalField & internalField()
Return internal field.
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.
void diag(pointPatchField< vector > &, const pointPatchField< tensor > &)
tmp< fluxFieldType > fvcDdtUfCorr(const GeometricField< Type, fvPatchField, volMesh > &U, const GeometricField< Type, fvsPatchField, surfaceMesh > &Uf)
const dimensionSet dimDensity
tmp< fluxFieldType > fvcDdtPhiCorr(const GeometricField< Type, fvPatchField, volMesh > &U, const fluxFieldType &phi)
fvsPatchField< scalar > fvsPatchScalarField
const dimensionSet & dimensions() const
Return const reference to dimensions.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
tmp< surfaceScalarField > meshPhi(const GeometricField< Type, fvPatchField, volMesh > &)
Generic dimensioned Type class.
Ostream & endl(Ostream &os)
Add newline and flush stream.
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
const dimensionSet & dimensions() const
Return dimensions.
errorManip< error > abort(error &err)
const word & name() const
Return name.
Type gMin(const FieldField< Field, Type > &f)
tmp< GeometricField< Type, fvPatchField, volMesh > > fvcDdt(const dimensioned< Type > &)
#define FatalErrorIn(functionName)
Report an error message using Foam::FatalError.
tmp< volScalarField > trDeltaT
Traits class for primitives.
const GeometricField< Type, PatchField, GeoMesh > & oldTime() const
Return old time field.
const dimensionSet dimVolume(pow3(dimLength))
const dimensionSet dimless(0, 0, 0, 0, 0, 0, 0)
const dimensionSet dimVelocity
Type gMax(const FieldField< Field, Type > &f)
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.