30 #include "surfaceInterpolate.H"
47 scalar backwardDdtScheme<Type>::deltaT_()
const
49 return mesh().time().deltaTValue();
54 scalar backwardDdtScheme<Type>::deltaT0_()
const
56 return mesh().time().deltaT0Value();
61 template<
class GeoField>
62 scalar backwardDdtScheme<Type>::deltaT0_(
const GeoField& vf)
const
78 tmp<GeometricField<Type, fvPatchField, volMesh>>
89 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().V0() - coefft00*
mesh().V00())/
mesh().V()
141 "ddt("+vf.name()+
')',
142 mesh().time().timeName(),
146 scalar deltaT = deltaT_();
147 scalar deltaT0 = deltaT0_(vf);
149 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
150 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
151 scalar coefft0 = coefft + coefft00;
213 "ddt("+
rho.name()+
','+vf.name()+
')',
214 mesh().time().timeName(),
218 scalar deltaT = deltaT_();
219 scalar deltaT0 = deltaT0_(vf);
221 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
222 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
223 scalar coefft0 = coefft + coefft00;
285 "ddt("+
rho.name()+
','+vf.name()+
')',
286 mesh().time().timeName(),
290 scalar deltaT = deltaT_();
291 scalar deltaT0 = deltaT0_(vf);
293 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
294 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
295 scalar coefft0 = coefft + coefft00;
310 coefft0*
rho.oldTime().primitiveField()
312 - coefft00*
rho.oldTime().oldTime().primitiveField()
320 coefft0*
rho.oldTime().boundaryField()
322 - coefft00*
rho.oldTime().oldTime().boundaryField()
362 mesh().time().timeName(),
366 scalar deltaT = deltaT_();
367 scalar deltaT0 = deltaT0_(vf);
369 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
370 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
371 scalar coefft0 = coefft + coefft00;
386 *
alpha.primitiveField()
387 *
rho.primitiveField()
391 *
alpha.oldTime().primitiveField()
392 *
rho.oldTime().primitiveField()
396 *
alpha.oldTime().oldTime().primitiveField()
397 *
rho.oldTime().oldTime().primitiveField()
404 *
alpha.boundaryField()
409 *
alpha.oldTime().boundaryField()
410 *
rho.oldTime().boundaryField()
414 *
alpha.oldTime().oldTime().boundaryField()
415 *
rho.oldTime().oldTime().boundaryField()
433 + coefft00*
alpha.oldTime().oldTime()
460 scalar rDeltaT = 1.0/deltaT_();
462 scalar deltaT = deltaT_();
463 scalar deltaT0 = deltaT0_(vf);
465 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
466 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
467 scalar coefft0 = coefft + coefft00;
469 fvm.diag() = (coefft*rDeltaT)*
mesh().V();
511 scalar rDeltaT = 1.0/deltaT_();
513 scalar deltaT = deltaT_();
514 scalar deltaT0 = deltaT0_(vf);
516 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
517 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
518 scalar coefft0 = coefft + coefft00;
520 fvm.diag() = (coefft*rDeltaT*
rho.value())*
mesh().V();
562 scalar rDeltaT = 1.0/deltaT_();
564 scalar deltaT = deltaT_();
565 scalar deltaT0 = deltaT0_(vf);
567 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
568 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
569 scalar coefft0 = coefft + coefft00;
571 fvm.diag() = (coefft*rDeltaT)*
rho.primitiveField()*
mesh().V();
577 coefft0*
rho.oldTime().primitiveField()
579 - coefft00*
rho.oldTime().oldTime().primitiveField()
587 coefft0*
rho.oldTime().primitiveField()
589 - coefft00*
rho.oldTime().oldTime().primitiveField()
617 scalar rDeltaT = 1.0/deltaT_();
619 scalar deltaT = deltaT_();
620 scalar deltaT0 = deltaT0_(vf);
622 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
623 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
624 scalar coefft0 = coefft + coefft00;
627 (coefft*rDeltaT)*
alpha.primitiveField()*
rho.primitiveField()*
mesh().V();
634 *
alpha.oldTime().primitiveField()
635 *
rho.oldTime().primitiveField()
639 *
alpha.oldTime().oldTime().primitiveField()
640 *
rho.oldTime().oldTime().primitiveField()
649 *
alpha.oldTime().primitiveField()
650 *
rho.oldTime().primitiveField()
654 *
alpha.oldTime().oldTime().primitiveField()
655 *
rho.oldTime().oldTime().primitiveField()
674 scalar deltaT = deltaT_();
675 scalar deltaT0 = deltaT0_(
U);
677 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
678 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
679 scalar coefft0 = coefft + coefft00;
687 "ddtCorr(" +
U.name() +
',' +
Uf.name() +
')',
688 mesh().time().timeName(),
691 this->fvcDdtPhiCoeff(
U.oldTime(), (
mesh().Sf() &
Uf.oldTime()))
696 (coefft0*
Uf.oldTime() - coefft00*
Uf.oldTime().oldTime())
699 coefft0*
U.oldTime() - coefft00*
U.oldTime().oldTime()
718 scalar deltaT = deltaT_();
719 scalar deltaT0 = deltaT0_(
U);
721 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
722 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
723 scalar coefft0 = coefft + coefft00;
731 "ddtCorr(" +
U.name() +
',' +
phi.name() +
')',
732 mesh().time().timeName(),
735 this->fvcDdtPhiCoeff(
U.oldTime(),
phi.oldTime())
738 (coefft0*
phi.oldTime() - coefft00*
phi.oldTime().oldTime())
742 coefft0*
U.oldTime() - coefft00*
U.oldTime().oldTime()
761 scalar deltaT = deltaT_();
762 scalar deltaT0 = deltaT0_(
U);
764 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
765 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
766 scalar coefft0 = coefft + coefft00;
776 rho.oldTime()*
U.oldTime()
781 rho.oldTime().oldTime()*
U.oldTime().oldTime()
791 +
rho.name() +
',' +
U.name() +
',' +
Uf.name() +
')',
792 mesh().time().timeName(),
798 mesh().Sf() &
Uf.oldTime(),
805 (coefft0*
Uf.oldTime() - coefft00*
Uf.oldTime().oldTime())
825 +
rho.name() +
',' +
U.name() +
',' +
Uf.name() +
')',
826 mesh().time().timeName(),
832 mesh().Sf() &
Uf.oldTime(),
839 (coefft0*
Uf.oldTime() - coefft00*
Uf.oldTime().oldTime())
843 - coefft00*
U.oldTime().oldTime()
853 <<
"dimensions of phi are not correct"
856 return fluxFieldType::null();
872 scalar deltaT = deltaT_();
873 scalar deltaT0 = deltaT0_(
U);
875 scalar coefft = 1 + deltaT/(deltaT + deltaT0);
876 scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
877 scalar coefft0 = coefft + coefft00;
887 rho.oldTime()*
U.oldTime()
892 rho.oldTime().oldTime()*
U.oldTime().oldTime()
902 +
rho.name() +
',' +
U.name() +
',' +
phi.name() +
')',
903 mesh().time().timeName(),
906 this->fvcDdtPhiCoeff(rhoU0,
phi.oldTime(),
rho.oldTime())
909 (coefft0*
phi.oldTime() - coefft00*
phi.oldTime().oldTime())
913 coefft0*rhoU0 - coefft00*rhoU00
932 +
rho.name() +
',' +
U.name() +
',' +
phi.name() +
')',
933 mesh().time().timeName(),
936 this->fvcDdtPhiCoeff(
U.oldTime(),
phi.oldTime(),
rho.oldTime())
939 (coefft0*
phi.oldTime() - coefft00*
phi.oldTime().oldTime())
943 coefft0*
U.oldTime() - coefft00*
U.oldTime().oldTime()
952 <<
"dimensions of phi are not correct"
955 return fluxFieldType::null();
966 scalar deltaT = deltaT_();
967 scalar deltaT0 = deltaT0_(vf);
970 scalar coefft0_00 = deltaT/(deltaT + deltaT0);
973 scalar coefftn_0 = 1 + coefft0_00;