44 template<
class GeoField>
62 template<
class GeoField>
70 GeoField(io,
mesh, dimType),
71 startTimeIndex_(
mesh.time().timeIndex())
76 template<
class GeoField>
80 return startTimeIndex_;
85 template<
class GeoField>
94 template<
class GeoField>
98 GeoField::operator=(gf);
103 template<
class GeoField>
111 if (!
mesh().objectRegistry::template foundObject<GeoField>(
name))
113 const Time& runTime =
mesh().time();
174 const_cast<GeoField&
>
176 mesh().objectRegistry::template lookupObject<GeoField>(
name)
185 template<
class GeoField>
191 return ddt0.timeIndex() !=
mesh().time().timeIndex();
195 template<
class GeoField>
203 return 1.0 + ocCoeff_;
213 template<
class GeoField>
221 return 1.0 + ocCoeff_;
231 template<
class GeoField>
237 return coef_(ddt0)/
mesh().time().deltaT();
242 template<
class GeoField>
248 return coef0_(ddt0)/
mesh().time().deltaT0();
253 template<
class GeoField>
261 return ocCoeff_*ddt0;
290 ddt0_<GeometricField<Type, fvPatchField, volMesh> >
292 "ddt0(" + dt.
name() +
')',
298 "ddt(" + dt.
name() +
')',
326 ddt0.dimensionedInternalField() =
328 (rDtCoef0*dt)*(
mesh().V0() -
mesh().V00())
329 -
mesh().V00()*offCentre_(ddt0.dimensionedInternalField())
333 tdtdt().dimensionedInternalField() =
335 (rDtCoef*dt)*(
mesh().V() -
mesh().V0())
336 -
mesh().V0()*offCentre_(ddt0.dimensionedInternalField())
352 ddt0_<GeometricField<Type, fvPatchField, volMesh> >
354 "ddt0(" + vf.name() +
')',
360 "ddt(" + vf.name() +
')',
371 scalar rDtCoef0 = rDtCoef0_(ddt0).value();
373 ddt0.internalField() =
378 -
mesh().V00()*vf.
oldTime().oldTime().internalField()
379 ) -
mesh().V00()*offCentre_(ddt0.internalField())
382 ddt0.boundaryField() =
387 - vf.
oldTime().oldTime().boundaryField()
388 ) - offCentre_(
ff(ddt0.boundaryField()))
404 ) -
mesh().V0()*offCentre_(ddt0.internalField())
409 ) - offCentre_(
ff(ddt0.boundaryField()))
418 - offCentre_(ddt0());
426 rDtCoef*(vf - vf.
oldTime()) - offCentre_(ddt0())
442 ddt0_<GeometricField<Type, fvPatchField, volMesh> >
444 "ddt0(" +
rho.name() +
',' + vf.name() +
')',
445 rho.dimensions()*vf.dimensions()
450 "ddt(" +
rho.name() +
',' + vf.name() +
')',
461 scalar rDtCoef0 = rDtCoef0_(ddt0).value();
463 ddt0.internalField() =
465 rDtCoef0*
rho.value()*
468 -
mesh().V00()*vf.
oldTime().oldTime().internalField()
469 ) -
mesh().V00()*offCentre_(ddt0.internalField())
472 ddt0.boundaryField() =
474 rDtCoef0*
rho.value()*
477 - vf.
oldTime().oldTime().boundaryField()
478 ) - offCentre_(
ff(ddt0.boundaryField()))
494 ) -
mesh().V0()*offCentre_(ddt0.internalField())
499 ) - offCentre_(
ff(ddt0.boundaryField()))
508 - offCentre_(ddt0());
516 rDtCoef*
rho*(vf - vf.
oldTime()) - offCentre_(ddt0())
532 ddt0_<GeometricField<Type, fvPatchField, volMesh> >
534 "ddt0(" +
rho.name() +
',' + vf.name() +
')',
535 rho.dimensions()*vf.dimensions()
540 "ddt(" +
rho.name() +
',' + vf.name() +
')',
551 scalar rDtCoef0 = rDtCoef0_(ddt0).value();
553 ddt0.internalField() =
557 mesh().V0()*
rho.oldTime().internalField()
559 -
mesh().V00()*
rho.oldTime().oldTime().internalField()
560 *vf.
oldTime().oldTime().internalField()
561 ) -
mesh().V00()*offCentre_(ddt0.internalField())
564 ddt0.boundaryField() =
568 rho.oldTime().boundaryField()
570 -
rho.oldTime().oldTime().boundaryField()
571 *vf.
oldTime().oldTime().boundaryField()
572 ) - offCentre_(
ff(ddt0.boundaryField()))
587 -
mesh().V0()*
rho.oldTime().internalField()
589 ) -
mesh().V00()*offCentre_(ddt0.internalField())
594 -
rho.oldTime().boundaryField()*vf.
oldTime().boundaryField()
595 ) - offCentre_(
ff(ddt0.boundaryField()))
603 ddt0 = rDtCoef0_(ddt0)*
606 -
rho.oldTime().oldTime()*vf.
oldTime().oldTime()
607 ) - offCentre_(ddt0());
633 ddt0_<GeometricField<Type, fvPatchField, volMesh> >
635 "ddt0(" +
alpha.
name() +
',' +
rho.name() +
',' + vf.name() +
')',
641 "ddt(" +
alpha.
name() +
',' +
rho.name() +
',' + vf.name() +
')',
652 scalar rDtCoef0 = rDtCoef0_(ddt0).value();
654 ddt0.internalField() =
659 *
alpha.oldTime().internalField()
660 *
rho.oldTime().internalField()
664 *
alpha.oldTime().oldTime().internalField()
665 *
rho.oldTime().oldTime().internalField()
666 *vf.
oldTime().oldTime().internalField()
667 ) -
mesh().V00()*offCentre_(ddt0.internalField())
670 ddt0.boundaryField() =
674 alpha.oldTime().boundaryField()
675 *
rho.oldTime().boundaryField()
678 -
alpha.oldTime().oldTime().boundaryField()
679 *
rho.oldTime().oldTime().boundaryField()
680 *vf.
oldTime().oldTime().boundaryField()
681 ) - offCentre_(
ff(ddt0.boundaryField()))
697 *
alpha.internalField()
702 *
alpha.oldTime().internalField()
703 *
rho.oldTime().internalField()
705 ) -
mesh().V00()*offCentre_(ddt0.internalField())
709 alpha.boundaryField()
713 -
alpha.oldTime().boundaryField()
714 *
rho.oldTime().boundaryField()
716 ) - offCentre_(
ff(ddt0.boundaryField()))
724 ddt0 = rDtCoef0_(ddt0)*
730 -
alpha.oldTime().oldTime()
731 *
rho.oldTime().oldTime()
733 ) - offCentre_(ddt0());
761 ddt0_<GeometricField<Type, fvPatchField, volMesh> >
763 "ddt0(" + vf.name() +
')',
778 scalar rDtCoef = rDtCoef_(ddt0).value();
779 fvm.diag() = rDtCoef*
mesh().V();
787 scalar rDtCoef0 = rDtCoef0_(ddt0).value();
789 ddt0.internalField() =
794 -
mesh().V00()*vf.
oldTime().oldTime().internalField()
796 -
mesh().V00()*offCentre_(ddt0.internalField())
799 ddt0.boundaryField() =
804 - vf.
oldTime().oldTime().boundaryField()
806 - offCentre_(
ff(ddt0.boundaryField()))
812 rDtCoef*vf.
oldTime().internalField()
813 + offCentre_(ddt0.internalField())
821 - offCentre_(ddt0());
826 rDtCoef*vf.
oldTime().internalField()
827 + offCentre_(ddt0.internalField())
844 ddt0_<GeometricField<Type, fvPatchField, volMesh> >
846 "ddt0(" +
rho.name() +
',' + vf.name() +
')',
847 rho.dimensions()*vf.dimensions()
860 scalar rDtCoef = rDtCoef_(ddt0).value();
861 fvm.diag() = rDtCoef*
rho.value()*
mesh().V();
869 scalar rDtCoef0 = rDtCoef0_(ddt0).value();
871 ddt0.internalField() =
873 rDtCoef0*
rho.value()*
876 -
mesh().V00()*vf.
oldTime().oldTime().internalField()
878 -
mesh().V00()*offCentre_(ddt0.internalField())
881 ddt0.boundaryField() =
883 rDtCoef0*
rho.value()*
886 - vf.
oldTime().oldTime().boundaryField()
888 - offCentre_(
ff(ddt0.boundaryField()))
894 rDtCoef*
rho.value()*vf.
oldTime().internalField()
895 + offCentre_(ddt0.internalField())
903 - offCentre_(ddt0());
908 rDtCoef*
rho.value()*vf.
oldTime().internalField()
909 + offCentre_(ddt0.internalField())
926 ddt0_<GeometricField<Type, fvPatchField, volMesh> >
928 "ddt0(" +
rho.name() +
',' + vf.name() +
')',
929 rho.dimensions()*vf.dimensions()
942 scalar rDtCoef = rDtCoef_(ddt0).value();
943 fvm.diag() = rDtCoef*
rho.internalField()*
mesh().V();
946 rho.oldTime().oldTime();
952 scalar rDtCoef0 = rDtCoef0_(ddt0).value();
954 ddt0.internalField() =
958 mesh().V0()*
rho.oldTime().internalField()
960 -
mesh().V00()*
rho.oldTime().oldTime().internalField()
961 *vf.
oldTime().oldTime().internalField()
963 -
mesh().V00()*offCentre_(ddt0.internalField())
966 ddt0.boundaryField() =
970 rho.oldTime().boundaryField()
972 -
rho.oldTime().oldTime().boundaryField()
973 *vf.
oldTime().oldTime().boundaryField()
975 - offCentre_(
ff(ddt0.boundaryField()))
981 rDtCoef*
rho.oldTime().internalField()*vf.
oldTime().internalField()
982 + offCentre_(ddt0.internalField())
989 ddt0 = rDtCoef0_(ddt0)*
992 -
rho.oldTime().oldTime()*vf.
oldTime().oldTime()
993 ) - offCentre_(ddt0());
998 rDtCoef*
rho.oldTime().internalField()*vf.
oldTime().internalField()
999 + offCentre_(ddt0.internalField())
1007 template<
class Type>
1017 ddt0_<GeometricField<Type, fvPatchField, volMesh> >
1019 "ddt0(" +
alpha.
name() +
',' +
rho.name() +
',' + vf.name() +
')',
1033 scalar rDtCoef = rDtCoef_(ddt0).value();
1034 fvm.diag() = rDtCoef*
alpha.internalField()*
rho.internalField()*
mesh().V();
1037 alpha.oldTime().oldTime();
1038 rho.oldTime().oldTime();
1040 if (
mesh().moving())
1044 scalar rDtCoef0 = rDtCoef0_(ddt0).value();
1046 ddt0.internalField() =
1051 *
alpha.oldTime().internalField()
1052 *
rho.oldTime().internalField()
1056 *
alpha.oldTime().oldTime().internalField()
1057 *
rho.oldTime().oldTime().internalField()
1058 *vf.
oldTime().oldTime().internalField()
1060 -
mesh().V00()*offCentre_(ddt0.internalField())
1063 ddt0.boundaryField() =
1067 alpha.oldTime().boundaryField()
1068 *
rho.oldTime().boundaryField()
1071 -
alpha.oldTime().oldTime().boundaryField()
1072 *
rho.oldTime().oldTime().boundaryField()
1073 *vf.
oldTime().oldTime().boundaryField()
1075 - offCentre_(
ff(ddt0.boundaryField()))
1082 *
alpha.oldTime().internalField()
1083 *
rho.oldTime().internalField()
1085 + offCentre_(ddt0.internalField())
1092 ddt0 = rDtCoef0_(ddt0)*
1098 -
alpha.oldTime().oldTime()
1099 *
rho.oldTime().oldTime()
1101 ) - offCentre_(ddt0());
1107 *
alpha.oldTime().internalField()
1108 *
rho.oldTime().internalField()
1110 + offCentre_(ddt0.internalField())
1118 template<
class Type>
1127 ddt0_<GeometricField<Type, fvPatchField, volMesh> >
1129 "ddt0(" +
U.name() +
')',
1134 ddt0_<GeometricField<Type, fvsPatchField, surfaceMesh> >
1136 "ddt0(" +
Uf.name() +
')',
1145 rDtCoef0_(ddt0)*(
U.oldTime() -
U.oldTime().oldTime())
1146 - offCentre_(ddt0());
1149 if (evaluate(dUfdt0))
1152 rDtCoef0_(dUfdt0)*(
Uf.oldTime() -
Uf.oldTime().oldTime())
1153 - offCentre_(dUfdt0());
1162 "ddtCorr(" +
U.name() +
',' +
Uf.name() +
')',
1166 this->fvcDdtPhiCoeff(
U.oldTime(),
mesh().Sf() &
Uf.oldTime())
1170 (rDtCoef*
Uf.oldTime() + offCentre_(dUfdt0()))
1179 template<
class Type>
1188 ddt0_<GeometricField<Type, fvPatchField, volMesh> >
1190 "ddt0(" +
U.name() +
')',
1195 ddt0_<fluxFieldType>
1197 "ddt0(" +
phi.name() +
')',
1206 rDtCoef0_(ddt0)*(
U.oldTime() -
U.oldTime().oldTime())
1207 - offCentre_(ddt0());
1210 if (evaluate(dphidt0))
1213 rDtCoef0_(dphidt0)*(
phi.oldTime() -
phi.oldTime().oldTime())
1214 - offCentre_(dphidt0());
1223 "ddtCorr(" +
U.name() +
',' +
phi.name() +
')',
1227 this->fvcDdtPhiCoeff(
U.oldTime(),
phi.oldTime())
1229 (rDtCoef*
phi.oldTime() + offCentre_(dphidt0()))
1240 template<
class Type>
1256 ddt0_<GeometricField<Type, fvPatchField, volMesh> >
1258 "ddt0(" +
rho.name() +
',' +
U.name() +
')',
1263 ddt0_<GeometricField<Type, fvsPatchField, surfaceMesh> >
1265 "ddt0(" +
Uf.name() +
')',
1273 rho.oldTime()*
U.oldTime()
1280 *(rhoU0 -
rho.oldTime().oldTime()*
U.oldTime().oldTime())
1281 - offCentre_(ddt0());
1284 if (evaluate(dUfdt0))
1288 *(
Uf.oldTime() -
Uf.oldTime().oldTime())
1289 - offCentre_(dUfdt0());
1299 +
rho.name() +
',' +
U.name() +
',' +
Uf.name() +
')',
1303 this->fvcDdtPhiCoeff(rhoU0,
mesh().Sf() &
Uf.oldTime())
1307 (rDtCoef*
Uf.oldTime() + offCentre_(dUfdt0()))
1322 return fvcDdtUfCorr(
U,
Uf);
1327 <<
"dimensions of Uf are not correct"
1330 return fluxFieldType::null();
1335 template<
class Type>
1351 ddt0_<GeometricField<Type, fvPatchField, volMesh> >
1353 "ddt0(" +
rho.name() +
',' +
U.name() +
')',
1358 ddt0_<fluxFieldType>
1360 "ddt0(" +
phi.name() +
')',
1368 rho.oldTime()*
U.oldTime()
1375 *(rhoU0 -
rho.oldTime().oldTime()*
U.oldTime().oldTime())
1376 - offCentre_(ddt0());
1379 if (evaluate(dphidt0))
1383 *(
phi.oldTime() -
phi.oldTime().oldTime())
1384 - offCentre_(dphidt0());
1394 +
rho.name() +
',' +
U.name() +
',' +
phi.name() +
')',
1398 this->fvcDdtPhiCoeff(rhoU0,
phi.oldTime())
1400 (rDtCoef*
phi.oldTime() + offCentre_(dphidt0()))
1417 return fvcDdtPhiCorr(
U,
phi);
1422 <<
"dimensions of phi are not correct"
1425 return fluxFieldType::null();
1430 template<
class Type>
1442 if (evaluate(meshPhi0))
1445 coef0_(meshPhi0)*
mesh().phi().oldTime() - offCentre_(meshPhi0());
1461 coef_(meshPhi0)*
mesh().
phi() - offCentre_(meshPhi0())