45 scalar backwardFaDdtScheme<Type>::deltaT_()
const 47 return mesh().time().deltaT().value();
52 scalar backwardFaDdtScheme<Type>::deltaT0_()
const 54 return mesh().time().deltaT0().value();
59 template<
class GeoField>
60 scalar backwardFaDdtScheme<Type>::deltaT0_(
const GeoField& vf)
const 62 if (vf.oldTime().timeIndex() == vf.oldTime().oldTime().timeIndex())
87 mesh().time().timeName(),
93 scalar deltaT = deltaT_();
94 scalar deltaT0 = deltaT0_();
96 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
97 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
98 scalar coefft0 = coefft + coefft00;
112 tdtdt.
ref().primitiveFieldRef() = rDeltaT.
value()*dt.
value()*
114 coefft - (coefft0*
mesh().S0() - coefft00*
mesh().S00())/
mesh().S()
141 "ddt("+dt.
name()+
')',
142 mesh().time().timeName(),
148 scalar deltaT = deltaT_();
149 scalar deltaT0 = deltaT0_();
151 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
152 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
153 scalar coefft0 = coefft + coefft00;
161 -rDeltaT*(coefft0 - coefft00)*dt
167 tdtdt0.
ref().primitiveFieldRef() = (-rDeltaT.
value()*dt.value())*
169 (coefft0*
mesh().S0() - coefft00*
mesh().S00())/
mesh().S()
188 "ddt("+vf.
name()+
')',
189 mesh().time().timeName(),
195 scalar deltaT = deltaT_();
196 scalar deltaT0 = deltaT0_(vf);
198 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
199 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
200 scalar coefft0 = coefft + coefft00;
216 - coefft00*vf.
oldTime().oldTime()()
224 coefft0*vf.
oldTime().boundaryField()
225 - coefft00*vf.
oldTime().oldTime().boundaryField()
242 + coefft00*vf.
oldTime().oldTime()
261 "ddt0("+vf.
name()+
')',
262 mesh().time().timeName(),
268 scalar deltaT = deltaT_();
269 scalar deltaT0 = deltaT0_(vf);
271 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
272 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
273 scalar coefft0 = coefft + coefft00;
288 - coefft00*vf.
oldTime().oldTime()()
295 coefft0*vf.
oldTime().boundaryField()
296 - coefft00*vf.
oldTime().oldTime().boundaryField()
304 return tmp<GeometricField<Type, faPatchField, areaMesh>>
306 new GeometricField<Type, faPatchField, areaMesh>
312 + coefft00*vf.
oldTime().oldTime()
332 "ddt("+
rho.name()+
','+vf.
name()+
')',
333 mesh().time().timeName(),
339 scalar deltaT = deltaT_();
340 scalar deltaT0 = deltaT0_(vf);
342 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
343 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
344 scalar coefft0 = coefft + coefft00;
360 - coefft00*vf.
oldTime().oldTime()()
368 coefft0*vf.
oldTime().boundaryField()
369 - coefft00*vf.
oldTime().oldTime().boundaryField()
377 return tmp<GeometricField<Type, faPatchField, areaMesh>>
379 new GeometricField<Type, faPatchField, areaMesh>
386 + coefft00*vf.
oldTime().oldTime()
405 "ddt0("+
rho.name()+
','+vf.
name()+
')',
406 mesh().time().timeName(),
412 scalar deltaT = deltaT_();
413 scalar deltaT0 = deltaT0_(vf);
415 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
416 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
417 scalar coefft0 = coefft + coefft00;
432 - coefft00*vf.
oldTime().oldTime()()
439 coefft0*vf.
oldTime().boundaryField()
440 - coefft00*vf.
oldTime().oldTime().boundaryField()
448 return tmp<GeometricField<Type, faPatchField, areaMesh>>
450 new GeometricField<Type, faPatchField, areaMesh>
456 + coefft00*vf.
oldTime().oldTime()
476 "ddt("+
rho.name()+
','+vf.
name()+
')',
477 mesh().time().timeName(),
483 scalar deltaT = deltaT_();
484 scalar deltaT0 = deltaT0_(vf);
486 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
487 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
488 scalar coefft0 = coefft + coefft00;
503 coefft0*
rho.oldTime()()
505 - coefft00*
rho.oldTime().oldTime()()
513 coefft0*
rho.oldTime().boundaryField()
515 - coefft00*
rho.oldTime().oldTime().boundaryField()
516 *vf.
oldTime().oldTime().boundaryField()
524 return tmp<GeometricField<Type, faPatchField, areaMesh>>
526 new GeometricField<Type, faPatchField, areaMesh>
533 + coefft00*
rho.oldTime().oldTime()*vf.
oldTime().oldTime()
553 "ddt0("+
rho.name()+
','+vf.
name()+
')',
554 mesh().time().timeName(),
560 scalar deltaT = deltaT_();
561 scalar deltaT0 = deltaT0_(vf);
563 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
564 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
565 scalar coefft0 = coefft + coefft00;
579 coefft0*
rho.oldTime()()
581 - coefft00*
rho.oldTime().oldTime()()
588 coefft0*
rho.oldTime().boundaryField()
590 - coefft00*
rho.oldTime().oldTime().boundaryField()
591 *vf.
oldTime().oldTime().boundaryField()
599 return tmp<GeometricField<Type, faPatchField, areaMesh>>
601 new GeometricField<Type, faPatchField, areaMesh>
607 + coefft00*
rho.oldTime().oldTime()*vf.
oldTime().oldTime()
633 scalar rDeltaT = 1.0/deltaT_();
635 scalar deltaT = deltaT_();
636 scalar deltaT0 = deltaT0_(vf);
638 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
639 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
640 scalar coefft0 = coefft + coefft00;
642 fam.diag() = (coefft*rDeltaT)*
mesh().S();
646 fam.source() = rDeltaT*
649 - coefft00*vf.
oldTime().oldTime().primitiveField()
655 fam.source() = rDeltaT*
mesh().S()*
657 coefft0*vf.
oldTime().primitiveField()
658 - coefft00*vf.
oldTime().oldTime().primitiveField()
684 scalar rDeltaT = 1.0/deltaT_();
686 scalar deltaT = deltaT_();
687 scalar deltaT0 = deltaT0_(vf);
689 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
690 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
691 scalar coefft0 = coefft + coefft00;
693 fam.diag() = (coefft*rDeltaT*
rho.value())*
mesh().S();
697 fam.source() = rDeltaT*
rho.value()*
700 - coefft00*vf.
oldTime().oldTime().primitiveField()
706 fam.source() = rDeltaT*
mesh().S()*
rho.value()*
708 coefft0*vf.
oldTime().primitiveField()
709 - coefft00*vf.
oldTime().oldTime().primitiveField()
735 scalar rDeltaT = 1.0/deltaT_();
737 scalar deltaT = deltaT_();
738 scalar deltaT0 = deltaT0_(vf);
740 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
741 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
742 scalar coefft0 = coefft + coefft00;
744 fam.diag() = (coefft*rDeltaT)*
rho.primitiveField()*
mesh().S();
748 fam.source() = rDeltaT*
750 coefft0*
rho.oldTime().primitiveField()
752 - coefft00*
rho.oldTime().oldTime().primitiveField()
753 *vf.
oldTime().oldTime().primitiveField()*
mesh().S00()
758 fam.source() = rDeltaT*
mesh().S()*
760 coefft0*
rho.oldTime().primitiveField()
762 - coefft00*
rho.oldTime().oldTime().primitiveField()
763 *vf.
oldTime().oldTime().primitiveField()
const Type & value() const noexcept
Return const reference to value.
const GeometricField< Type, PatchField, GeoMesh > & oldTime() const
Return old time field.
tmp< GeometricField< Type, faPatchField, areaMesh > > facDdt0(const dimensioned< Type >)
tmp< faMatrix< Type > > famDdt(const GeometricField< Type, faPatchField, areaMesh > &)
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.
const Internal & internalField() const noexcept
Return a const-reference to the dimensioned internal field.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
Generic GeometricField class.
Generic dimensioned Type class.
Ignore writing from objectRegistry::writeObject()
const dimensionSet & dimensions() const noexcept
Return const reference to dimensions.
Calculate the divergence of the given field.
static const word & calculatedType() noexcept
The type name for calculated patch fields.
tmp< GeometricField< Type, faPatchField, areaMesh > > facDdt(const dimensioned< Type >)
const word & name() const noexcept
Return const reference to name.
A special matrix type and solver, designed for finite area solutions of scalar equations. Face addressing is used to make all matrix assembly and solution loops vectorise.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
A class for managing temporary objects.
Defines the attributes of an object for which implicit objectRegistry management is supported...
Calculate the matrix for the second temporal derivative.
const Boundary & boundaryField() const noexcept
Return const-reference to the boundary field.
const dimensionSet dimArea(sqr(dimLength))
const dimensionSet & dimensions() const noexcept
Return dimensions.
static constexpr const zero Zero
Global zero (0)