45scalar backwardFaDdtScheme<Type>::deltaT_()
const
47 return mesh().time().deltaT().value();
52scalar backwardFaDdtScheme<Type>::deltaT0_()
const
54 return mesh().time().deltaT0().value();
59template<
class GeoField>
60scalar backwardFaDdtScheme<Type>::deltaT0_(
const GeoField& vf)
const
62 if (vf.oldTime().timeIndex() == vf.oldTime().oldTime().timeIndex())
76tmp<GeometricField<Type, faPatchField, areaMesh>>
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()+
')',
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()+
')',
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()+
')',
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()
312 + coefft00*vf.
oldTime().oldTime()
332 "ddt("+
rho.name()+
','+vf.
name()+
')',
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()
386 + coefft00*vf.
oldTime().oldTime()
405 "ddt0("+
rho.name()+
','+vf.
name()+
')',
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()
456 + coefft00*vf.
oldTime().oldTime()
476 "ddt("+
rho.name()+
','+vf.
name()+
')',
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()
533 + coefft00*
rho.oldTime().oldTime()*vf.
oldTime().oldTime()
553 "ddt0("+
rho.name()+
','+vf.
name()+
')',
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()
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 dimensionSet & dimensions() const
Return dimensions.
Generic GeometricField class.
const GeometricField< Type, PatchField, GeoMesh > & oldTime() const
Return old time field.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
const Internal & internalField() const
Return a const-reference to the dimensioned internal field.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const word & name() const noexcept
Return the object name.
Author Zeljko Tukovic, FMENA Hrvoje Jasak, Wikki Ltd.
Generic dimensioned Type class.
const dimensionSet & dimensions() const
Return const reference to dimensions.
const Type & value() const
Return const reference to value.
const word & name() const
Return const reference to name.
A special matrix type and solver, designed for finite area solutions of scalar equations....
tmp< GeometricField< Type, faPatchField, areaMesh > > facDdt(const dimensioned< Type >)
tmp< faMatrix< Type > > famDdt(const GeometricField< Type, faPatchField, areaMesh > &)
tmp< GeometricField< Type, faPatchField, areaMesh > > facDdt0(const dimensioned< Type >)
A class for managing temporary objects.
Calculate the divergence of the given field.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
const dimensionSet dimArea(sqr(dimLength))
static constexpr const zero Zero
Global zero (0)
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh > > &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
Calculate the matrix for the second temporal derivative.