51 4.0/
sqr(mesh().time().deltaT() + mesh().time().deltaT0())
54 const word d2dt2name(
"d2dt2("+vf.
name()+
')');
56 const scalar deltaT = mesh().time().deltaTValue();
57 const scalar deltaT0 = mesh().time().deltaT0Value();
59 const scalar coefft = (deltaT + deltaT0)/(2*deltaT);
60 const scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
61 const scalar coefft0 = coefft + coefft00;
77 - (coefft*VV0 + coefft00*V0V00)
80 + (coefft00*V0V00)*vf.
oldTime().oldTime()()
85 - coefft0*vf.
oldTime().boundaryField()
86 + coefft00*vf.
oldTime().oldTime().boundaryField()
99 + coefft00*vf.
oldTime().oldTime()
116 4.0/
sqr(mesh().time().deltaT() + mesh().time().deltaT0())
119 const word d2dt2name(
"d2dt2("+
rho.name()+
','+vf.
name()+
')');
121 const scalar deltaT = mesh().time().deltaTValue();
122 const scalar deltaT0 = mesh().time().deltaT0Value();
124 const scalar coefft = (deltaT + deltaT0)/(2*deltaT);
125 const scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
134 (mesh().V() + mesh().V0())*(
rho() +
rho.oldTime()())
139 (mesh().V0() + mesh().V00())
142 +
rho.oldTime().oldTime()()
151 coefft*VV0rhoRho0*vf()
153 - (coefft*VV0rhoRho0 + coefft00*V0V00rho0Rho00)
156 + (coefft00*V0V00rho0Rho00)
159 halfRdeltaT2.
value()*
162 *(
rho.boundaryField() +
rho.oldTime().boundaryField())
169 +
rho.oldTime().boundaryField()
173 rho.oldTime().boundaryField()
174 +
rho.oldTime().oldTime().boundaryField()
180 rho.oldTime().boundaryField()
181 +
rho.oldTime().oldTime().boundaryField()
182 )*vf.
oldTime().oldTime().boundaryField()
199 - (coefft*rhoRho0 + coefft00*rho0Rho00)*vf.
oldTime()
200 + coefft00*rho0Rho00*vf.
oldTime().oldTime()
225 const scalar deltaT = mesh().time().deltaTValue();
226 const scalar deltaT0 = mesh().time().deltaT0Value();
228 const scalar coefft = (deltaT + deltaT0)/(2*deltaT);
229 const scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
230 const scalar coefft0 = coefft + coefft00;
232 const scalar rDeltaT2 = 4.0/
sqr(deltaT + deltaT0);
236 const scalar halfRdeltaT2 = rDeltaT2/2.0;
239 const scalarField V0V00(mesh().V0() + mesh().V00());
241 fvm.
diag() = (coefft*halfRdeltaT2)*VV0;
243 fvm.
source() = halfRdeltaT2*
245 (coefft*VV0 + coefft00*V0V00)
248 - (coefft00*V0V00)*vf.
oldTime().oldTime().primitiveField()
253 fvm.
diag() = (coefft*rDeltaT2)*mesh().V();
255 fvm.
source() = rDeltaT2*mesh().V()*
257 coefft0*vf.
oldTime().primitiveField()
258 - coefft00*vf.
oldTime().oldTime().primitiveField()
286 const scalar deltaT = mesh().time().deltaTValue();
287 const scalar deltaT0 = mesh().time().deltaT0Value();
289 const scalar coefft = (deltaT + deltaT0)/(2*deltaT);
290 const scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
292 const scalar rDeltaT2 = 4.0/
sqr(deltaT + deltaT0);
296 const scalar halfRdeltaT2 = 0.5*rDeltaT2;
299 const scalarField V0V00(mesh().V0() + mesh().V00());
301 fvm.
diag() =
rho.value()*(coefft*halfRdeltaT2)*VV0;
305 (coefft*VV0 + coefft00*V0V00)
308 - (coefft00*V0V00)*vf.
oldTime().oldTime().primitiveField()
313 fvm.
diag() = (coefft*rDeltaT2)*mesh().V()*
rho.value();
315 fvm.
source() = rDeltaT2*mesh().V()*
rho.value()*
317 (coefft + coefft00)*vf.
oldTime().primitiveField()
318 - coefft00*vf.
oldTime().oldTime().primitiveField()
346 const scalar deltaT = mesh().time().deltaTValue();
347 const scalar deltaT0 = mesh().time().deltaT0Value();
349 const scalar coefft = (deltaT + deltaT0)/(2*deltaT);
350 const scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
352 const scalar rDeltaT2 = 4.0/
sqr(deltaT + deltaT0);
356 const scalar quarterRdeltaT2 = 0.25*rDeltaT2;
360 (mesh().V() + mesh().V0())
361 *(
rho.primitiveField() +
rho.oldTime().primitiveField())
366 (mesh().V0() + mesh().V00())
368 rho.oldTime().primitiveField()
369 +
rho.oldTime().oldTime().primitiveField()
373 fvm.
diag() = (coefft*quarterRdeltaT2)*VV0rhoRho0;
375 fvm.
source() = quarterRdeltaT2*
377 (coefft*VV0rhoRho0 + coefft00*V0V00rho0Rho00)
380 - (coefft00*V0V00rho0Rho00)
381 *vf.
oldTime().oldTime().primitiveField()
386 const scalar halfRdeltaT2 = 0.5*rDeltaT2;
391 +
rho.oldTime().primitiveField()
396 rho.oldTime().primitiveField()
397 +
rho.oldTime().oldTime().primitiveField()
400 fvm.
diag() = (coefft*halfRdeltaT2)*mesh().V()*rhoRho0;
402 fvm.
source() = halfRdeltaT2*mesh().V()*
404 (coefft*rhoRho0 + coefft00*rho0Rho00)
407 - (coefft00*rho0Rho00)
408 *vf.
oldTime().oldTime().primitiveField()
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const dimensionSet & dimensions() const
Return dimensions.
Generic GeometricField class.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
static tmp< GeometricField< Type, PatchField, GeoMesh > > New(const word &name, const Internal &, const PtrList< PatchField< Type >> &, const HashPtrTable< Source > &=HashPtrTable< Source >())
Return a temporary field constructed from name,.
const word & name() const
Return name.
const FieldType & oldTime() const
Return the old time field.
const Type & value() const
Return const reference to value.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
tmp< fvMatrix< Type > > fvmD2dt2(const VolField< Type > &)
tmp< VolField< Type > > fvcD2dt2(const VolField< Type > &)
A class for managing temporary objects.
T & ref() const
Return non-const reference or generate a fatal error.
A class for handling words, derived from string.
A special matrix type and solver, designed for finite volume solutions of scalar equations.
Calculate the divergence of the given field.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
const dimensionSet dimTime
const dimensionSet dimVolume