52 4.0/
sqr(
mesh().time().deltaT() +
mesh().time().deltaT0());
56 "d2dt2("+vf.
name()+
')',
57 mesh().time().timeName(),
63 scalar deltaT =
mesh().time().deltaTValue();
64 scalar deltaT0 =
mesh().time().deltaT0Value();
66 scalar coefft = (deltaT + deltaT0)/(2*deltaT);
67 scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
68 scalar coefft0 = coefft + coefft00;
72 scalar halfRdeltaT2 = rDeltaT2.
value()/2.0;
88 - (coefft*VV0 + coefft00*V0V00)
91 + (coefft00*V0V00)*vf.
oldTime().oldTime().primitiveField()
96 - coefft0*vf.
oldTime().boundaryField()
97 + coefft00*vf.
oldTime().oldTime().boundaryField()
113 + coefft00*vf.
oldTime().oldTime()
130 4.0/
sqr(
mesh().time().deltaT() +
mesh().time().deltaT0());
134 "d2dt2("+
rho.name()+
','+vf.
name()+
')',
135 mesh().time().timeName(),
141 scalar deltaT =
mesh().time().deltaTValue();
142 scalar deltaT0 =
mesh().time().deltaT0Value();
144 scalar coefft = (deltaT + deltaT0)/(2*deltaT);
145 scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
149 scalar halfRdeltaT2 = 0.5*rDeltaT2.
value();
150 scalar quarterRdeltaT2 = 0.25*rDeltaT2.
value();
155 * (
rho.primitiveField() +
rho.oldTime().primitiveField())
162 rho.oldTime().primitiveField()
163 +
rho.oldTime().oldTime().primitiveField()
178 - (coefft*VV0rhoRho0 + coefft00*V0V00rho0Rho00)
181 + (coefft00*V0V00rho0Rho00)
182 *vf.
oldTime().oldTime().primitiveField()
187 *(
rho.boundaryField() +
rho.oldTime().boundaryField())
194 +
rho.oldTime().boundaryField()
198 rho.oldTime().boundaryField()
199 +
rho.oldTime().oldTime().boundaryField()
205 rho.oldTime().boundaryField()
206 +
rho.oldTime().oldTime().boundaryField()
207 )*vf.
oldTime().oldTime().boundaryField()
219 return tmp<GeometricField<Type, fvPatchField, volMesh>>
221 new GeometricField<Type, fvPatchField, volMesh>
227 - (coefft*rhoRho0 + coefft00*rho0Rho00)*vf.
oldTime()
228 + coefft00*rho0Rho00*vf.
oldTime().oldTime()
254 scalar deltaT =
mesh().time().deltaTValue();
255 scalar deltaT0 =
mesh().time().deltaT0Value();
257 scalar coefft = (deltaT + deltaT0)/(2*deltaT);
258 scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
259 scalar coefft0 = coefft + coefft00;
261 scalar rDeltaT2 = 4.0/
sqr(deltaT + deltaT0);
265 scalar halfRdeltaT2 = rDeltaT2/2.0;
270 fvm.
diag() = (coefft*halfRdeltaT2)*VV0;
272 fvm.
source() = halfRdeltaT2*
274 (coefft*VV0 + coefft00*V0V00)
277 - (coefft00*V0V00)*vf.
oldTime().oldTime().primitiveField()
282 fvm.
diag() = (coefft*rDeltaT2)*
mesh().V();
286 coefft0*vf.
oldTime().primitiveField()
287 - coefft00*vf.
oldTime().oldTime().primitiveField()
315 scalar deltaT =
mesh().time().deltaTValue();
316 scalar deltaT0 =
mesh().time().deltaT0Value();
318 scalar coefft = (deltaT + deltaT0)/(2*deltaT);
319 scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
321 scalar rDeltaT2 = 4.0/
sqr(deltaT + deltaT0);
325 scalar halfRdeltaT2 = 0.5*rDeltaT2;
330 fvm.
diag() =
rho.value()*(coefft*halfRdeltaT2)*VV0;
334 (coefft*VV0 + coefft00*V0V00)
337 - (coefft00*V0V00)*vf.
oldTime().oldTime().primitiveField()
342 fvm.
diag() = (coefft*rDeltaT2)*
mesh().V()*
rho.value();
346 (coefft + coefft00)*vf.
oldTime().primitiveField()
347 - coefft00*vf.
oldTime().oldTime().primitiveField()
375 scalar deltaT =
mesh().time().deltaTValue();
376 scalar deltaT0 =
mesh().time().deltaT0Value();
378 scalar coefft = (deltaT + deltaT0)/(2*deltaT);
379 scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
381 scalar rDeltaT2 = 4.0/
sqr(deltaT + deltaT0);
385 scalar quarterRdeltaT2 = 0.25*rDeltaT2;
390 *(
rho.primitiveField() +
rho.oldTime().primitiveField())
397 rho.oldTime().primitiveField()
398 +
rho.oldTime().oldTime().primitiveField()
402 fvm.
diag() = (coefft*quarterRdeltaT2)*VV0rhoRho0;
404 fvm.
source() = quarterRdeltaT2*
406 (coefft*VV0rhoRho0 + coefft00*V0V00rho0Rho00)
409 - (coefft00*V0V00rho0Rho00)
410 *vf.
oldTime().oldTime().primitiveField()
415 scalar halfRdeltaT2 = 0.5*rDeltaT2;
420 +
rho.oldTime().primitiveField()
425 rho.oldTime().primitiveField()
426 +
rho.oldTime().oldTime().primitiveField()
429 fvm.
diag() = (coefft*halfRdeltaT2)*
mesh().V()*rhoRho0;
433 (coefft*rhoRho0 + coefft00*rho0Rho00)
436 - (coefft00*rho0Rho00)
437 *vf.
oldTime().oldTime().primitiveField()
const scalarField & diag() const
const Type & value() const noexcept
Return const reference to value.
const GeometricField< Type, PatchField, GeoMesh > & oldTime() const
Return old time field.
const Internal::FieldType & primitiveField() const noexcept
Return a const-reference to the internal field values.
const word & name() const noexcept
Return the object name.
T & ref() const
Return non-const reference to the contents of a non-null managed pointer.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
const dimensionSet dimVol(dimVolume)
Older spelling for dimVolume.
Generic GeometricField class.
Ignore writing from objectRegistry::writeObject()
GeometricField< scalar, fvPatchField, volMesh > volScalarField
tmp< fvMatrix< Type > > fvmD2dt2(const GeometricField< Type, fvPatchField, volMesh > &)
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 noexcept
Return const reference to dimensions.
Calculate the divergence of the given field.
Field< Type > & source() noexcept
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
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.
Defines the attributes of an object for which implicit objectRegistry management is supported...
tmp< GeometricField< Type, fvPatchField, volMesh > > fvcD2dt2(const GeometricField< Type, fvPatchField, volMesh > &)
const Boundary & boundaryField() const noexcept
Return const-reference to the boundary field.
const dimensionSet & dimensions() const noexcept
Return dimensions.