44scalar backwardFaDdtScheme<Type>::deltaT_()
const
46 return mesh().time().deltaTValue();
51scalar backwardFaDdtScheme<Type>::deltaT0_()
const
53 return mesh().time().deltaT0Value();
58template<
class GeoField>
59scalar backwardFaDdtScheme<Type>::deltaT0_(
const GeoField& vf)
const
61 if (vf.oldTime().timeIndex() == vf.oldTime().oldTime().timeIndex())
67 return mesh().time().deltaT0Value();
85 mesh().thisDb().newIOobject
88 { IOobject::REGISTER }
92 scalar deltaT = deltaT_();
93 scalar deltaT0 = deltaT0_();
95 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
96 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
97 scalar coefft0 = coefft + coefft00;
111 tdtdt.
ref().primitiveFieldRef() = rDeltaT.
value()*dt.
value()*
113 coefft - (coefft0*
mesh().S0() - coefft00*
mesh().S00())/
mesh().S()
140 mesh().thisDb().newIOobject
142 "ddt("+dt.
name()+
')',
143 { IOobject::REGISTER }
147 scalar deltaT = deltaT_();
148 scalar deltaT0 = deltaT0_();
150 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
151 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
152 scalar coefft0 = coefft + coefft00;
160 -rDeltaT*(coefft0 - coefft00)*dt
166 tdtdt0.ref().primitiveFieldRef() = (-rDeltaT.
value()*dt.
value())*
168 (coefft0*
mesh().S0() - coefft00*
mesh().S00())/
mesh().S()
187 mesh().thisDb().newIOobject
189 "ddt("+vf.
name()+
')',
190 { IOobject::REGISTER }
194 scalar deltaT = deltaT_();
195 scalar deltaT0 = deltaT0_(vf);
197 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
198 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
199 scalar coefft0 = coefft + coefft00;
215 - coefft00*vf.
oldTime().oldTime()()
223 coefft0*vf.
oldTime().boundaryField()
224 - coefft00*vf.
oldTime().oldTime().boundaryField()
241 + coefft00*vf.
oldTime().oldTime()
260 mesh().thisDb().newIOobject
262 "ddt0("+vf.
name()+
')',
263 { IOobject::REGISTER }
267 scalar deltaT = deltaT_();
268 scalar deltaT0 = deltaT0_(vf);
270 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
271 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
272 scalar coefft0 = coefft + coefft00;
287 - coefft00*vf.
oldTime().oldTime()()
294 coefft0*vf.
oldTime().boundaryField()
295 - coefft00*vf.
oldTime().oldTime().boundaryField()
303 return tmp<GeometricField<Type, faPatchField, areaMesh>>
305 new GeometricField<Type, faPatchField, areaMesh>
311 + coefft00*vf.
oldTime().oldTime()
331 mesh().thisDb().newIOobject
333 "ddt("+
rho.name()+
','+vf.
name()+
')',
334 { IOobject::REGISTER }
338 scalar deltaT = deltaT_();
339 scalar deltaT0 = deltaT0_(vf);
341 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
342 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
343 scalar coefft0 = coefft + coefft00;
359 - coefft00*vf.
oldTime().oldTime()()
367 coefft0*vf.
oldTime().boundaryField()
368 - coefft00*vf.
oldTime().oldTime().boundaryField()
376 return tmp<GeometricField<Type, faPatchField, areaMesh>>
378 new GeometricField<Type, faPatchField, areaMesh>
385 + coefft00*vf.
oldTime().oldTime()
404 mesh().thisDb().newIOobject
406 "ddt0("+
rho.name()+
','+vf.
name()+
')',
407 { IOobject::REGISTER }
411 scalar deltaT = deltaT_();
412 scalar deltaT0 = deltaT0_(vf);
414 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
415 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
416 scalar coefft0 = coefft + coefft00;
431 - coefft00*vf.
oldTime().oldTime()()
438 coefft0*vf.
oldTime().boundaryField()
439 - coefft00*vf.
oldTime().oldTime().boundaryField()
447 return tmp<GeometricField<Type, faPatchField, areaMesh>>
449 new GeometricField<Type, faPatchField, areaMesh>
455 + coefft00*vf.
oldTime().oldTime()
475 mesh().thisDb().newIOobject
477 "ddt("+
rho.name()+
','+vf.
name()+
')',
478 { IOobject::REGISTER }
482 scalar deltaT = deltaT_();
483 scalar deltaT0 = deltaT0_(vf);
485 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
486 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
487 scalar coefft0 = coefft + coefft00;
502 coefft0*
rho.oldTime()()
504 - coefft00*
rho.oldTime().oldTime()()
512 coefft0*
rho.oldTime().boundaryField()
514 - coefft00*
rho.oldTime().oldTime().boundaryField()
515 *vf.
oldTime().oldTime().boundaryField()
523 return tmp<GeometricField<Type, faPatchField, areaMesh>>
525 new GeometricField<Type, faPatchField, areaMesh>
532 + coefft00*
rho.oldTime().oldTime()*vf.
oldTime().oldTime()
552 mesh().thisDb().newIOobject
554 "ddt0("+
rho.name()+
','+vf.
name()+
')',
555 { IOobject::REGISTER }
559 scalar deltaT = deltaT_();
560 scalar deltaT0 = deltaT0_(vf);
562 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
563 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
564 scalar coefft0 = coefft + coefft00;
578 coefft0*
rho.oldTime()()
580 - coefft00*
rho.oldTime().oldTime()()
587 coefft0*
rho.oldTime().boundaryField()
589 - coefft00*
rho.oldTime().oldTime().boundaryField()
590 *vf.
oldTime().oldTime().boundaryField()
598 return tmp<GeometricField<Type, faPatchField, areaMesh>>
600 new GeometricField<Type, faPatchField, areaMesh>
606 + coefft00*
rho.oldTime().oldTime()*vf.
oldTime().oldTime()
632 scalar rDeltaT = 1.0/deltaT_();
634 scalar deltaT = deltaT_();
635 scalar deltaT0 = deltaT0_(vf);
637 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
638 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
639 scalar coefft0 = coefft + coefft00;
641 fam.diag() = (coefft*rDeltaT)*
mesh().S();
645 fam.source() = rDeltaT*
648 - coefft00*vf.
oldTime().oldTime().primitiveField()
654 fam.source() = rDeltaT*
mesh().S()*
656 coefft0*vf.
oldTime().primitiveField()
657 - coefft00*vf.
oldTime().oldTime().primitiveField()
683 scalar rDeltaT = 1.0/deltaT_();
685 scalar deltaT = deltaT_();
686 scalar deltaT0 = deltaT0_(vf);
688 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
689 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
690 scalar coefft0 = coefft + coefft00;
692 fam.diag() = (coefft*rDeltaT*
rho.value())*
mesh().S();
696 fam.source() = rDeltaT*
rho.value()*
699 - coefft00*vf.
oldTime().oldTime().primitiveField()
705 fam.source() = rDeltaT*
mesh().S()*
rho.value()*
707 coefft0*vf.
oldTime().primitiveField()
708 - coefft00*vf.
oldTime().oldTime().primitiveField()
734 scalar rDeltaT = 1.0/deltaT_();
736 scalar deltaT = deltaT_();
737 scalar deltaT0 = deltaT0_(vf);
739 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
740 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
741 scalar coefft0 = coefft + coefft00;
743 fam.diag() = (coefft*rDeltaT)*
rho.primitiveField()*
mesh().S();
747 fam.source() = rDeltaT*
749 coefft0*
rho.oldTime().primitiveField()
751 - coefft00*
rho.oldTime().oldTime().primitiveField()
752 *vf.
oldTime().oldTime().primitiveField()*
mesh().S00()
757 fam.source() = rDeltaT*
mesh().S()*
759 coefft0*
rho.oldTime().primitiveField()
761 - coefft00*
rho.oldTime().oldTime().primitiveField()
762 *vf.
oldTime().oldTime().primitiveField()
const dimensionSet & dimensions() const noexcept
Return dimensions.
Generic GeometricField class.
const GeometricField< Type, PatchField, GeoMesh > & oldTime() const
Return old time field.
const Internal & internalField() const noexcept
Return a const-reference to the dimensioned internal field.
const Boundary & boundaryField() const noexcept
Return const-reference to the boundary field.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const word & name() const noexcept
Return the object name.
Generic dimensioned Type class.
const dimensionSet & dimensions() const noexcept
Return const reference to dimensions.
const word & name() const noexcept
Return const reference to name.
const Type & value() const noexcept
Return const reference to value.
A special matrix type and solver, designed for finite area solutions of scalar equations....
static const word & calculatedType() noexcept
The type name for calculated patch fields.
tmp< GeometricField< Type, faPatchField, areaMesh > > facDdt(const dimensioned< Type >)
tmp< faMatrix< Type > > famDdt(const GeometricField< Type, faPatchField, areaMesh > &)
const faMesh & mesh() const
Return mesh reference.
tmp< GeometricField< Type, faPatchField, areaMesh > > facDdt0(const dimensioned< Type >)
A class for managing temporary objects.
T & ref() const
Return non-const reference to the contents of a non-null managed pointer.
Namespace for finite-area.
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.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
const dimensionSet dimArea(sqr(dimLength))
GeometricField< scalar, faPatchField, areaMesh > areaScalarField
static constexpr const zero Zero
Global zero (0).
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
Calculate the matrix for the second temporal derivative.