43 tmp<GeometricField<Type, fvPatchField, volMesh>>
50 4.0/
sqr(
mesh().time().deltaT() +
mesh().time().deltaT0());
54 "d2dt2("+vf.
name()+
')',
55 mesh().time().timeName(),
61 scalar deltaT =
mesh().time().deltaTValue();
62 scalar deltaT0 =
mesh().time().deltaT0Value();
64 scalar coefft = (deltaT + deltaT0)/(2*deltaT);
65 scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
66 scalar coefft0 = coefft + coefft00;
70 scalar halfRdeltaT2 = rDeltaT2.
value()/2.0;
86 - (coefft*VV0 + coefft00*V0V00)
89 + (coefft00*V0V00)*vf.
oldTime().oldTime().primitiveField()
94 - coefft0*vf.
oldTime().boundaryField()
95 + coefft00*vf.
oldTime().oldTime().boundaryField()
111 + coefft00*vf.
oldTime().oldTime()
128 4.0/
sqr(
mesh().time().deltaT() +
mesh().time().deltaT0());
132 "d2dt2("+rho.
name()+
','+vf.
name()+
')',
133 mesh().time().timeName(),
139 scalar deltaT =
mesh().time().deltaTValue();
140 scalar deltaT0 =
mesh().time().deltaT0Value();
142 scalar coefft = (deltaT + deltaT0)/(2*deltaT);
143 scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
147 scalar halfRdeltaT2 = 0.5*rDeltaT2.
value();
148 scalar quarterRdeltaT2 = 0.25*rDeltaT2.
value();
176 - (coefft*VV0rhoRho0 + coefft00*V0V00rho0Rho00)
179 + (coefft00*V0V00rho0Rho00)
180 *vf.
oldTime().oldTime().primitiveField()
205 )*vf.
oldTime().oldTime().boundaryField()
225 - (coefft*rhoRho0 + coefft00*rho0Rho00)*vf.
oldTime()
226 + coefft00*rho0Rho00*vf.
oldTime().oldTime()
252 scalar deltaT =
mesh().time().deltaTValue();
253 scalar deltaT0 =
mesh().time().deltaT0Value();
255 scalar coefft = (deltaT + deltaT0)/(2*deltaT);
256 scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
257 scalar coefft0 = coefft + coefft00;
259 scalar rDeltaT2 = 4.0/
sqr(deltaT + deltaT0);
263 scalar halfRdeltaT2 = rDeltaT2/2.0;
268 fvm.
diag() = (coefft*halfRdeltaT2)*VV0;
270 fvm.
source() = halfRdeltaT2*
272 (coefft*VV0 + coefft00*V0V00)
275 - (coefft00*V0V00)*vf.
oldTime().oldTime().primitiveField()
280 fvm.
diag() = (coefft*rDeltaT2)*
mesh().V();
284 coefft0*vf.
oldTime().primitiveField()
285 - coefft00*vf.
oldTime().oldTime().primitiveField()
313 scalar deltaT =
mesh().time().deltaTValue();
314 scalar deltaT0 =
mesh().time().deltaT0Value();
316 scalar coefft = (deltaT + deltaT0)/(2*deltaT);
317 scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
319 scalar rDeltaT2 = 4.0/
sqr(deltaT + deltaT0);
323 scalar halfRdeltaT2 = 0.5*rDeltaT2;
328 fvm.
diag() = rho.
value()*(coefft*halfRdeltaT2)*VV0;
332 (coefft*VV0 + coefft00*V0V00)
335 - (coefft00*V0V00)*vf.
oldTime().oldTime().primitiveField()
344 (coefft + coefft00)*vf.
oldTime().primitiveField()
345 - coefft00*vf.
oldTime().oldTime().primitiveField()
373 scalar deltaT =
mesh().time().deltaTValue();
374 scalar deltaT0 =
mesh().time().deltaT0Value();
376 scalar coefft = (deltaT + deltaT0)/(2*deltaT);
377 scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
379 scalar rDeltaT2 = 4.0/
sqr(deltaT + deltaT0);
383 scalar quarterRdeltaT2 = 0.25*rDeltaT2;
400 fvm.
diag() = (coefft*quarterRdeltaT2)*VV0rhoRho0;
402 fvm.
source() = quarterRdeltaT2*
404 (coefft*VV0rhoRho0 + coefft00*V0V00rho0Rho00)
407 - (coefft00*V0V00rho0Rho00)
408 *vf.
oldTime().oldTime().primitiveField()
413 scalar halfRdeltaT2 = 0.5*rDeltaT2;
427 fvm.
diag() = (coefft*halfRdeltaT2)*
mesh().V()*rhoRho0;
431 (coefft*rhoRho0 + coefft00*rho0Rho00)
434 - (coefft00*rho0Rho00)
435 *vf.
oldTime().oldTime().primitiveField()
const dimensionSet & dimensions() const
Return const reference to dimensions.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
const dimensionSet dimVol(dimVolume)
const Internal::FieldType & primitiveField() const
Return a const-reference to the internal field.
const Type & value() const
Return const reference to value.
Generic GeometricField class.
tmp< fvMatrix< Type > > fvmD2dt2(const GeometricField< Type, fvPatchField, volMesh > &)
const GeometricField< Type, PatchField, GeoMesh > & oldTime() const
Return old time field.
const Boundary & boundaryField() const
Return const-reference to the boundary 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.
const dimensionSet & dimensions() const
Return dimensions.
Calculate the divergence of the given field.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
A special matrix type and solver, designed for finite volume solutions of scalar equations.
A class for managing temporary objects.
T & ref() const
Return non-const reference or generate a fatal error.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
tmp< GeometricField< Type, fvPatchField, volMesh > > fvcD2dt2(const GeometricField< Type, fvPatchField, volMesh > &)
const word & name() const
Return name.