mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
CrankNicolsonDdtScheme: Corrected handling of the boundary field to avoid premature reset of the time-index
Resolves bug-report http://bugs.openfoam.org/view.php?id=2162
This commit is contained in:
@ -366,9 +366,6 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
|||||||
|
|
||||||
if (mesh().moving())
|
if (mesh().moving())
|
||||||
{
|
{
|
||||||
typename DDt0Field<GeometricField<Type, fvPatchField, volMesh>>::
|
|
||||||
Boundary& ddt0bf = ddt0.boundaryFieldRef();
|
|
||||||
|
|
||||||
if (evaluate(ddt0))
|
if (evaluate(ddt0))
|
||||||
{
|
{
|
||||||
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
||||||
@ -382,13 +379,13 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
|||||||
) - mesh().V00()*offCentre_(ddt0.primitiveField())
|
) - mesh().V00()*offCentre_(ddt0.primitiveField())
|
||||||
)/mesh().V0();
|
)/mesh().V0();
|
||||||
|
|
||||||
ddt0bf =
|
ddt0.boundaryFieldRef() =
|
||||||
(
|
(
|
||||||
rDtCoef0*
|
rDtCoef0*
|
||||||
(
|
(
|
||||||
vf.oldTime().boundaryField()
|
vf.oldTime().boundaryField()
|
||||||
- vf.oldTime().oldTime().boundaryField()
|
- vf.oldTime().oldTime().boundaryField()
|
||||||
) - offCentre_(ff(ddt0bf))
|
) - offCentre_(ff(ddt0.boundaryField()))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -407,7 +404,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
|||||||
rDtCoef.value()*
|
rDtCoef.value()*
|
||||||
(
|
(
|
||||||
vf.boundaryField() - vf.oldTime().boundaryField()
|
vf.boundaryField() - vf.oldTime().boundaryField()
|
||||||
) - offCentre_(ff(ddt0bf))
|
) - offCentre_(ff(ddt0.boundaryField()))
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -457,9 +454,6 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
|||||||
|
|
||||||
if (mesh().moving())
|
if (mesh().moving())
|
||||||
{
|
{
|
||||||
typename DDt0Field<GeometricField<Type, fvPatchField, volMesh>>::
|
|
||||||
Boundary& ddt0bf = ddt0.boundaryFieldRef();
|
|
||||||
|
|
||||||
if (evaluate(ddt0))
|
if (evaluate(ddt0))
|
||||||
{
|
{
|
||||||
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
||||||
@ -473,13 +467,13 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
|||||||
) - mesh().V00()*offCentre_(ddt0.primitiveField())
|
) - mesh().V00()*offCentre_(ddt0.primitiveField())
|
||||||
)/mesh().V0();
|
)/mesh().V0();
|
||||||
|
|
||||||
ddt0bf =
|
ddt0.boundaryFieldRef() =
|
||||||
(
|
(
|
||||||
rDtCoef0*rho.value()*
|
rDtCoef0*rho.value()*
|
||||||
(
|
(
|
||||||
vf.oldTime().boundaryField()
|
vf.oldTime().boundaryField()
|
||||||
- vf.oldTime().oldTime().boundaryField()
|
- vf.oldTime().oldTime().boundaryField()
|
||||||
) - offCentre_(ff(ddt0bf))
|
) - offCentre_(ff(ddt0.boundaryField()))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -500,7 +494,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
|||||||
rDtCoef.value()*rho.value()*
|
rDtCoef.value()*rho.value()*
|
||||||
(
|
(
|
||||||
vf.boundaryField() - vf.oldTime().boundaryField()
|
vf.boundaryField() - vf.oldTime().boundaryField()
|
||||||
) - offCentre_(ff(ddt0bf))
|
) - offCentre_(ff(ddt0.boundaryField()))
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -550,9 +544,6 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
|||||||
|
|
||||||
if (mesh().moving())
|
if (mesh().moving())
|
||||||
{
|
{
|
||||||
typename DDt0Field<GeometricField<Type, fvPatchField, volMesh>>::
|
|
||||||
Boundary& ddt0bf = ddt0.boundaryFieldRef();
|
|
||||||
|
|
||||||
if (evaluate(ddt0))
|
if (evaluate(ddt0))
|
||||||
{
|
{
|
||||||
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
||||||
@ -568,7 +559,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
|||||||
) - mesh().V00()*offCentre_(ddt0.primitiveField())
|
) - mesh().V00()*offCentre_(ddt0.primitiveField())
|
||||||
)/mesh().V0();
|
)/mesh().V0();
|
||||||
|
|
||||||
ddt0bf =
|
ddt0.boundaryFieldRef() =
|
||||||
(
|
(
|
||||||
rDtCoef0*
|
rDtCoef0*
|
||||||
(
|
(
|
||||||
@ -576,7 +567,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
|||||||
*vf.oldTime().boundaryField()
|
*vf.oldTime().boundaryField()
|
||||||
- rho.oldTime().oldTime().boundaryField()
|
- rho.oldTime().oldTime().boundaryField()
|
||||||
*vf.oldTime().oldTime().boundaryField()
|
*vf.oldTime().oldTime().boundaryField()
|
||||||
) - offCentre_(ff(ddt0bf))
|
) - offCentre_(ff(ddt0.boundaryField()))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -599,7 +590,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
|||||||
(
|
(
|
||||||
rho.boundaryField()*vf.boundaryField()
|
rho.boundaryField()*vf.boundaryField()
|
||||||
- rho.oldTime().boundaryField()*vf.oldTime().boundaryField()
|
- rho.oldTime().boundaryField()*vf.oldTime().boundaryField()
|
||||||
) - offCentre_(ff(ddt0bf))
|
) - offCentre_(ff(ddt0.boundaryField()))
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -654,9 +645,6 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
|||||||
|
|
||||||
if (mesh().moving())
|
if (mesh().moving())
|
||||||
{
|
{
|
||||||
typename DDt0Field<GeometricField<Type, fvPatchField, volMesh>>::
|
|
||||||
Boundary& ddt0bf = ddt0.boundaryFieldRef();
|
|
||||||
|
|
||||||
if (evaluate(ddt0))
|
if (evaluate(ddt0))
|
||||||
{
|
{
|
||||||
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
||||||
@ -677,7 +665,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
|||||||
) - mesh().V00()*offCentre_(ddt0.primitiveField())
|
) - mesh().V00()*offCentre_(ddt0.primitiveField())
|
||||||
)/mesh().V0();
|
)/mesh().V0();
|
||||||
|
|
||||||
ddt0bf =
|
ddt0.boundaryFieldRef() =
|
||||||
(
|
(
|
||||||
rDtCoef0*
|
rDtCoef0*
|
||||||
(
|
(
|
||||||
@ -688,7 +676,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
|||||||
- alpha.oldTime().oldTime().boundaryField()
|
- alpha.oldTime().oldTime().boundaryField()
|
||||||
*rho.oldTime().oldTime().boundaryField()
|
*rho.oldTime().oldTime().boundaryField()
|
||||||
*vf.oldTime().oldTime().boundaryField()
|
*vf.oldTime().oldTime().boundaryField()
|
||||||
) - offCentre_(ff(ddt0bf))
|
) - offCentre_(ff(ddt0.boundaryField()))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -723,7 +711,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
|||||||
- alpha.oldTime().boundaryField()
|
- alpha.oldTime().boundaryField()
|
||||||
*rho.oldTime().boundaryField()
|
*rho.oldTime().boundaryField()
|
||||||
*vf.oldTime().boundaryField()
|
*vf.oldTime().boundaryField()
|
||||||
) - offCentre_(ff(ddt0bf))
|
) - offCentre_(ff(ddt0.boundaryField()))
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -792,9 +780,6 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
|
|||||||
|
|
||||||
if (mesh().moving())
|
if (mesh().moving())
|
||||||
{
|
{
|
||||||
typename DDt0Field<GeometricField<Type, fvPatchField, volMesh>>::
|
|
||||||
Boundary& ddt0bf = ddt0.boundaryFieldRef();
|
|
||||||
|
|
||||||
if (evaluate(ddt0))
|
if (evaluate(ddt0))
|
||||||
{
|
{
|
||||||
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
||||||
@ -809,14 +794,14 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
|
|||||||
- mesh().V00()*offCentre_(ddt0.primitiveField())
|
- mesh().V00()*offCentre_(ddt0.primitiveField())
|
||||||
)/mesh().V0();
|
)/mesh().V0();
|
||||||
|
|
||||||
ddt0bf =
|
ddt0.boundaryFieldRef() =
|
||||||
(
|
(
|
||||||
rDtCoef0*
|
rDtCoef0*
|
||||||
(
|
(
|
||||||
vf.oldTime().boundaryField()
|
vf.oldTime().boundaryField()
|
||||||
- vf.oldTime().oldTime().boundaryField()
|
- vf.oldTime().oldTime().boundaryField()
|
||||||
)
|
)
|
||||||
- offCentre_(ff(ddt0bf))
|
- offCentre_(ff(ddt0.boundaryField()))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -877,9 +862,6 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
|
|||||||
|
|
||||||
if (mesh().moving())
|
if (mesh().moving())
|
||||||
{
|
{
|
||||||
typename DDt0Field<GeometricField<Type, fvPatchField, volMesh>>::
|
|
||||||
Boundary& ddt0bf = ddt0.boundaryFieldRef();
|
|
||||||
|
|
||||||
if (evaluate(ddt0))
|
if (evaluate(ddt0))
|
||||||
{
|
{
|
||||||
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
||||||
@ -894,14 +876,14 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
|
|||||||
- mesh().V00()*offCentre_(ddt0.primitiveField())
|
- mesh().V00()*offCentre_(ddt0.primitiveField())
|
||||||
)/mesh().V0();
|
)/mesh().V0();
|
||||||
|
|
||||||
ddt0bf =
|
ddt0.boundaryFieldRef() =
|
||||||
(
|
(
|
||||||
rDtCoef0*rho.value()*
|
rDtCoef0*rho.value()*
|
||||||
(
|
(
|
||||||
vf.oldTime().boundaryField()
|
vf.oldTime().boundaryField()
|
||||||
- vf.oldTime().oldTime().boundaryField()
|
- vf.oldTime().oldTime().boundaryField()
|
||||||
)
|
)
|
||||||
- offCentre_(ff(ddt0bf))
|
- offCentre_(ff(ddt0.boundaryField()))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -963,9 +945,6 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
|
|||||||
|
|
||||||
if (mesh().moving())
|
if (mesh().moving())
|
||||||
{
|
{
|
||||||
typename DDt0Field<GeometricField<Type, fvPatchField, volMesh>>::
|
|
||||||
Boundary& ddt0bf = ddt0.boundaryFieldRef();
|
|
||||||
|
|
||||||
if (evaluate(ddt0))
|
if (evaluate(ddt0))
|
||||||
{
|
{
|
||||||
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
||||||
@ -982,7 +961,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
|
|||||||
- mesh().V00()*offCentre_(ddt0.primitiveField())
|
- mesh().V00()*offCentre_(ddt0.primitiveField())
|
||||||
)/mesh().V0();
|
)/mesh().V0();
|
||||||
|
|
||||||
ddt0bf =
|
ddt0.boundaryFieldRef() =
|
||||||
(
|
(
|
||||||
rDtCoef0*
|
rDtCoef0*
|
||||||
(
|
(
|
||||||
@ -991,7 +970,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
|
|||||||
- rho.oldTime().oldTime().boundaryField()
|
- rho.oldTime().oldTime().boundaryField()
|
||||||
*vf.oldTime().oldTime().boundaryField()
|
*vf.oldTime().oldTime().boundaryField()
|
||||||
)
|
)
|
||||||
- offCentre_(ff(ddt0bf))
|
- offCentre_(ff(ddt0.boundaryField()))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1058,9 +1037,6 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
|
|||||||
|
|
||||||
if (mesh().moving())
|
if (mesh().moving())
|
||||||
{
|
{
|
||||||
typename DDt0Field<GeometricField<Type, fvPatchField, volMesh>>::
|
|
||||||
Boundary& ddt0bf = ddt0.boundaryFieldRef();
|
|
||||||
|
|
||||||
if (evaluate(ddt0))
|
if (evaluate(ddt0))
|
||||||
{
|
{
|
||||||
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
||||||
@ -1082,7 +1058,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
|
|||||||
- mesh().V00()*offCentre_(ddt0.primitiveField())
|
- mesh().V00()*offCentre_(ddt0.primitiveField())
|
||||||
)/mesh().V0();
|
)/mesh().V0();
|
||||||
|
|
||||||
ddt0bf =
|
ddt0.boundaryFieldRef() =
|
||||||
(
|
(
|
||||||
rDtCoef0*
|
rDtCoef0*
|
||||||
(
|
(
|
||||||
@ -1094,7 +1070,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
|
|||||||
*rho.oldTime().oldTime().boundaryField()
|
*rho.oldTime().oldTime().boundaryField()
|
||||||
*vf.oldTime().oldTime().boundaryField()
|
*vf.oldTime().oldTime().boundaryField()
|
||||||
)
|
)
|
||||||
- offCentre_(ff(ddt0bf))
|
- offCentre_(ff(ddt0.boundaryField()))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user