CrankNicolsonDdtScheme: Changed ddtCorr from a basic Euler scheme to include the Crank-Nicolson correction
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1468
This commit is contained in:
@ -598,13 +598,6 @@ CoEulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& Uf
|
||||
)
|
||||
{
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
const surfaceScalarField rDeltaT(fvc::interpolate(CorDeltaT()));
|
||||
|
||||
fluxFieldType phiCorr
|
||||
@ -616,7 +609,12 @@ CoEulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
@ -637,13 +635,6 @@ CoEulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
const fluxFieldType& phi
|
||||
)
|
||||
{
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
const surfaceScalarField rDeltaT(fvc::interpolate(CorDeltaT()));
|
||||
|
||||
fluxFieldType phiCorr
|
||||
@ -655,7 +646,12 @@ CoEulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
@ -672,21 +668,14 @@ CoEulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& Uf
|
||||
)
|
||||
{
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
const surfaceScalarField rDeltaT(fvc::interpolate(CorDeltaT()));
|
||||
|
||||
if
|
||||
(
|
||||
U.dimensions() == dimVelocity
|
||||
&& Uf.dimensions() == dimDensity*dimVelocity
|
||||
)
|
||||
{
|
||||
const surfaceScalarField rDeltaT(fvc::interpolate(CorDeltaT()));
|
||||
|
||||
GeometricField<Type, fvPatchField, volMesh> rhoU0
|
||||
(
|
||||
rho.oldTime()*U.oldTime()
|
||||
@ -701,7 +690,13 @@ CoEulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
rhoU0,
|
||||
@ -718,25 +713,7 @@ CoEulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
&& Uf.dimensions() == dimDensity*dimVelocity
|
||||
)
|
||||
{
|
||||
fluxFieldType phiCorr
|
||||
(
|
||||
mesh().Sf() & (Uf.oldTime() - fvc::interpolate(U.oldTime()))
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
mesh().Sf() & Uf.oldTime(),
|
||||
phiCorr
|
||||
)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
);
|
||||
return fvcDdtUfCorr(U, Uf);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -760,21 +737,14 @@ CoEulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
const fluxFieldType& phi
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
if
|
||||
(
|
||||
U.dimensions() == dimVelocity
|
||||
&& phi.dimensions() == rho.dimensions()*dimVelocity*dimArea
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
GeometricField<Type, fvPatchField, volMesh> rhoU0
|
||||
(
|
||||
rho.oldTime()*U.oldTime()
|
||||
@ -789,7 +759,13 @@ CoEulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(rhoU0, phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
@ -801,20 +777,7 @@ CoEulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
&& phi.dimensions() == rho.dimensions()*dimVelocity*dimArea
|
||||
)
|
||||
{
|
||||
fluxFieldType phiCorr
|
||||
(
|
||||
phi.oldTime() - (mesh().Sf() & fvc::interpolate(U.oldTime()))
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
);
|
||||
return fvcDdtPhiCorr(U, phi);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -1130,32 +1130,47 @@ CrankNicolsonDdtScheme<Type>::fvcDdtUfCorr
|
||||
U.dimensions()
|
||||
);
|
||||
|
||||
dimensionedScalar rDeltaT = rDtCoef_(ddt0);
|
||||
|
||||
IOobject ddtIOobject
|
||||
DDt0Field<GeometricField<Type, fvsPatchField, surfaceMesh> >& dUfdt0 =
|
||||
ddt0_<GeometricField<Type, fvsPatchField, surfaceMesh> >
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
"ddt0(" + Uf.name() + ')',
|
||||
Uf.dimensions()
|
||||
);
|
||||
|
||||
fluxFieldType phiCorr
|
||||
(
|
||||
mesh().Sf() & (Uf.oldTime() - fvc::interpolate(U.oldTime()))
|
||||
);
|
||||
dimensionedScalar rDtCoef = rDtCoef_(ddt0);
|
||||
|
||||
if (evaluate(ddt0))
|
||||
{
|
||||
ddt0 =
|
||||
rDtCoef0_(ddt0)*(U.oldTime() - U.oldTime().oldTime())
|
||||
- offCentre_(ddt0());
|
||||
}
|
||||
|
||||
if (evaluate(dUfdt0))
|
||||
{
|
||||
dUfdt0 =
|
||||
rDtCoef0_(dUfdt0)*(Uf.oldTime() - Uf.oldTime().oldTime())
|
||||
- offCentre_(dUfdt0());
|
||||
}
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
this->fvcDdtPhiCoeff
|
||||
IOobject
|
||||
(
|
||||
U.oldTime(),
|
||||
mesh().Sf() & Uf.oldTime(),
|
||||
phiCorr
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), mesh().Sf() & Uf.oldTime())
|
||||
*(
|
||||
mesh().Sf()
|
||||
& (
|
||||
(rDtCoef*Uf.oldTime() + offCentre_(dUfdt0()))
|
||||
- fvc::interpolate(rDtCoef*U.oldTime() + offCentre_(ddt0()))
|
||||
)
|
||||
)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -1176,27 +1191,47 @@ CrankNicolsonDdtScheme<Type>::fvcDdtPhiCorr
|
||||
U.dimensions()
|
||||
);
|
||||
|
||||
dimensionedScalar rDeltaT = rDtCoef_(ddt0);
|
||||
|
||||
IOobject ddtIOobject
|
||||
DDt0Field<fluxFieldType>& dphidt0 =
|
||||
ddt0_<fluxFieldType>
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
"ddt0(" + phi.name() + ')',
|
||||
phi.dimensions()
|
||||
);
|
||||
|
||||
fluxFieldType phiCorr
|
||||
(
|
||||
phi.oldTime() - (mesh().Sf() & fvc::interpolate(U.oldTime()))
|
||||
);
|
||||
dimensionedScalar rDtCoef = rDtCoef_(ddt0);
|
||||
|
||||
if (evaluate(ddt0))
|
||||
{
|
||||
ddt0 =
|
||||
rDtCoef0_(ddt0)*(U.oldTime() - U.oldTime().oldTime())
|
||||
- offCentre_(ddt0());
|
||||
}
|
||||
|
||||
if (evaluate(dphidt0))
|
||||
{
|
||||
dphidt0 =
|
||||
rDtCoef0_(dphidt0)*(phi.oldTime() - phi.oldTime().oldTime())
|
||||
- offCentre_(dphidt0());
|
||||
}
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())
|
||||
*(
|
||||
(rDtCoef*phi.oldTime() + offCentre_(dphidt0()))
|
||||
- (
|
||||
mesh().Sf()
|
||||
& fvc::interpolate(rDtCoef*U.oldTime() + offCentre_(ddt0()))
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -1211,13 +1246,6 @@ CrankNicolsonDdtScheme<Type>::fvcDdtUfCorr
|
||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& Uf
|
||||
)
|
||||
{
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
if
|
||||
(
|
||||
U.dimensions() == dimVelocity
|
||||
@ -1231,30 +1259,55 @@ CrankNicolsonDdtScheme<Type>::fvcDdtUfCorr
|
||||
U.dimensions()
|
||||
);
|
||||
|
||||
dimensionedScalar rDeltaT = rDtCoef_(ddt0);
|
||||
DDt0Field<GeometricField<Type, fvsPatchField, surfaceMesh> >& dUfdt0 =
|
||||
ddt0_<GeometricField<Type, fvsPatchField, surfaceMesh> >
|
||||
(
|
||||
"ddt0(" + Uf.name() + ')',
|
||||
Uf.dimensions()
|
||||
);
|
||||
|
||||
dimensionedScalar rDtCoef = rDtCoef_(ddt0);
|
||||
|
||||
GeometricField<Type, fvPatchField, volMesh> rhoU0
|
||||
(
|
||||
rho.oldTime()*U.oldTime()
|
||||
);
|
||||
|
||||
fluxFieldType phiCorr
|
||||
(
|
||||
mesh().Sf() & (Uf.oldTime() - fvc::interpolate(rhoU0))
|
||||
);
|
||||
if (evaluate(ddt0))
|
||||
{
|
||||
ddt0 =
|
||||
rDtCoef0_(ddt0)
|
||||
*(rhoU0 - rho.oldTime().oldTime()*U.oldTime().oldTime())
|
||||
- offCentre_(ddt0());
|
||||
}
|
||||
|
||||
if (evaluate(dUfdt0))
|
||||
{
|
||||
dUfdt0 =
|
||||
rDtCoef0_(dUfdt0)
|
||||
*(Uf.oldTime() - Uf.oldTime().oldTime())
|
||||
- offCentre_(dUfdt0());
|
||||
}
|
||||
|
||||
tmp<fluxFieldType> ddtCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
this->fvcDdtPhiCoeff
|
||||
IOobject
|
||||
(
|
||||
rhoU0,
|
||||
mesh().Sf() & Uf.oldTime(),
|
||||
phiCorr
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(rhoU0, mesh().Sf() & Uf.oldTime())
|
||||
*(
|
||||
mesh().Sf()
|
||||
& (
|
||||
(rDtCoef*Uf.oldTime() + offCentre_(dUfdt0()))
|
||||
- fvc::interpolate(rDtCoef*rhoU0 + offCentre_(ddt0()))
|
||||
)
|
||||
)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
);
|
||||
|
||||
@ -1266,36 +1319,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdtUfCorr
|
||||
&& Uf.dimensions() == rho.dimensions()*dimVelocity
|
||||
)
|
||||
{
|
||||
DDt0Field<GeometricField<Type, fvPatchField, volMesh> >& ddt0 =
|
||||
ddt0_<GeometricField<Type, fvPatchField, volMesh> >
|
||||
(
|
||||
"ddt0(" + U.name() + ')',
|
||||
U.dimensions()
|
||||
);
|
||||
|
||||
dimensionedScalar rDeltaT = rDtCoef_(ddt0);
|
||||
|
||||
fluxFieldType phiCorr
|
||||
(
|
||||
mesh().Sf() & (Uf.oldTime() - fvc::interpolate(U.oldTime()))
|
||||
);
|
||||
|
||||
tmp<fluxFieldType> ddtCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
mesh().Sf() & Uf.oldTime(),
|
||||
phiCorr
|
||||
)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
);
|
||||
|
||||
return ddtCorr;
|
||||
return fvcDdtUfCorr(U, Uf);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1319,13 +1343,6 @@ CrankNicolsonDdtScheme<Type>::fvcDdtPhiCorr
|
||||
const fluxFieldType& phi
|
||||
)
|
||||
{
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
if
|
||||
(
|
||||
U.dimensions() == dimVelocity
|
||||
@ -1339,25 +1356,55 @@ CrankNicolsonDdtScheme<Type>::fvcDdtPhiCorr
|
||||
U.dimensions()
|
||||
);
|
||||
|
||||
dimensionedScalar rDeltaT = rDtCoef_(ddt0);
|
||||
DDt0Field<fluxFieldType>& dphidt0 =
|
||||
ddt0_<fluxFieldType>
|
||||
(
|
||||
"ddt0(" + phi.name() + ')',
|
||||
phi.dimensions()
|
||||
);
|
||||
|
||||
dimensionedScalar rDtCoef = rDtCoef_(ddt0);
|
||||
|
||||
GeometricField<Type, fvPatchField, volMesh> rhoU0
|
||||
(
|
||||
rho.oldTime()*U.oldTime()
|
||||
);
|
||||
|
||||
fluxFieldType phiCorr
|
||||
(
|
||||
phi.oldTime() - (mesh().Sf() & fvc::interpolate(rhoU0))
|
||||
);
|
||||
if (evaluate(ddt0))
|
||||
{
|
||||
ddt0 =
|
||||
rDtCoef0_(ddt0)
|
||||
*(rhoU0 - rho.oldTime().oldTime()*U.oldTime().oldTime())
|
||||
- offCentre_(ddt0());
|
||||
}
|
||||
|
||||
if (evaluate(dphidt0))
|
||||
{
|
||||
dphidt0 =
|
||||
rDtCoef0_(dphidt0)
|
||||
*(phi.oldTime() - phi.oldTime().oldTime())
|
||||
- offCentre_(dphidt0());
|
||||
}
|
||||
|
||||
tmp<fluxFieldType> ddtCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
this->fvcDdtPhiCoeff(rhoU0, phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(rhoU0, phi.oldTime())
|
||||
*(
|
||||
(rDtCoef*phi.oldTime() + offCentre_(dphidt0()))
|
||||
- (
|
||||
mesh().Sf()
|
||||
& fvc::interpolate(rDtCoef*rhoU0 + offCentre_(ddt0()))
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
@ -1369,31 +1416,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdtPhiCorr
|
||||
&& phi.dimensions() == rho.dimensions()*dimVelocity*dimArea
|
||||
)
|
||||
{
|
||||
DDt0Field<GeometricField<Type, fvPatchField, volMesh> >& ddt0 =
|
||||
ddt0_<GeometricField<Type, fvPatchField, volMesh> >
|
||||
(
|
||||
"ddt0(" + U.name() + ')',
|
||||
U.dimensions()
|
||||
);
|
||||
|
||||
dimensionedScalar rDeltaT = rDtCoef_(ddt0);
|
||||
|
||||
fluxFieldType phiCorr
|
||||
(
|
||||
phi.oldTime() - (mesh().Sf() & fvc::interpolate(U.oldTime()))
|
||||
);
|
||||
|
||||
tmp<fluxFieldType> ddtCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
);
|
||||
|
||||
return ddtCorr;
|
||||
return fvcDdtPhiCorr(U, phi);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -489,13 +489,6 @@ EulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
fluxFieldType phiCorr
|
||||
(
|
||||
mesh().Sf() & (Uf.oldTime() - fvc::interpolate(U.oldTime()))
|
||||
@ -505,7 +498,12 @@ EulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
@ -528,13 +526,6 @@ EulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
fluxFieldType phiCorr
|
||||
(
|
||||
phi.oldTime() - (mesh().Sf() & fvc::interpolate(U.oldTime()))
|
||||
@ -544,7 +535,12 @@ EulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
@ -561,21 +557,14 @@ EulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& Uf
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
if
|
||||
(
|
||||
U.dimensions() == dimVelocity
|
||||
&& Uf.dimensions() == rho.dimensions()*dimVelocity
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
GeometricField<Type, fvPatchField, volMesh> rhoU0
|
||||
(
|
||||
rho.oldTime()*U.oldTime()
|
||||
@ -590,7 +579,13 @@ EulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
rhoU0,
|
||||
@ -607,25 +602,7 @@ EulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
&& Uf.dimensions() == rho.dimensions()*dimVelocity
|
||||
)
|
||||
{
|
||||
fluxFieldType phiCorr
|
||||
(
|
||||
mesh().Sf() & (Uf.oldTime() - fvc::interpolate(U.oldTime()))
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
mesh().Sf() & Uf.oldTime(),
|
||||
phiCorr
|
||||
)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
);
|
||||
return fvcDdtUfCorr(U, Uf);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -649,21 +626,14 @@ EulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
const fluxFieldType& phi
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
if
|
||||
(
|
||||
U.dimensions() == dimVelocity
|
||||
&& phi.dimensions() == rho.dimensions()*dimVelocity*dimArea
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
GeometricField<Type, fvPatchField, volMesh> rhoU0
|
||||
(
|
||||
rho.oldTime()*U.oldTime()
|
||||
@ -678,7 +648,13 @@ EulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(rhoU0, phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
@ -690,20 +666,7 @@ EulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
&& phi.dimensions() == rho.dimensions()*dimVelocity*dimArea
|
||||
)
|
||||
{
|
||||
fluxFieldType phiCorr
|
||||
(
|
||||
phi.oldTime() - (mesh().Sf() & fvc::interpolate(U.oldTime()))
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
);
|
||||
return fvcDdtPhiCorr(U, phi);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -600,13 +600,6 @@ SLTSDdtScheme<Type>::fvcDdtUfCorr
|
||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& Uf
|
||||
)
|
||||
{
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
const surfaceScalarField rDeltaT(fvc::interpolate(SLrDeltaT()));
|
||||
|
||||
fluxFieldType phiCorr
|
||||
@ -618,7 +611,12 @@ SLTSDdtScheme<Type>::fvcDdtUfCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
@ -639,13 +637,6 @@ SLTSDdtScheme<Type>::fvcDdtPhiCorr
|
||||
const fluxFieldType& phi
|
||||
)
|
||||
{
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
const surfaceScalarField rDeltaT(fvc::interpolate(SLrDeltaT()));
|
||||
|
||||
fluxFieldType phiCorr
|
||||
@ -657,7 +648,12 @@ SLTSDdtScheme<Type>::fvcDdtPhiCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
@ -674,21 +670,14 @@ SLTSDdtScheme<Type>::fvcDdtUfCorr
|
||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& Uf
|
||||
)
|
||||
{
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
const surfaceScalarField rDeltaT(fvc::interpolate(SLrDeltaT()));
|
||||
|
||||
if
|
||||
(
|
||||
U.dimensions() == dimVelocity
|
||||
&& Uf.dimensions() == dimDensity*dimVelocity
|
||||
)
|
||||
{
|
||||
const surfaceScalarField rDeltaT(fvc::interpolate(SLrDeltaT()));
|
||||
|
||||
GeometricField<Type, fvPatchField, volMesh> rhoU0
|
||||
(
|
||||
rho.oldTime()*U.oldTime()
|
||||
@ -703,7 +692,13 @@ SLTSDdtScheme<Type>::fvcDdtUfCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
rhoU0,
|
||||
@ -720,25 +715,7 @@ SLTSDdtScheme<Type>::fvcDdtUfCorr
|
||||
&& Uf.dimensions() == dimDensity*dimVelocity
|
||||
)
|
||||
{
|
||||
fluxFieldType phiCorr
|
||||
(
|
||||
mesh().Sf() & (Uf.oldTime() - fvc::interpolate(U.oldTime()))
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
mesh().Sf() & Uf.oldTime(),
|
||||
phiCorr
|
||||
)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
);
|
||||
return fvcDdtUfCorr(U, Uf);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -762,21 +739,14 @@ SLTSDdtScheme<Type>::fvcDdtPhiCorr
|
||||
const fluxFieldType& phi
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
if
|
||||
(
|
||||
U.dimensions() == dimVelocity
|
||||
&& phi.dimensions() == rho.dimensions()*dimVelocity*dimArea
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
GeometricField<Type, fvPatchField, volMesh> rhoU0
|
||||
(
|
||||
rho.oldTime()*U.oldTime()
|
||||
@ -791,7 +761,13 @@ SLTSDdtScheme<Type>::fvcDdtPhiCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(rhoU0, phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
@ -803,20 +779,7 @@ SLTSDdtScheme<Type>::fvcDdtPhiCorr
|
||||
&& phi.dimensions() == rho.dimensions()*dimVelocity*dimArea
|
||||
)
|
||||
{
|
||||
fluxFieldType phiCorr
|
||||
(
|
||||
phi.oldTime() - (mesh().Sf() & fvc::interpolate(U.oldTime()))
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
);
|
||||
return fvcDdtPhiCorr(U, phi);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -683,13 +683,6 @@ backwardDdtScheme<Type>::fvcDdtUfCorr
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
scalar deltaT = deltaT_();
|
||||
scalar deltaT0 = deltaT0_(U);
|
||||
|
||||
@ -701,7 +694,12 @@ backwardDdtScheme<Type>::fvcDdtUfCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), (mesh().Sf() & Uf.oldTime()))
|
||||
*rDeltaT
|
||||
*(
|
||||
@ -729,13 +727,6 @@ backwardDdtScheme<Type>::fvcDdtPhiCorr
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
scalar deltaT = deltaT_();
|
||||
scalar deltaT0 = deltaT0_(U);
|
||||
|
||||
@ -747,7 +738,12 @@ backwardDdtScheme<Type>::fvcDdtPhiCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())
|
||||
*rDeltaT
|
||||
*(
|
||||
@ -774,14 +770,13 @@ backwardDdtScheme<Type>::fvcDdtUfCorr
|
||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& Uf
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
if
|
||||
(
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
U.dimensions() == dimVelocity
|
||||
&& Uf.dimensions() == rho.dimensions()*dimVelocity
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
scalar deltaT = deltaT_();
|
||||
scalar deltaT0 = deltaT0_(U);
|
||||
@ -790,12 +785,6 @@ backwardDdtScheme<Type>::fvcDdtUfCorr
|
||||
scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
scalar coefft0 = coefft + coefft00;
|
||||
|
||||
if
|
||||
(
|
||||
U.dimensions() == dimVelocity
|
||||
&& Uf.dimensions() == rho.dimensions()*dimVelocity
|
||||
)
|
||||
{
|
||||
GeometricField<Type, fvPatchField, volMesh> rhoU0
|
||||
(
|
||||
rho.oldTime()*U.oldTime()
|
||||
@ -810,7 +799,13 @@ backwardDdtScheme<Type>::fvcDdtUfCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(rhoU0, mesh().Sf() & Uf.oldTime())
|
||||
*rDeltaT
|
||||
*(
|
||||
@ -829,26 +824,7 @@ backwardDdtScheme<Type>::fvcDdtUfCorr
|
||||
&& Uf.dimensions() == rho.dimensions()*dimVelocity
|
||||
)
|
||||
{
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), mesh().Sf() & Uf.oldTime())
|
||||
*rDeltaT
|
||||
*(
|
||||
mesh().Sf()
|
||||
& (
|
||||
(coefft0*Uf.oldTime() - coefft00*Uf.oldTime().oldTime())
|
||||
- fvc::interpolate
|
||||
(
|
||||
coefft0*U.oldTime() - coefft00*U.oldTime().oldTime()
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
return fvcDdtUfCorr(U, Uf);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -872,14 +848,13 @@ backwardDdtScheme<Type>::fvcDdtPhiCorr
|
||||
const fluxFieldType& phi
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
if
|
||||
(
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
U.dimensions() == dimVelocity
|
||||
&& phi.dimensions() == rho.dimensions()*dimVelocity*dimArea
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
scalar deltaT = deltaT_();
|
||||
scalar deltaT0 = deltaT0_(U);
|
||||
@ -888,12 +863,6 @@ backwardDdtScheme<Type>::fvcDdtPhiCorr
|
||||
scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
scalar coefft0 = coefft + coefft00;
|
||||
|
||||
if
|
||||
(
|
||||
U.dimensions() == dimVelocity
|
||||
&& phi.dimensions() == rho.dimensions()*dimVelocity*dimArea
|
||||
)
|
||||
{
|
||||
GeometricField<Type, fvPatchField, volMesh> rhoU0
|
||||
(
|
||||
rho.oldTime()*U.oldTime()
|
||||
@ -908,7 +877,13 @@ backwardDdtScheme<Type>::fvcDdtPhiCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(rhoU0, phi.oldTime())
|
||||
*rDeltaT
|
||||
*(
|
||||
@ -927,26 +902,7 @@ backwardDdtScheme<Type>::fvcDdtPhiCorr
|
||||
&& phi.dimensions() == rho.dimensions()*dimVelocity*dimArea
|
||||
)
|
||||
{
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())
|
||||
*rDeltaT
|
||||
*(
|
||||
(coefft0*phi.oldTime() - coefft00*phi.oldTime().oldTime())
|
||||
- (
|
||||
mesh().Sf()
|
||||
& fvc::interpolate
|
||||
(
|
||||
coefft0*U.oldTime() - coefft00*U.oldTime().oldTime()
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
return fvcDdtPhiCorr(U, phi);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -495,13 +495,6 @@ localEulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& Uf
|
||||
)
|
||||
{
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
const surfaceScalarField rDeltaT(fvc::interpolate(localRDeltaT()));
|
||||
|
||||
fluxFieldType phiCorr
|
||||
@ -513,7 +506,12 @@ localEulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
@ -534,13 +532,6 @@ localEulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
const fluxFieldType& phi
|
||||
)
|
||||
{
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
const surfaceScalarField rDeltaT(fvc::interpolate(localRDeltaT()));
|
||||
|
||||
fluxFieldType phiCorr
|
||||
@ -552,7 +543,12 @@ localEulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
@ -569,21 +565,14 @@ localEulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& Uf
|
||||
)
|
||||
{
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
const surfaceScalarField rDeltaT(fvc::interpolate(localRDeltaT()));
|
||||
|
||||
if
|
||||
(
|
||||
U.dimensions() == dimVelocity
|
||||
&& Uf.dimensions() == dimDensity*dimVelocity
|
||||
)
|
||||
{
|
||||
const surfaceScalarField rDeltaT(fvc::interpolate(localRDeltaT()));
|
||||
|
||||
GeometricField<Type, fvPatchField, volMesh> rhoU0
|
||||
(
|
||||
rho.oldTime()*U.oldTime()
|
||||
@ -598,7 +587,13 @@ localEulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
rhoU0,
|
||||
@ -615,25 +610,7 @@ localEulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
&& Uf.dimensions() == dimDensity*dimVelocity
|
||||
)
|
||||
{
|
||||
fluxFieldType phiCorr
|
||||
(
|
||||
mesh().Sf() & (Uf.oldTime() - fvc::interpolate(U.oldTime()))
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
mesh().Sf() & Uf.oldTime(),
|
||||
phiCorr
|
||||
)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
);
|
||||
return fvcDdtUfCorr(U, Uf);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -657,21 +634,14 @@ localEulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
const fluxFieldType& phi
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
|
||||
if
|
||||
(
|
||||
U.dimensions() == dimVelocity
|
||||
&& phi.dimensions() == rho.dimensions()*dimVelocity*dimArea
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
GeometricField<Type, fvPatchField, volMesh> rhoU0
|
||||
(
|
||||
rho.oldTime()*U.oldTime()
|
||||
@ -686,7 +656,13 @@ localEulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(rhoU0, phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
@ -698,20 +674,7 @@ localEulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
&& phi.dimensions() == rho.dimensions()*dimVelocity*dimArea
|
||||
)
|
||||
{
|
||||
fluxFieldType phiCorr
|
||||
(
|
||||
phi.oldTime() - (mesh().Sf() & fvc::interpolate(U.oldTime()))
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
);
|
||||
return fvcDdtPhiCorr(U, phi);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user