CrankNicolsonDdtScheme, backwardDdtScheme: Ensure the V00 field is cached
This commit is contained in:
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -200,11 +200,11 @@ scalar CrankNicolsonDdtScheme<Type>::coef_
|
|||||||
{
|
{
|
||||||
if (mesh().time().timeIndex() - ddt0.startTimeIndex() > 0)
|
if (mesh().time().timeIndex() - ddt0.startTimeIndex() > 0)
|
||||||
{
|
{
|
||||||
return 1.0 + ocCoeff_;
|
return 1 + ocCoeff_;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return 1.0;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -218,11 +218,11 @@ scalar CrankNicolsonDdtScheme<Type>::coef0_
|
|||||||
{
|
{
|
||||||
if (mesh().time().timeIndex() - ddt0.startTimeIndex() > 1)
|
if (mesh().time().timeIndex() - ddt0.startTimeIndex() > 1)
|
||||||
{
|
{
|
||||||
return 1.0 + ocCoeff_;
|
return 1 + ocCoeff_;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return 1.0;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -256,7 +256,7 @@ tmp<GeoField> CrankNicolsonDdtScheme<Type>::offCentre_
|
|||||||
const GeoField& ddt0
|
const GeoField& ddt0
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
if (ocCoeff_ < 1.0)
|
if (ocCoeff_ < 1)
|
||||||
{
|
{
|
||||||
return ocCoeff_*ddt0;
|
return ocCoeff_*ddt0;
|
||||||
}
|
}
|
||||||
@ -368,7 +368,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
|||||||
{
|
{
|
||||||
if (evaluate(ddt0))
|
if (evaluate(ddt0))
|
||||||
{
|
{
|
||||||
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
const scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
||||||
|
|
||||||
ddt0.primitiveFieldRef() =
|
ddt0.primitiveFieldRef() =
|
||||||
(
|
(
|
||||||
@ -456,7 +456,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
|||||||
{
|
{
|
||||||
if (evaluate(ddt0))
|
if (evaluate(ddt0))
|
||||||
{
|
{
|
||||||
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
const scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
||||||
|
|
||||||
ddt0.primitiveFieldRef() =
|
ddt0.primitiveFieldRef() =
|
||||||
(
|
(
|
||||||
@ -546,7 +546,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
|||||||
{
|
{
|
||||||
if (evaluate(ddt0))
|
if (evaluate(ddt0))
|
||||||
{
|
{
|
||||||
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
const scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
||||||
|
|
||||||
ddt0.primitiveFieldRef() =
|
ddt0.primitiveFieldRef() =
|
||||||
(
|
(
|
||||||
@ -647,7 +647,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
|||||||
{
|
{
|
||||||
if (evaluate(ddt0))
|
if (evaluate(ddt0))
|
||||||
{
|
{
|
||||||
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
const scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
||||||
|
|
||||||
ddt0.primitiveFieldRef() =
|
ddt0.primitiveFieldRef() =
|
||||||
(
|
(
|
||||||
@ -773,7 +773,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
|
|||||||
|
|
||||||
fvMatrix<Type>& fvm = tfvm.ref();
|
fvMatrix<Type>& fvm = tfvm.ref();
|
||||||
|
|
||||||
scalar rDtCoef = rDtCoef_(ddt0).value();
|
const scalar rDtCoef = rDtCoef_(ddt0).value();
|
||||||
fvm.diag() = rDtCoef*mesh().V();
|
fvm.diag() = rDtCoef*mesh().V();
|
||||||
|
|
||||||
vf.oldTime().oldTime();
|
vf.oldTime().oldTime();
|
||||||
@ -782,7 +782,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
|
|||||||
{
|
{
|
||||||
if (evaluate(ddt0))
|
if (evaluate(ddt0))
|
||||||
{
|
{
|
||||||
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
const scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
||||||
|
|
||||||
ddt0.primitiveFieldRef() =
|
ddt0.primitiveFieldRef() =
|
||||||
(
|
(
|
||||||
@ -855,7 +855,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
|
|||||||
);
|
);
|
||||||
fvMatrix<Type>& fvm = tfvm.ref();
|
fvMatrix<Type>& fvm = tfvm.ref();
|
||||||
|
|
||||||
scalar rDtCoef = rDtCoef_(ddt0).value();
|
const scalar rDtCoef = rDtCoef_(ddt0).value();
|
||||||
fvm.diag() = rDtCoef*rho.value()*mesh().V();
|
fvm.diag() = rDtCoef*rho.value()*mesh().V();
|
||||||
|
|
||||||
vf.oldTime().oldTime();
|
vf.oldTime().oldTime();
|
||||||
@ -864,7 +864,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
|
|||||||
{
|
{
|
||||||
if (evaluate(ddt0))
|
if (evaluate(ddt0))
|
||||||
{
|
{
|
||||||
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
const scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
||||||
|
|
||||||
ddt0.primitiveFieldRef() =
|
ddt0.primitiveFieldRef() =
|
||||||
(
|
(
|
||||||
@ -937,7 +937,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
|
|||||||
);
|
);
|
||||||
fvMatrix<Type>& fvm = tfvm.ref();
|
fvMatrix<Type>& fvm = tfvm.ref();
|
||||||
|
|
||||||
scalar rDtCoef = rDtCoef_(ddt0).value();
|
const scalar rDtCoef = rDtCoef_(ddt0).value();
|
||||||
fvm.diag() = rDtCoef*rho.primitiveField()*mesh().V();
|
fvm.diag() = rDtCoef*rho.primitiveField()*mesh().V();
|
||||||
|
|
||||||
vf.oldTime().oldTime();
|
vf.oldTime().oldTime();
|
||||||
@ -947,7 +947,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
|
|||||||
{
|
{
|
||||||
if (evaluate(ddt0))
|
if (evaluate(ddt0))
|
||||||
{
|
{
|
||||||
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
const scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
||||||
|
|
||||||
ddt0.primitiveFieldRef() =
|
ddt0.primitiveFieldRef() =
|
||||||
(
|
(
|
||||||
@ -1028,7 +1028,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
|
|||||||
);
|
);
|
||||||
fvMatrix<Type>& fvm = tfvm.ref();
|
fvMatrix<Type>& fvm = tfvm.ref();
|
||||||
|
|
||||||
scalar rDtCoef = rDtCoef_(ddt0).value();
|
const scalar rDtCoef = rDtCoef_(ddt0).value();
|
||||||
fvm.diag() = rDtCoef*alpha.primitiveField()*rho.primitiveField()*mesh().V();
|
fvm.diag() = rDtCoef*alpha.primitiveField()*rho.primitiveField()*mesh().V();
|
||||||
|
|
||||||
vf.oldTime().oldTime();
|
vf.oldTime().oldTime();
|
||||||
@ -1039,7 +1039,7 @@ CrankNicolsonDdtScheme<Type>::fvmDdt
|
|||||||
{
|
{
|
||||||
if (evaluate(ddt0))
|
if (evaluate(ddt0))
|
||||||
{
|
{
|
||||||
scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
const scalar rDtCoef0 = rDtCoef0_(ddt0).value();
|
||||||
|
|
||||||
ddt0.primitiveFieldRef() =
|
ddt0.primitiveFieldRef() =
|
||||||
(
|
(
|
||||||
@ -1124,14 +1124,14 @@ CrankNicolsonDdtScheme<Type>::fvcDdtUfCorr
|
|||||||
DDt0Field<GeometricField<Type, fvPatchField, volMesh>>& ddt0 =
|
DDt0Field<GeometricField<Type, fvPatchField, volMesh>>& ddt0 =
|
||||||
ddt0_<GeometricField<Type, fvPatchField, volMesh>>
|
ddt0_<GeometricField<Type, fvPatchField, volMesh>>
|
||||||
(
|
(
|
||||||
"ddt0(" + U.name() + ')',
|
"ddtCorrDdt0(" + U.name() + ')',
|
||||||
U.dimensions()
|
U.dimensions()
|
||||||
);
|
);
|
||||||
|
|
||||||
DDt0Field<GeometricField<Type, fvsPatchField, surfaceMesh>>& dUfdt0 =
|
DDt0Field<GeometricField<Type, fvsPatchField, surfaceMesh>>& dUfdt0 =
|
||||||
ddt0_<GeometricField<Type, fvsPatchField, surfaceMesh>>
|
ddt0_<GeometricField<Type, fvsPatchField, surfaceMesh>>
|
||||||
(
|
(
|
||||||
"ddt0(" + Uf.name() + ')',
|
"ddtCorrDdt0(" + Uf.name() + ')',
|
||||||
Uf.dimensions()
|
Uf.dimensions()
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -1185,14 +1185,14 @@ CrankNicolsonDdtScheme<Type>::fvcDdtPhiCorr
|
|||||||
DDt0Field<GeometricField<Type, fvPatchField, volMesh>>& ddt0 =
|
DDt0Field<GeometricField<Type, fvPatchField, volMesh>>& ddt0 =
|
||||||
ddt0_<GeometricField<Type, fvPatchField, volMesh>>
|
ddt0_<GeometricField<Type, fvPatchField, volMesh>>
|
||||||
(
|
(
|
||||||
"ddt0(" + U.name() + ')',
|
"ddtCorrDdt0(" + U.name() + ')',
|
||||||
U.dimensions()
|
U.dimensions()
|
||||||
);
|
);
|
||||||
|
|
||||||
DDt0Field<fluxFieldType>& dphidt0 =
|
DDt0Field<fluxFieldType>& dphidt0 =
|
||||||
ddt0_<fluxFieldType>
|
ddt0_<fluxFieldType>
|
||||||
(
|
(
|
||||||
"ddt0(" + phi.name() + ')',
|
"ddtCorrDdt0(" + phi.name() + ')',
|
||||||
phi.dimensions()
|
phi.dimensions()
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -1254,14 +1254,14 @@ CrankNicolsonDdtScheme<Type>::fvcDdtUfCorr
|
|||||||
DDt0Field<GeometricField<Type, fvPatchField, volMesh>>& ddt0 =
|
DDt0Field<GeometricField<Type, fvPatchField, volMesh>>& ddt0 =
|
||||||
ddt0_<GeometricField<Type, fvPatchField, volMesh>>
|
ddt0_<GeometricField<Type, fvPatchField, volMesh>>
|
||||||
(
|
(
|
||||||
"ddt0(" + rho.name() + ',' + U.name() + ')',
|
"ddtCorrDdt0(" + rho.name() + ',' + U.name() + ')',
|
||||||
U.dimensions()
|
U.dimensions()
|
||||||
);
|
);
|
||||||
|
|
||||||
DDt0Field<GeometricField<Type, fvsPatchField, surfaceMesh>>& dUfdt0 =
|
DDt0Field<GeometricField<Type, fvsPatchField, surfaceMesh>>& dUfdt0 =
|
||||||
ddt0_<GeometricField<Type, fvsPatchField, surfaceMesh>>
|
ddt0_<GeometricField<Type, fvsPatchField, surfaceMesh>>
|
||||||
(
|
(
|
||||||
"ddt0(" + Uf.name() + ')',
|
"ddtCorrDdt0(" + Uf.name() + ')',
|
||||||
Uf.dimensions()
|
Uf.dimensions()
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -1349,14 +1349,14 @@ CrankNicolsonDdtScheme<Type>::fvcDdtPhiCorr
|
|||||||
DDt0Field<GeometricField<Type, fvPatchField, volMesh>>& ddt0 =
|
DDt0Field<GeometricField<Type, fvPatchField, volMesh>>& ddt0 =
|
||||||
ddt0_<GeometricField<Type, fvPatchField, volMesh>>
|
ddt0_<GeometricField<Type, fvPatchField, volMesh>>
|
||||||
(
|
(
|
||||||
"ddt0(" + rho.name() + ',' + U.name() + ')',
|
"ddtCorrDdt0(" + rho.name() + ',' + U.name() + ')',
|
||||||
U.dimensions()
|
U.dimensions()
|
||||||
);
|
);
|
||||||
|
|
||||||
DDt0Field<fluxFieldType>& dphidt0 =
|
DDt0Field<fluxFieldType>& dphidt0 =
|
||||||
ddt0_<fluxFieldType>
|
ddt0_<fluxFieldType>
|
||||||
(
|
(
|
||||||
"ddt0(" + phi.name() + ')',
|
"ddtCorrDdt0(" + phi.name() + ')',
|
||||||
phi.dimensions()
|
phi.dimensions()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -198,7 +198,10 @@ public:
|
|||||||
:
|
:
|
||||||
ddtScheme<Type>(mesh),
|
ddtScheme<Type>(mesh),
|
||||||
ocCoeff_(1.0)
|
ocCoeff_(1.0)
|
||||||
{}
|
{
|
||||||
|
// Ensure the old-old-time cell volumes are available
|
||||||
|
mesh.V00();
|
||||||
|
}
|
||||||
|
|
||||||
//- Construct from mesh and Istream
|
//- Construct from mesh and Istream
|
||||||
CrankNicolsonDdtScheme(const fvMesh& mesh, Istream& is)
|
CrankNicolsonDdtScheme(const fvMesh& mesh, Istream& is)
|
||||||
@ -215,6 +218,9 @@ public:
|
|||||||
<< " should be >= 0 and <= 1"
|
<< " should be >= 0 and <= 1"
|
||||||
<< exit(FatalIOError);
|
<< exit(FatalIOError);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ensure the old-old-time cell volumes are available
|
||||||
|
mesh.V00();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -89,13 +89,19 @@ public:
|
|||||||
backwardDdtScheme(const fvMesh& mesh)
|
backwardDdtScheme(const fvMesh& mesh)
|
||||||
:
|
:
|
||||||
ddtScheme<Type>(mesh)
|
ddtScheme<Type>(mesh)
|
||||||
{}
|
{
|
||||||
|
// Ensure the old-old-time cell volumes are available
|
||||||
|
mesh.V00();
|
||||||
|
}
|
||||||
|
|
||||||
//- Construct from mesh and Istream
|
//- Construct from mesh and Istream
|
||||||
backwardDdtScheme(const fvMesh& mesh, Istream& is)
|
backwardDdtScheme(const fvMesh& mesh, Istream& is)
|
||||||
:
|
:
|
||||||
ddtScheme<Type>(mesh, is)
|
ddtScheme<Type>(mesh, is)
|
||||||
{}
|
{
|
||||||
|
// Ensure the old-old-time cell volumes are available
|
||||||
|
mesh.V00();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Member Functions
|
// Member Functions
|
||||||
|
|||||||
Reference in New Issue
Block a user