finiteVolume: Use the GeometricField::New method to construct temporary fields
Avoids database registration of temporary fields, simplifies the code and improves maintainability.
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2015-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2015-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -37,19 +37,11 @@ Foam::StationaryPhaseModel<BasePhaseModel>::zeroField
|
||||
const bool cache
|
||||
) const
|
||||
{
|
||||
return tmp<GeometricField<Type, PatchField, GeoMesh>>
|
||||
return GeometricField<Type, PatchField, GeoMesh>::New
|
||||
(
|
||||
new GeometricField<Type, PatchField, GeoMesh>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
IOobject::groupName(name, this->name()),
|
||||
this->mesh().time().timeName(),
|
||||
this->mesh()
|
||||
),
|
||||
this->mesh(),
|
||||
dimensioned<Type>("zero", dims, pTraits<Type>::zero)
|
||||
)
|
||||
IOobject::groupName(name, this->name()),
|
||||
this->mesh(),
|
||||
dimensioned<Type>("zero", dims, pTraits<Type>::zero)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2014-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2014-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -254,17 +254,9 @@ Foam::BlendedInterfacialModel<modelType>::F() const
|
||||
|
||||
tmp<GeometricField<Type, fvPatchField, volMesh>> x
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
modelType::typeName + ":F",
|
||||
pair_.phase1().mesh().time().timeName(),
|
||||
pair_.phase1().mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
modelType::typeName + ":F",
|
||||
pair_.phase1().mesh(),
|
||||
dimensioned<Type>("zero", modelType::dimF, Zero)
|
||||
)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -932,26 +932,31 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
scalarFlds[i].rename(scalarNames[i]);
|
||||
scalarFlds[i].writeOpt() = IOobject::AUTO_WRITE;
|
||||
scalarFlds[i].checkIn();
|
||||
}
|
||||
forAll(vectorFlds, i)
|
||||
{
|
||||
vectorFlds[i].rename(vectorNames[i]);
|
||||
vectorFlds[i].writeOpt() = IOobject::AUTO_WRITE;
|
||||
vectorFlds[i].checkIn();
|
||||
}
|
||||
forAll(sphericalTensorFlds, i)
|
||||
{
|
||||
sphericalTensorFlds[i].rename(sphericalTensorNames[i]);
|
||||
sphericalTensorFlds[i].writeOpt() = IOobject::AUTO_WRITE;
|
||||
sphericalTensorFlds[i].checkIn();
|
||||
}
|
||||
forAll(symmTensorFlds, i)
|
||||
{
|
||||
symmTensorFlds[i].rename(symmTensorNames[i]);
|
||||
symmTensorFlds[i].writeOpt() = IOobject::AUTO_WRITE;
|
||||
symmTensorFlds[i].checkIn();
|
||||
}
|
||||
forAll(tensorFlds, i)
|
||||
{
|
||||
tensorFlds[i].rename(tensorNames[i]);
|
||||
tensorFlds[i].writeOpt() = IOobject::AUTO_WRITE;
|
||||
tensorFlds[i].checkIn();
|
||||
}
|
||||
|
||||
// Surface ones.
|
||||
@ -959,26 +964,31 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
surfScalarFlds[i].rename(surfScalarNames[i]);
|
||||
surfScalarFlds[i].writeOpt() = IOobject::AUTO_WRITE;
|
||||
surfScalarFlds[i].checkIn();
|
||||
}
|
||||
forAll(surfVectorFlds, i)
|
||||
{
|
||||
surfVectorFlds[i].rename(surfVectorNames[i]);
|
||||
surfVectorFlds[i].writeOpt() = IOobject::AUTO_WRITE;
|
||||
surfVectorFlds[i].checkIn();
|
||||
}
|
||||
forAll(surfSphericalTensorFlds, i)
|
||||
{
|
||||
surfSphericalTensorFlds[i].rename(surfSphericalTensorNames[i]);
|
||||
surfSphericalTensorFlds[i].writeOpt() = IOobject::AUTO_WRITE;
|
||||
surfSphericalTensorFlds[i].checkIn();
|
||||
}
|
||||
forAll(surfSymmTensorFlds, i)
|
||||
{
|
||||
surfSymmTensorFlds[i].rename(surfSymmTensorNames[i]);
|
||||
surfSymmTensorFlds[i].writeOpt() = IOobject::AUTO_WRITE;
|
||||
surfSymmTensorFlds[i].checkIn();
|
||||
}
|
||||
forAll(surfTensorNames, i)
|
||||
{
|
||||
surfTensorFlds[i].rename(surfTensorNames[i]);
|
||||
surfTensorFlds[i].writeOpt() = IOobject::AUTO_WRITE;
|
||||
surfTensorFlds[i].checkIn();
|
||||
}
|
||||
|
||||
subsetter.subMesh().write();
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -93,7 +93,8 @@ tmp<GeometricField<Type, fvPatchField, volMesh>> fvMeshSubset::interpolate
|
||||
sMesh.time().timeName(),
|
||||
sMesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
sMesh,
|
||||
vf.dimensions(),
|
||||
@ -230,7 +231,8 @@ tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> fvMeshSubset::interpolate
|
||||
sMesh.time().timeName(),
|
||||
sMesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
sMesh,
|
||||
vf.dimensions(),
|
||||
@ -414,7 +416,8 @@ fvMeshSubset::interpolate
|
||||
sMesh.time().timeName(),
|
||||
sMesh.thisDb(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
sMesh,
|
||||
vf.dimensions(),
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -143,17 +143,9 @@ Foam::motionSmootherAlgo::avg
|
||||
{
|
||||
tmp<GeometricField<Type, pointPatchField, pointMesh>> tres
|
||||
(
|
||||
new GeometricField<Type, pointPatchField, pointMesh>
|
||||
GeometricField<Type, pointPatchField, pointMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"avg("+fld.name()+')',
|
||||
fld.time().timeName(),
|
||||
fld.db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
"avg("+fld.name()+')',
|
||||
fld.mesh(),
|
||||
dimensioned<Type>("zero", fld.dimensions(), Zero)
|
||||
)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2016-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2016-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -45,7 +45,7 @@ Foam::tmp<Foam::volVectorField> Foam::constrainHbyA
|
||||
}
|
||||
else
|
||||
{
|
||||
tHbyANew = new volVectorField("HbyA", tHbyA);
|
||||
tHbyANew = volVectorField::New("HbyA", tHbyA);
|
||||
}
|
||||
|
||||
volVectorField& HbyA = tHbyANew.ref();
|
||||
|
||||
@ -185,14 +185,9 @@ Foam::levelSetAverage
|
||||
|
||||
tmp<GeometricField<Type, fvPatchField, volMesh>> tResult
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
positiveC.name() + ":levelSetAverage",
|
||||
mesh.time().timeName(),
|
||||
mesh
|
||||
),
|
||||
positiveC.name() + ":levelSetAverage",
|
||||
mesh,
|
||||
dimensioned<Type>("0", positiveC.dimensions(), Zero)
|
||||
)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -46,70 +46,57 @@ EulerD2dt2Scheme<Type>::fvcD2dt2
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT2 =
|
||||
4.0/sqr(mesh().time().deltaT() + mesh().time().deltaT0());
|
||||
|
||||
IOobject d2dt2IOobject
|
||||
const dimensionedScalar rDeltaT2
|
||||
(
|
||||
"d2dt2("+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
4.0/sqr(mesh().time().deltaT() + mesh().time().deltaT0())
|
||||
);
|
||||
|
||||
scalar deltaT = mesh().time().deltaTValue();
|
||||
scalar deltaT0 = mesh().time().deltaT0Value();
|
||||
const word d2dt2name("d2dt2("+vf.name()+')');
|
||||
|
||||
scalar coefft = (deltaT + deltaT0)/(2*deltaT);
|
||||
scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
|
||||
scalar coefft0 = coefft + coefft00;
|
||||
const scalar deltaT = mesh().time().deltaTValue();
|
||||
const scalar deltaT0 = mesh().time().deltaT0Value();
|
||||
|
||||
const scalar coefft = (deltaT + deltaT0)/(2*deltaT);
|
||||
const scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
|
||||
const scalar coefft0 = coefft + coefft00;
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
scalar halfRdeltaT2 = rDeltaT2.value()/2.0;
|
||||
const dimensionedScalar halfRdeltaT2(rDeltaT2/2.0);
|
||||
|
||||
scalarField VV0 = mesh().V() + mesh().V0();
|
||||
scalarField V0V00 = mesh().V0() + mesh().V00();
|
||||
const volScalarField::Internal VV0(mesh().V() + mesh().V0());
|
||||
const volScalarField::Internal V0V00(mesh().V0() + mesh().V00());
|
||||
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
d2dt2name,
|
||||
halfRdeltaT2*
|
||||
(
|
||||
d2dt2IOobject,
|
||||
mesh(),
|
||||
rDeltaT2.dimensions()*vf.dimensions(),
|
||||
halfRdeltaT2*
|
||||
(
|
||||
coefft*VV0*vf.primitiveField()
|
||||
coefft*VV0*vf()
|
||||
|
||||
- (coefft*VV0 + coefft00*V0V00)
|
||||
*vf.oldTime().primitiveField()
|
||||
- (coefft*VV0 + coefft00*V0V00)
|
||||
*vf.oldTime()()
|
||||
|
||||
+ (coefft00*V0V00)*vf.oldTime().oldTime().primitiveField()
|
||||
)/mesh().V(),
|
||||
rDeltaT2.value()*
|
||||
(
|
||||
coefft*vf.boundaryField()
|
||||
- coefft0*vf.oldTime().boundaryField()
|
||||
+ coefft00*vf.oldTime().oldTime().boundaryField()
|
||||
)
|
||||
+ (coefft00*V0V00)*vf.oldTime().oldTime()()
|
||||
)/mesh().V(),
|
||||
rDeltaT2.value()*
|
||||
(
|
||||
coefft*vf.boundaryField()
|
||||
- coefft0*vf.oldTime().boundaryField()
|
||||
+ coefft00*vf.oldTime().oldTime().boundaryField()
|
||||
)
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
d2dt2name,
|
||||
rDeltaT2*
|
||||
(
|
||||
d2dt2IOobject,
|
||||
rDeltaT2*
|
||||
(
|
||||
coefft*vf
|
||||
- coefft0*vf.oldTime()
|
||||
+ coefft00*vf.oldTime().oldTime()
|
||||
)
|
||||
coefft*vf
|
||||
- coefft0*vf.oldTime()
|
||||
+ coefft00*vf.oldTime().oldTime()
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -124,107 +111,93 @@ EulerD2dt2Scheme<Type>::fvcD2dt2
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT2 =
|
||||
4.0/sqr(mesh().time().deltaT() + mesh().time().deltaT0());
|
||||
|
||||
IOobject d2dt2IOobject
|
||||
const dimensionedScalar rDeltaT2
|
||||
(
|
||||
"d2dt2("+rho.name()+','+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
4.0/sqr(mesh().time().deltaT() + mesh().time().deltaT0())
|
||||
);
|
||||
|
||||
scalar deltaT = mesh().time().deltaTValue();
|
||||
scalar deltaT0 = mesh().time().deltaT0Value();
|
||||
const word d2dt2name("d2dt2("+rho.name()+','+vf.name()+')');
|
||||
|
||||
scalar coefft = (deltaT + deltaT0)/(2*deltaT);
|
||||
scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
|
||||
const scalar deltaT = mesh().time().deltaTValue();
|
||||
const scalar deltaT0 = mesh().time().deltaT0Value();
|
||||
|
||||
const scalar coefft = (deltaT + deltaT0)/(2*deltaT);
|
||||
const scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
scalar halfRdeltaT2 = 0.5*rDeltaT2.value();
|
||||
scalar quarterRdeltaT2 = 0.25*rDeltaT2.value();
|
||||
const dimensionedScalar halfRdeltaT2(0.5*rDeltaT2);
|
||||
const dimensionedScalar quarterRdeltaT2(0.25*rDeltaT2);
|
||||
|
||||
const scalarField VV0rhoRho0
|
||||
const volScalarField::Internal VV0rhoRho0
|
||||
(
|
||||
(mesh().V() + mesh().V0())
|
||||
* (rho.primitiveField() + rho.oldTime().primitiveField())
|
||||
(mesh().V() + mesh().V0())*(rho() + rho.oldTime()())
|
||||
);
|
||||
|
||||
const scalarField V0V00rho0Rho00
|
||||
const volScalarField::Internal V0V00rho0Rho00
|
||||
(
|
||||
(mesh().V0() + mesh().V00())
|
||||
* (
|
||||
rho.oldTime().primitiveField()
|
||||
+ rho.oldTime().oldTime().primitiveField()
|
||||
*(
|
||||
rho.oldTime()()
|
||||
+ rho.oldTime().oldTime()()
|
||||
)
|
||||
);
|
||||
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
d2dt2name,
|
||||
quarterRdeltaT2*
|
||||
(
|
||||
d2dt2IOobject,
|
||||
mesh(),
|
||||
rDeltaT2.dimensions()*rho.dimensions()*vf.dimensions(),
|
||||
quarterRdeltaT2*
|
||||
(
|
||||
coefft*VV0rhoRho0*vf.primitiveField()
|
||||
coefft*VV0rhoRho0*vf()
|
||||
|
||||
- (coefft*VV0rhoRho0 + coefft00*V0V00rho0Rho00)
|
||||
*vf.oldTime().primitiveField()
|
||||
- (coefft*VV0rhoRho0 + coefft00*V0V00rho0Rho00)
|
||||
*vf.oldTime()()
|
||||
|
||||
+ (coefft00*V0V00rho0Rho00)
|
||||
*vf.oldTime().oldTime().primitiveField()
|
||||
)/mesh().V(),
|
||||
halfRdeltaT2*
|
||||
(
|
||||
+ (coefft00*V0V00rho0Rho00)
|
||||
*vf.oldTime().oldTime()()
|
||||
)/mesh().V(),
|
||||
halfRdeltaT2.value()*
|
||||
(
|
||||
coefft
|
||||
*(rho.boundaryField() + rho.oldTime().boundaryField())
|
||||
*vf.boundaryField()
|
||||
|
||||
- (
|
||||
coefft
|
||||
*(rho.boundaryField() + rho.oldTime().boundaryField())
|
||||
*vf.boundaryField()
|
||||
|
||||
- (
|
||||
coefft
|
||||
*(
|
||||
rho.boundaryField()
|
||||
+ rho.oldTime().boundaryField()
|
||||
)
|
||||
+ coefft00
|
||||
*(
|
||||
rho.oldTime().boundaryField()
|
||||
+ rho.oldTime().oldTime().boundaryField()
|
||||
)
|
||||
)*vf.oldTime().boundaryField()
|
||||
|
||||
*(
|
||||
rho.boundaryField()
|
||||
+ rho.oldTime().boundaryField()
|
||||
)
|
||||
+ coefft00
|
||||
*(
|
||||
rho.oldTime().boundaryField()
|
||||
+ rho.oldTime().oldTime().boundaryField()
|
||||
)*vf.oldTime().oldTime().boundaryField()
|
||||
)
|
||||
)
|
||||
)*vf.oldTime().boundaryField()
|
||||
|
||||
+ coefft00
|
||||
*(
|
||||
rho.oldTime().boundaryField()
|
||||
+ rho.oldTime().oldTime().boundaryField()
|
||||
)*vf.oldTime().oldTime().boundaryField()
|
||||
)
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
dimensionedScalar halfRdeltaT2 = 0.5*rDeltaT2;
|
||||
const dimensionedScalar halfRdeltaT2 = 0.5*rDeltaT2;
|
||||
|
||||
const volScalarField rhoRho0(rho + rho.oldTime());
|
||||
const volScalarField rho0Rho00(rho.oldTime() +rho.oldTime().oldTime());
|
||||
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
d2dt2name,
|
||||
halfRdeltaT2*
|
||||
(
|
||||
d2dt2IOobject,
|
||||
halfRdeltaT2*
|
||||
(
|
||||
coefft*rhoRho0*vf
|
||||
- (coefft*rhoRho0 + coefft00*rho0Rho00)*vf.oldTime()
|
||||
+ coefft00*rho0Rho00*vf.oldTime().oldTime()
|
||||
)
|
||||
coefft*rhoRho0*vf
|
||||
- (coefft*rhoRho0 + coefft00*rho0Rho00)*vf.oldTime()
|
||||
+ coefft00*rho0Rho00*vf.oldTime().oldTime()
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -249,18 +222,18 @@ EulerD2dt2Scheme<Type>::fvmD2dt2
|
||||
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalar deltaT = mesh().time().deltaTValue();
|
||||
scalar deltaT0 = mesh().time().deltaT0Value();
|
||||
const scalar deltaT = mesh().time().deltaTValue();
|
||||
const scalar deltaT0 = mesh().time().deltaT0Value();
|
||||
|
||||
scalar coefft = (deltaT + deltaT0)/(2*deltaT);
|
||||
scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
|
||||
scalar coefft0 = coefft + coefft00;
|
||||
const scalar coefft = (deltaT + deltaT0)/(2*deltaT);
|
||||
const scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
|
||||
const scalar coefft0 = coefft + coefft00;
|
||||
|
||||
scalar rDeltaT2 = 4.0/sqr(deltaT + deltaT0);
|
||||
const scalar rDeltaT2 = 4.0/sqr(deltaT + deltaT0);
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
scalar halfRdeltaT2 = rDeltaT2/2.0;
|
||||
const scalar halfRdeltaT2 = rDeltaT2/2.0;
|
||||
|
||||
const scalarField VV0(mesh().V() + mesh().V0());
|
||||
const scalarField V0V00(mesh().V0() + mesh().V00());
|
||||
@ -310,17 +283,17 @@ EulerD2dt2Scheme<Type>::fvmD2dt2
|
||||
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalar deltaT = mesh().time().deltaTValue();
|
||||
scalar deltaT0 = mesh().time().deltaT0Value();
|
||||
const scalar deltaT = mesh().time().deltaTValue();
|
||||
const scalar deltaT0 = mesh().time().deltaT0Value();
|
||||
|
||||
scalar coefft = (deltaT + deltaT0)/(2*deltaT);
|
||||
scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
|
||||
const scalar coefft = (deltaT + deltaT0)/(2*deltaT);
|
||||
const scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
|
||||
|
||||
scalar rDeltaT2 = 4.0/sqr(deltaT + deltaT0);
|
||||
const scalar rDeltaT2 = 4.0/sqr(deltaT + deltaT0);
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
scalar halfRdeltaT2 = 0.5*rDeltaT2;
|
||||
const scalar halfRdeltaT2 = 0.5*rDeltaT2;
|
||||
|
||||
const scalarField VV0(mesh().V() + mesh().V0());
|
||||
const scalarField V0V00(mesh().V0() + mesh().V00());
|
||||
@ -370,17 +343,17 @@ EulerD2dt2Scheme<Type>::fvmD2dt2
|
||||
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalar deltaT = mesh().time().deltaTValue();
|
||||
scalar deltaT0 = mesh().time().deltaT0Value();
|
||||
const scalar deltaT = mesh().time().deltaTValue();
|
||||
const scalar deltaT0 = mesh().time().deltaT0Value();
|
||||
|
||||
scalar coefft = (deltaT + deltaT0)/(2*deltaT);
|
||||
scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
|
||||
const scalar coefft = (deltaT + deltaT0)/(2*deltaT);
|
||||
const scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0);
|
||||
|
||||
scalar rDeltaT2 = 4.0/sqr(deltaT + deltaT0);
|
||||
const scalar rDeltaT2 = 4.0/sqr(deltaT + deltaT0);
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
scalar quarterRdeltaT2 = 0.25*rDeltaT2;
|
||||
const scalar quarterRdeltaT2 = 0.25*rDeltaT2;
|
||||
|
||||
const scalarField VV0rhoRho0
|
||||
(
|
||||
@ -410,7 +383,7 @@ EulerD2dt2Scheme<Type>::fvmD2dt2
|
||||
}
|
||||
else
|
||||
{
|
||||
scalar halfRdeltaT2 = 0.5*rDeltaT2;
|
||||
const scalar halfRdeltaT2 = 0.5*rDeltaT2;
|
||||
|
||||
const scalarField rhoRho0
|
||||
(
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -46,25 +46,15 @@ steadyStateD2dt2Scheme<Type>::fvcD2dt2
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
"d2dt2("+vf.name()+')',
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"d2dt2("+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
"0",
|
||||
vf.dimensions()/dimTime/dimTime,
|
||||
Zero
|
||||
)
|
||||
"0",
|
||||
vf.dimensions()/dimTime/dimTime,
|
||||
Zero
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -78,25 +68,15 @@ steadyStateD2dt2Scheme<Type>::fvcD2dt2
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
"d2dt2("+rho.name()+','+vf.name()+')',
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"d2dt2("+rho.name()+','+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
"0",
|
||||
rho.dimensions()*vf.dimensions()/dimTime/dimTime,
|
||||
Zero
|
||||
)
|
||||
"0",
|
||||
rho.dimensions()*vf.dimensions()/dimTime/dimTime,
|
||||
Zero
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -150,20 +150,15 @@ CoEulerDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
const volScalarField rDeltaT(CorDeltaT());
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+dt.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+dt.name()+')');
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
tmp<GeometricField<Type, fvPatchField, volMesh>> tdtdt
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
@ -184,9 +179,9 @@ CoEulerDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
@ -210,26 +205,19 @@ CoEulerDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
const volScalarField rDeltaT(CorDeltaT());
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+vf.name()+')');
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
mesh(),
|
||||
rDeltaT.dimensions()*vf.dimensions(),
|
||||
rDeltaT.primitiveField()*
|
||||
ddtName,
|
||||
rDeltaT()*
|
||||
(
|
||||
vf.primitiveField()
|
||||
- vf.oldTime().primitiveField()*mesh().Vsc0()/mesh().Vsc()
|
||||
vf()
|
||||
- vf.oldTime()()*mesh().Vsc0()/mesh().Vsc()
|
||||
),
|
||||
rDeltaT.boundaryField()*
|
||||
(
|
||||
@ -242,9 +230,9 @@ CoEulerDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
rDeltaT*(vf - vf.oldTime())
|
||||
)
|
||||
);
|
||||
@ -262,26 +250,19 @@ CoEulerDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
const volScalarField rDeltaT(CorDeltaT());
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+rho.name()+','+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+rho.name()+','+vf.name()+')');
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
mesh(),
|
||||
rDeltaT.dimensions()*rho.dimensions()*vf.dimensions(),
|
||||
rDeltaT.primitiveField()*rho.value()*
|
||||
ddtName,
|
||||
rDeltaT()*rho.value()*
|
||||
(
|
||||
vf.primitiveField()
|
||||
- vf.oldTime().primitiveField()*mesh().Vsc0()/mesh().Vsc()
|
||||
vf()
|
||||
- vf.oldTime()()*mesh().Vsc0()/mesh().Vsc()
|
||||
),
|
||||
rDeltaT.boundaryField()*rho.value()*
|
||||
(
|
||||
@ -294,9 +275,9 @@ CoEulerDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
rDeltaT*rho*(vf - vf.oldTime())
|
||||
)
|
||||
);
|
||||
@ -314,27 +295,20 @@ CoEulerDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
const volScalarField rDeltaT(CorDeltaT());
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+rho.name()+','+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+rho.name()+','+vf.name()+')');
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
mesh(),
|
||||
rDeltaT.dimensions()*rho.dimensions()*vf.dimensions(),
|
||||
rDeltaT.primitiveField()*
|
||||
ddtName,
|
||||
rDeltaT()*
|
||||
(
|
||||
rho.primitiveField()*vf.primitiveField()
|
||||
- rho.oldTime().primitiveField()
|
||||
*vf.oldTime().primitiveField()*mesh().Vsc0()/mesh().Vsc()
|
||||
rho()*vf()
|
||||
- rho.oldTime()()
|
||||
*vf.oldTime()()*mesh().Vsc0()/mesh().Vsc()
|
||||
),
|
||||
rDeltaT.boundaryField()*
|
||||
(
|
||||
@ -349,9 +323,9 @@ CoEulerDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
rDeltaT*(rho*vf - rho.oldTime()*vf.oldTime())
|
||||
)
|
||||
);
|
||||
@ -370,32 +344,24 @@ CoEulerDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
const volScalarField rDeltaT(CorDeltaT());
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+alpha.name()+','+rho.name()+','+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+alpha.name()+','+rho.name()+','+vf.name()+')');
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
mesh(),
|
||||
rDeltaT.dimensions()
|
||||
*alpha.dimensions()*rho.dimensions()*vf.dimensions(),
|
||||
rDeltaT.primitiveField()*
|
||||
ddtName,
|
||||
rDeltaT()*
|
||||
(
|
||||
alpha.primitiveField()
|
||||
*rho.primitiveField()
|
||||
*vf.primitiveField()
|
||||
alpha()
|
||||
*rho()
|
||||
*vf()
|
||||
|
||||
- alpha.oldTime().primitiveField()
|
||||
*rho.oldTime().primitiveField()
|
||||
*vf.oldTime().primitiveField()*mesh().Vsc0()/mesh().Vsc()
|
||||
- alpha.oldTime()()
|
||||
*rho.oldTime()()
|
||||
*vf.oldTime()()*mesh().Vsc0()/mesh().Vsc()
|
||||
),
|
||||
rDeltaT.boundaryField()*
|
||||
(
|
||||
@ -414,9 +380,9 @@ CoEulerDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
rDeltaT
|
||||
*(
|
||||
alpha*rho*vf
|
||||
@ -446,7 +412,7 @@ CoEulerDdtScheme<Type>::fvmDdt
|
||||
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalarField rDeltaT(CorDeltaT()().primitiveField());
|
||||
const scalarField rDeltaT(CorDeltaT()().primitiveField());
|
||||
|
||||
fvm.diag() = rDeltaT*mesh().Vsc();
|
||||
|
||||
@ -481,7 +447,7 @@ CoEulerDdtScheme<Type>::fvmDdt
|
||||
);
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalarField rDeltaT(CorDeltaT()().primitiveField());
|
||||
const scalarField rDeltaT(CorDeltaT()().primitiveField());
|
||||
|
||||
fvm.diag() = rDeltaT*rho.value()*mesh().Vsc();
|
||||
|
||||
@ -518,7 +484,7 @@ CoEulerDdtScheme<Type>::fvmDdt
|
||||
);
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalarField rDeltaT(CorDeltaT()().primitiveField());
|
||||
const scalarField rDeltaT(CorDeltaT()().primitiveField());
|
||||
|
||||
fvm.diag() = rDeltaT*rho.primitiveField()*mesh().Vsc();
|
||||
|
||||
@ -558,7 +524,7 @@ CoEulerDdtScheme<Type>::fvmDdt
|
||||
);
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalarField rDeltaT(CorDeltaT()().primitiveField());
|
||||
const scalarField rDeltaT(CorDeltaT()().primitiveField());
|
||||
|
||||
fvm.diag() =
|
||||
rDeltaT*alpha.primitiveField()*rho.primitiveField()*mesh().Vsc();
|
||||
@ -598,19 +564,10 @@ CoEulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
phiUf0 - fvc::dotInterpolate(mesh().Sf(), U.oldTime())
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phiUf0, phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phiUf0, phiCorr)*rDeltaT*phiCorr
|
||||
);
|
||||
}
|
||||
|
||||
@ -630,19 +587,11 @@ CoEulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
phi.oldTime() - fvc::dotInterpolate(mesh().Sf(), U.oldTime())
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
);
|
||||
}
|
||||
|
||||
@ -672,20 +621,11 @@ CoEulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
fluxFieldType phiUf0(mesh().Sf() & Uf.oldTime());
|
||||
fluxFieldType phiCorr(phiUf0 - fvc::dotInterpolate(mesh().Sf(), rhoU0));
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(rhoU0, phiUf0, phiCorr, rho.oldTime())
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
this->fvcDdtPhiCoeff(rhoU0, phiUf0, phiCorr, rho.oldTime())
|
||||
*rDeltaT*phiCorr
|
||||
);
|
||||
}
|
||||
else if
|
||||
@ -700,25 +640,16 @@ CoEulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
phiUf0 - fvc::dotInterpolate(mesh().Sf(), U.oldTime())
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
phiUf0,
|
||||
phiCorr,
|
||||
rho.oldTime()
|
||||
)*rDeltaT*phiCorr
|
||||
)
|
||||
U.oldTime(),
|
||||
phiUf0,
|
||||
phiCorr,
|
||||
rho.oldTime()
|
||||
)*rDeltaT*phiCorr
|
||||
);
|
||||
}
|
||||
else
|
||||
@ -741,7 +672,7 @@ CoEulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
const fluxFieldType& phi
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
if
|
||||
(
|
||||
@ -759,25 +690,16 @@ CoEulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
phi.oldTime() - fvc::dotInterpolate(mesh().Sf(), rhoU0)
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
rhoU0,
|
||||
phi.oldTime(),
|
||||
phiCorr,
|
||||
rho.oldTime()
|
||||
)*rDeltaT*phiCorr
|
||||
)
|
||||
rhoU0,
|
||||
phi.oldTime(),
|
||||
phiCorr,
|
||||
rho.oldTime()
|
||||
)*rDeltaT*phiCorr
|
||||
);
|
||||
}
|
||||
else if
|
||||
@ -791,25 +713,16 @@ CoEulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
phi.oldTime() - fvc::dotInterpolate(mesh().Sf(), U.oldTime())
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
phi.oldTime(),
|
||||
phiCorr,
|
||||
rho.oldTime()
|
||||
)*rDeltaT*phiCorr
|
||||
)
|
||||
U.oldTime(),
|
||||
phi.oldTime(),
|
||||
phiCorr,
|
||||
rho.oldTime()
|
||||
)*rDeltaT*phiCorr
|
||||
);
|
||||
}
|
||||
else
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -354,18 +354,13 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
||||
dt.dimensions()
|
||||
);
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt(" + dt.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt(" + dt.name() + ')');
|
||||
|
||||
tmp<GeometricField<Type, fvPatchField, volMesh>> tdtdt
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
@ -416,12 +411,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
||||
vf.dimensions()
|
||||
);
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt(" + vf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt(" + vf.name() + ')');
|
||||
|
||||
dimensionedScalar rDtCoef = rDtCoef_(ddt0);
|
||||
|
||||
@ -450,23 +440,20 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
||||
);
|
||||
}
|
||||
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
ddtName,
|
||||
(
|
||||
ddtIOobject,
|
||||
rDtCoef*
|
||||
(
|
||||
rDtCoef*
|
||||
(
|
||||
mesh().V()*vf
|
||||
- mesh().V0()*vf.oldTime()
|
||||
) - mesh().V0()*offCentre_(ddt0()())
|
||||
)/mesh().V(),
|
||||
rDtCoef.value()*
|
||||
(
|
||||
vf.boundaryField() - vf.oldTime().boundaryField()
|
||||
) - offCentre_(ff(ddt0.boundaryField()))
|
||||
)
|
||||
mesh().V()*vf
|
||||
- mesh().V0()*vf.oldTime()
|
||||
) - mesh().V0()*offCentre_(ddt0()())
|
||||
)/mesh().V(),
|
||||
rDtCoef.value()*
|
||||
(
|
||||
vf.boundaryField() - vf.oldTime().boundaryField()
|
||||
) - offCentre_(ff(ddt0.boundaryField()))
|
||||
);
|
||||
}
|
||||
else
|
||||
@ -477,13 +464,10 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
||||
- offCentre_(ddt0());
|
||||
}
|
||||
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
(
|
||||
ddtIOobject,
|
||||
rDtCoef*(vf - vf.oldTime()) - offCentre_(ddt0())
|
||||
)
|
||||
ddtName,
|
||||
rDtCoef*(vf - vf.oldTime()) - offCentre_(ddt0())
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -504,12 +488,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
||||
rho.dimensions()*vf.dimensions()
|
||||
);
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt(" + rho.name() + ',' + vf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt(" + rho.name() + ',' + vf.name() + ')');
|
||||
|
||||
dimensionedScalar rDtCoef = rDtCoef_(ddt0);
|
||||
|
||||
@ -538,25 +517,20 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
||||
);
|
||||
}
|
||||
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
ddtName,
|
||||
(
|
||||
ddtIOobject,
|
||||
mesh(),
|
||||
rDtCoef.dimensions()*rho.dimensions()*vf.dimensions(),
|
||||
rDtCoef*rho*
|
||||
(
|
||||
rDtCoef.value()*rho.value()*
|
||||
(
|
||||
mesh().V()*vf.primitiveField()
|
||||
- mesh().V0()*vf.oldTime().primitiveField()
|
||||
) - mesh().V0()*offCentre_(ddt0.primitiveField())
|
||||
)/mesh().V(),
|
||||
rDtCoef.value()*rho.value()*
|
||||
(
|
||||
vf.boundaryField() - vf.oldTime().boundaryField()
|
||||
) - offCentre_(ff(ddt0.boundaryField()))
|
||||
)
|
||||
mesh().V()*vf()
|
||||
- mesh().V0()*vf.oldTime()()
|
||||
) - mesh().V0()*offCentre_(ddt0())()
|
||||
)/mesh().V(),
|
||||
rDtCoef.value()*rho.value()*
|
||||
(
|
||||
vf.boundaryField() - vf.oldTime().boundaryField()
|
||||
) - offCentre_(ff(ddt0.boundaryField()))
|
||||
);
|
||||
}
|
||||
else
|
||||
@ -567,13 +541,10 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
||||
- offCentre_(ddt0());
|
||||
}
|
||||
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
(
|
||||
ddtIOobject,
|
||||
rDtCoef*rho*(vf - vf.oldTime()) - offCentre_(ddt0())
|
||||
)
|
||||
ddtName,
|
||||
rDtCoef*rho*(vf - vf.oldTime()) - offCentre_(ddt0())
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -594,12 +565,7 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
||||
rho.dimensions()*vf.dimensions()
|
||||
);
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt(" + rho.name() + ',' + vf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt(" + rho.name() + ',' + vf.name() + ')');
|
||||
|
||||
dimensionedScalar rDtCoef = rDtCoef_(ddt0);
|
||||
|
||||
@ -632,27 +598,22 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
||||
);
|
||||
}
|
||||
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
ddtName,
|
||||
(
|
||||
ddtIOobject,
|
||||
mesh(),
|
||||
rDtCoef.dimensions()*rho.dimensions()*vf.dimensions(),
|
||||
rDtCoef*
|
||||
(
|
||||
rDtCoef.value()*
|
||||
(
|
||||
mesh().V()*rho.primitiveField()*vf.primitiveField()
|
||||
- mesh().V0()*rho.oldTime().primitiveField()
|
||||
*vf.oldTime().primitiveField()
|
||||
) - mesh().V00()*offCentre_(ddt0.primitiveField())
|
||||
)/mesh().V(),
|
||||
rDtCoef.value()*
|
||||
(
|
||||
rho.boundaryField()*vf.boundaryField()
|
||||
- rho.oldTime().boundaryField()*vf.oldTime().boundaryField()
|
||||
) - offCentre_(ff(ddt0.boundaryField()))
|
||||
)
|
||||
mesh().V()*rho()*vf()
|
||||
- mesh().V0()*rho.oldTime()()
|
||||
*vf.oldTime()()
|
||||
) - mesh().V00()*offCentre_(ddt0())()
|
||||
)/mesh().V(),
|
||||
rDtCoef.value()*
|
||||
(
|
||||
rho.boundaryField()*vf.boundaryField()
|
||||
- rho.oldTime().boundaryField()*vf.oldTime().boundaryField()
|
||||
) - offCentre_(ff(ddt0.boundaryField()))
|
||||
);
|
||||
}
|
||||
else
|
||||
@ -666,14 +627,10 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
||||
) - offCentre_(ddt0());
|
||||
}
|
||||
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
(
|
||||
ddtIOobject,
|
||||
rDtCoef*(rho*vf - rho.oldTime()*vf.oldTime())
|
||||
- offCentre_(ddt0())
|
||||
)
|
||||
ddtName,
|
||||
rDtCoef*(rho*vf - rho.oldTime()*vf.oldTime()) - offCentre_(ddt0())
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -695,11 +652,9 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
||||
alpha.dimensions()*rho.dimensions()*vf.dimensions()
|
||||
);
|
||||
|
||||
IOobject ddtIOobject
|
||||
const word ddtName
|
||||
(
|
||||
"ddt(" + alpha.name() + ',' + rho.name() + ',' + vf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
"ddt(" + alpha.name() + ',' + rho.name() + ',' + vf.name() + ')'
|
||||
);
|
||||
|
||||
dimensionedScalar rDtCoef = rDtCoef_(ddt0);
|
||||
@ -741,39 +696,26 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
||||
);
|
||||
}
|
||||
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
ddtName,
|
||||
(
|
||||
ddtIOobject,
|
||||
mesh(),
|
||||
rDtCoef.dimensions()
|
||||
*alpha.dimensions()*rho.dimensions()*vf.dimensions(),
|
||||
(
|
||||
rDtCoef.value()*
|
||||
(
|
||||
mesh().V()
|
||||
*alpha.primitiveField()
|
||||
*rho.primitiveField()
|
||||
*vf.primitiveField()
|
||||
|
||||
- mesh().V0()
|
||||
*alpha.oldTime().primitiveField()
|
||||
*rho.oldTime().primitiveField()
|
||||
*vf.oldTime().primitiveField()
|
||||
) - mesh().V00()*offCentre_(ddt0.primitiveField())
|
||||
)/mesh().V(),
|
||||
rDtCoef.value()*
|
||||
(
|
||||
alpha.boundaryField()
|
||||
*rho.boundaryField()
|
||||
*vf.boundaryField()
|
||||
mesh().V()*alpha()*rho()*vf()
|
||||
- mesh().V0()*alpha.oldTime()()*rho.oldTime()()*vf.oldTime()()
|
||||
) - mesh().V00()*offCentre_(ddt0())()
|
||||
)/mesh().V(),
|
||||
rDtCoef.value()*
|
||||
(
|
||||
alpha.boundaryField()
|
||||
*rho.boundaryField()
|
||||
*vf.boundaryField()
|
||||
|
||||
- alpha.oldTime().boundaryField()
|
||||
*rho.oldTime().boundaryField()
|
||||
*vf.oldTime().boundaryField()
|
||||
) - offCentre_(ff(ddt0.boundaryField()))
|
||||
)
|
||||
- alpha.oldTime().boundaryField()
|
||||
*rho.oldTime().boundaryField()
|
||||
*vf.oldTime().boundaryField()
|
||||
) - offCentre_(ff(ddt0.boundaryField()))
|
||||
);
|
||||
}
|
||||
else
|
||||
@ -792,18 +734,15 @@ CrankNicolsonDdtScheme<Type>::fvcDdt
|
||||
) - offCentre_(ddt0());
|
||||
}
|
||||
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
(
|
||||
ddtIOobject,
|
||||
rDtCoef
|
||||
*(
|
||||
alpha*rho*vf
|
||||
- alpha.oldTime()*rho.oldTime()*vf.oldTime()
|
||||
)
|
||||
- offCentre_(ddt0())
|
||||
ddtName,
|
||||
rDtCoef
|
||||
*(
|
||||
alpha*rho*vf
|
||||
- alpha.oldTime()*rho.oldTime()*vf.oldTime()
|
||||
)
|
||||
- offCentre_(ddt0())
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1212,23 +1151,15 @@ CrankNicolsonDdtScheme<Type>::fvcDdtUfCorr
|
||||
- offCentre_(dUfdt0());
|
||||
}
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"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()))
|
||||
)
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), mesh().Sf() & Uf.oldTime())
|
||||
*(
|
||||
mesh().Sf()
|
||||
& (
|
||||
(rDtCoef*Uf.oldTime() + offCentre_(dUfdt0()))
|
||||
- fvc::interpolate(rDtCoef*U.oldTime() + offCentre_(ddt0()))
|
||||
)
|
||||
)
|
||||
);
|
||||
@ -1273,24 +1204,16 @@ CrankNicolsonDdtScheme<Type>::fvcDdtPhiCorr
|
||||
- offCentre_(dphidt0());
|
||||
}
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
IOobject
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())
|
||||
*(
|
||||
(rDtCoef*phi.oldTime() + offCentre_(dphidt0()))
|
||||
- fvc::dotInterpolate
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())
|
||||
*(
|
||||
(rDtCoef*phi.oldTime() + offCentre_(dphidt0()))
|
||||
- fvc::dotInterpolate
|
||||
(
|
||||
mesh().Sf(),
|
||||
rDtCoef*U.oldTime() + offCentre_(ddt0())
|
||||
)
|
||||
mesh().Sf(),
|
||||
rDtCoef*U.oldTime() + offCentre_(ddt0())
|
||||
)
|
||||
)
|
||||
);
|
||||
@ -1349,34 +1272,23 @@ CrankNicolsonDdtScheme<Type>::fvcDdtUfCorr
|
||||
- offCentre_(dUfdt0());
|
||||
}
|
||||
|
||||
tmp<fluxFieldType> ddtCorr
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
rhoU0,
|
||||
mesh().Sf() & Uf.oldTime(),
|
||||
rho.oldTime()
|
||||
)
|
||||
*(
|
||||
mesh().Sf()
|
||||
& (
|
||||
(rDtCoef*Uf.oldTime() + offCentre_(dUfdt0()))
|
||||
- fvc::interpolate(rDtCoef*rhoU0 + offCentre_(ddt0()))
|
||||
)
|
||||
rhoU0,
|
||||
mesh().Sf() & Uf.oldTime(),
|
||||
rho.oldTime()
|
||||
)
|
||||
*(
|
||||
mesh().Sf()
|
||||
& (
|
||||
(rDtCoef*Uf.oldTime() + offCentre_(dUfdt0()))
|
||||
- fvc::interpolate(rDtCoef*rhoU0 + offCentre_(ddt0()))
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
return ddtCorr;
|
||||
}
|
||||
else if
|
||||
(
|
||||
@ -1414,30 +1326,22 @@ CrankNicolsonDdtScheme<Type>::fvcDdtUfCorr
|
||||
- offCentre_(dUfdt0());
|
||||
}
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
mesh().Sf() & Uf.oldTime(),
|
||||
rho.oldTime()
|
||||
)
|
||||
*(
|
||||
mesh().Sf()
|
||||
& (
|
||||
(rDtCoef*Uf.oldTime() + offCentre_(dUfdt0()))
|
||||
- fvc::interpolate
|
||||
(
|
||||
rDtCoef*U.oldTime() + offCentre_(ddt0())
|
||||
)
|
||||
U.oldTime(),
|
||||
mesh().Sf() & Uf.oldTime(),
|
||||
rho.oldTime()
|
||||
)
|
||||
*(
|
||||
mesh().Sf()
|
||||
& (
|
||||
(rDtCoef*Uf.oldTime() + offCentre_(dUfdt0()))
|
||||
- fvc::interpolate
|
||||
(
|
||||
rDtCoef*U.oldTime() + offCentre_(ddt0())
|
||||
)
|
||||
)
|
||||
)
|
||||
@ -1506,30 +1410,19 @@ CrankNicolsonDdtScheme<Type>::fvcDdtPhiCorr
|
||||
- offCentre_(dphidt0());
|
||||
}
|
||||
|
||||
tmp<fluxFieldType> ddtCorr
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
IOobject
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
this->fvcDdtPhiCoeff(rhoU0, phi.oldTime(), rho.oldTime())
|
||||
*(
|
||||
(rDtCoef*phi.oldTime() + offCentre_(dphidt0()))
|
||||
- fvc::dotInterpolate
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(rhoU0, phi.oldTime(), rho.oldTime())
|
||||
*(
|
||||
(rDtCoef*phi.oldTime() + offCentre_(dphidt0()))
|
||||
- fvc::dotInterpolate
|
||||
(
|
||||
mesh().Sf(),
|
||||
rDtCoef*rhoU0 + offCentre_(ddt0())
|
||||
)
|
||||
mesh().Sf(),
|
||||
rDtCoef*rhoU0 + offCentre_(ddt0())
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
return ddtCorr;
|
||||
}
|
||||
else if
|
||||
(
|
||||
@ -1567,24 +1460,16 @@ CrankNicolsonDdtScheme<Type>::fvcDdtPhiCorr
|
||||
- offCentre_(dphidt0());
|
||||
}
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
IOobject
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), rho.oldTime())
|
||||
*(
|
||||
(rDtCoef*phi.oldTime() + offCentre_(dphidt0()))
|
||||
- fvc::dotInterpolate
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), rho.oldTime())
|
||||
*(
|
||||
(rDtCoef*phi.oldTime() + offCentre_(dphidt0()))
|
||||
- fvc::dotInterpolate
|
||||
(
|
||||
mesh().Sf(),
|
||||
rDtCoef*U.oldTime() + offCentre_(ddt0())
|
||||
)
|
||||
mesh().Sf(),
|
||||
rDtCoef*U.oldTime() + offCentre_(ddt0())
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -47,22 +47,17 @@ EulerDdtScheme<Type>::fvcDdt
|
||||
const dimensioned<Type>& dt
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+dt.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+dt.name()+')');
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
tmp<GeometricField<Type, fvPatchField, volMesh>> tdtdt
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
@ -80,20 +75,17 @@ EulerDdtScheme<Type>::fvcDdt
|
||||
}
|
||||
else
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
ddtName,
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
ddtIOobject,
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
"0",
|
||||
dt.dimensions()/dimTime,
|
||||
Zero
|
||||
),
|
||||
calculatedFvPatchField<Type>::typeName
|
||||
)
|
||||
"0",
|
||||
dt.dimensions()/dimTime,
|
||||
Zero
|
||||
),
|
||||
calculatedFvPatchField<Type>::typeName
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -106,43 +98,32 @@ EulerDdtScheme<Type>::fvcDdt
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+vf.name()+')');
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
ddtName,
|
||||
rDeltaT*
|
||||
(
|
||||
ddtIOobject,
|
||||
rDeltaT*
|
||||
(
|
||||
vf()
|
||||
- vf.oldTime()()*mesh().Vsc0()/mesh().Vsc()
|
||||
),
|
||||
rDeltaT.value()*
|
||||
(
|
||||
vf.boundaryField() - vf.oldTime().boundaryField()
|
||||
)
|
||||
vf()
|
||||
- vf.oldTime()()*mesh().Vsc0()/mesh().Vsc()
|
||||
),
|
||||
rDeltaT.value()*
|
||||
(
|
||||
vf.boundaryField() - vf.oldTime().boundaryField()
|
||||
)
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
(
|
||||
ddtIOobject,
|
||||
rDeltaT*(vf - vf.oldTime())
|
||||
)
|
||||
ddtName,
|
||||
rDeltaT*(vf - vf.oldTime())
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -156,43 +137,32 @@ EulerDdtScheme<Type>::fvcDdt
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+rho.name()+','+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+rho.name()+','+vf.name()+')');
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
ddtName,
|
||||
rDeltaT*rho*
|
||||
(
|
||||
ddtIOobject,
|
||||
rDeltaT*rho*
|
||||
(
|
||||
vf()
|
||||
- vf.oldTime()()*mesh().Vsc0()/mesh().Vsc()
|
||||
),
|
||||
rDeltaT.value()*rho.value()*
|
||||
(
|
||||
vf.boundaryField() - vf.oldTime().boundaryField()
|
||||
)
|
||||
vf()
|
||||
- vf.oldTime()()*mesh().Vsc0()/mesh().Vsc()
|
||||
),
|
||||
rDeltaT.value()*rho.value()*
|
||||
(
|
||||
vf.boundaryField() - vf.oldTime().boundaryField()
|
||||
)
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
(
|
||||
ddtIOobject,
|
||||
rDeltaT*rho*(vf - vf.oldTime())
|
||||
)
|
||||
ddtName,
|
||||
rDeltaT*rho*(vf - vf.oldTime())
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -206,46 +176,35 @@ EulerDdtScheme<Type>::fvcDdt
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+rho.name()+','+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+rho.name()+','+vf.name()+')');
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
ddtName,
|
||||
rDeltaT*
|
||||
(
|
||||
ddtIOobject,
|
||||
rDeltaT*
|
||||
(
|
||||
rho()*vf()
|
||||
- rho.oldTime()()
|
||||
*vf.oldTime()()*mesh().Vsc0()/mesh().Vsc()
|
||||
),
|
||||
rDeltaT.value()*
|
||||
(
|
||||
rho.boundaryField()*vf.boundaryField()
|
||||
- rho.oldTime().boundaryField()
|
||||
*vf.oldTime().boundaryField()
|
||||
)
|
||||
rho()*vf()
|
||||
- rho.oldTime()()
|
||||
*vf.oldTime()()*mesh().Vsc0()/mesh().Vsc()
|
||||
),
|
||||
rDeltaT.value()*
|
||||
(
|
||||
rho.boundaryField()*vf.boundaryField()
|
||||
- rho.oldTime().boundaryField()
|
||||
*vf.oldTime().boundaryField()
|
||||
)
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
(
|
||||
ddtIOobject,
|
||||
rDeltaT*(rho*vf - rho.oldTime()*vf.oldTime())
|
||||
)
|
||||
ddtName,
|
||||
rDeltaT*(rho*vf - rho.oldTime()*vf.oldTime())
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -260,57 +219,46 @@ EulerDdtScheme<Type>::fvcDdt
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+alpha.name()+','+rho.name()+','+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+alpha.name()+','+rho.name()+','+vf.name()+')');
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
ddtName,
|
||||
rDeltaT*
|
||||
(
|
||||
ddtIOobject,
|
||||
rDeltaT*
|
||||
(
|
||||
alpha()
|
||||
*rho()
|
||||
*vf()
|
||||
alpha()
|
||||
*rho()
|
||||
*vf()
|
||||
|
||||
- alpha.oldTime()()
|
||||
*rho.oldTime()()
|
||||
*vf.oldTime()()*mesh().Vsc0()/mesh().Vsc()
|
||||
),
|
||||
rDeltaT.value()*
|
||||
(
|
||||
alpha.boundaryField()
|
||||
*rho.boundaryField()
|
||||
*vf.boundaryField()
|
||||
- alpha.oldTime()()
|
||||
*rho.oldTime()()
|
||||
*vf.oldTime()()*mesh().Vsc0()/mesh().Vsc()
|
||||
),
|
||||
rDeltaT.value()*
|
||||
(
|
||||
alpha.boundaryField()
|
||||
*rho.boundaryField()
|
||||
*vf.boundaryField()
|
||||
|
||||
- alpha.oldTime().boundaryField()
|
||||
*rho.oldTime().boundaryField()
|
||||
*vf.oldTime().boundaryField()
|
||||
)
|
||||
- alpha.oldTime().boundaryField()
|
||||
*rho.oldTime().boundaryField()
|
||||
*vf.oldTime().boundaryField()
|
||||
)
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
(
|
||||
ddtIOobject,
|
||||
rDeltaT
|
||||
*(
|
||||
alpha*rho*vf
|
||||
- alpha.oldTime()*rho.oldTime()*vf.oldTime()
|
||||
)
|
||||
ddtName,
|
||||
rDeltaT
|
||||
*(
|
||||
alpha*rho*vf
|
||||
- alpha.oldTime()*rho.oldTime()*vf.oldTime()
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -324,22 +272,14 @@ EulerDdtScheme<Type>::fvcDdt
|
||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& sf
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+sf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+sf.name()+')');
|
||||
|
||||
return tmp<GeometricField<Type, fvsPatchField, surfaceMesh>>
|
||||
return GeometricField<Type, fvsPatchField, surfaceMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
(
|
||||
ddtIOobject,
|
||||
rDeltaT*(sf - sf.oldTime())
|
||||
)
|
||||
ddtName,
|
||||
rDeltaT*(sf - sf.oldTime())
|
||||
);
|
||||
}
|
||||
|
||||
@ -362,7 +302,7 @@ EulerDdtScheme<Type>::fvmDdt
|
||||
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalar rDeltaT = 1.0/mesh().time().deltaTValue();
|
||||
const scalar rDeltaT = 1.0/mesh().time().deltaTValue();
|
||||
|
||||
fvm.diag() = rDeltaT*mesh().Vsc();
|
||||
|
||||
@ -397,7 +337,7 @@ EulerDdtScheme<Type>::fvmDdt
|
||||
);
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalar rDeltaT = 1.0/mesh().time().deltaTValue();
|
||||
const scalar rDeltaT = 1.0/mesh().time().deltaTValue();
|
||||
|
||||
fvm.diag() = rDeltaT*rho.value()*mesh().Vsc();
|
||||
|
||||
@ -434,7 +374,7 @@ EulerDdtScheme<Type>::fvmDdt
|
||||
);
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalar rDeltaT = 1.0/mesh().time().deltaTValue();
|
||||
const scalar rDeltaT = 1.0/mesh().time().deltaTValue();
|
||||
|
||||
fvm.diag() = rDeltaT*rho.primitiveField()*mesh().Vsc();
|
||||
|
||||
@ -474,7 +414,7 @@ EulerDdtScheme<Type>::fvmDdt
|
||||
);
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalar rDeltaT = 1.0/mesh().time().deltaTValue();
|
||||
const scalar rDeltaT = 1.0/mesh().time().deltaTValue();
|
||||
|
||||
fvm.diag() =
|
||||
rDeltaT*alpha.primitiveField()*rho.primitiveField()*mesh().Vsc();
|
||||
@ -506,7 +446,7 @@ EulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& Uf
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
fluxFieldType phiUf0(mesh().Sf() & Uf.oldTime());
|
||||
fluxFieldType phiCorr
|
||||
@ -514,19 +454,10 @@ EulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
phiUf0 - fvc::dotInterpolate(mesh().Sf(), U.oldTime())
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phiUf0, phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phiUf0, phiCorr) *rDeltaT*phiCorr
|
||||
);
|
||||
}
|
||||
|
||||
@ -539,26 +470,18 @@ EulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
const fluxFieldType& phi
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
fluxFieldType phiCorr
|
||||
(
|
||||
phi.oldTime() - fvc::dotInterpolate(mesh().Sf(), U.oldTime())
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
);
|
||||
}
|
||||
|
||||
@ -572,7 +495,7 @@ EulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& Uf
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
if
|
||||
(
|
||||
@ -588,20 +511,11 @@ EulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
fluxFieldType phiUf0(mesh().Sf() & Uf.oldTime());
|
||||
fluxFieldType phiCorr(phiUf0 - fvc::dotInterpolate(mesh().Sf(), rhoU0));
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(rhoU0, phiUf0, phiCorr, rho.oldTime())
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
this->fvcDdtPhiCoeff(rhoU0, phiUf0, phiCorr, rho.oldTime())
|
||||
*rDeltaT*phiCorr
|
||||
);
|
||||
}
|
||||
else if
|
||||
@ -616,25 +530,16 @@ EulerDdtScheme<Type>::fvcDdtUfCorr
|
||||
phiUf0 - fvc::dotInterpolate(mesh().Sf(), U.oldTime())
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
phiUf0,
|
||||
phiCorr,
|
||||
rho.oldTime()
|
||||
)*rDeltaT*phiCorr
|
||||
)
|
||||
U.oldTime(),
|
||||
phiUf0,
|
||||
phiCorr,
|
||||
rho.oldTime()
|
||||
)*rDeltaT*phiCorr
|
||||
);
|
||||
}
|
||||
else
|
||||
@ -657,7 +562,7 @@ EulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
const fluxFieldType& phi
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
if
|
||||
(
|
||||
@ -675,25 +580,16 @@ EulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
phi.oldTime() - fvc::dotInterpolate(mesh().Sf(), rhoU0)
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
rhoU0,
|
||||
phi.oldTime(),
|
||||
phiCorr,
|
||||
rho.oldTime()
|
||||
)*rDeltaT*phiCorr
|
||||
)
|
||||
rhoU0,
|
||||
phi.oldTime(),
|
||||
phiCorr,
|
||||
rho.oldTime()
|
||||
)*rDeltaT*phiCorr
|
||||
);
|
||||
}
|
||||
else if
|
||||
@ -707,25 +603,16 @@ EulerDdtScheme<Type>::fvcDdtPhiCorr
|
||||
phi.oldTime() - fvc::dotInterpolate(mesh().Sf(), U.oldTime())
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
phi.oldTime(),
|
||||
phiCorr,
|
||||
rho.oldTime()
|
||||
)*rDeltaT*phiCorr
|
||||
)
|
||||
U.oldTime(),
|
||||
phi.oldTime(),
|
||||
phiCorr,
|
||||
rho.oldTime()
|
||||
)*rDeltaT*phiCorr
|
||||
);
|
||||
}
|
||||
else
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -154,20 +154,15 @@ SLTSDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
const volScalarField rDeltaT(SLrDeltaT());
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+dt.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+dt.name()+')');
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
tmp<GeometricField<Type, fvPatchField, volMesh>> tdtdt
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
@ -187,9 +182,9 @@ SLTSDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
@ -213,27 +208,16 @@ SLTSDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
const volScalarField rDeltaT(SLrDeltaT());
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+vf.name()+')');
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
mesh(),
|
||||
rDeltaT.dimensions()*vf.dimensions(),
|
||||
rDeltaT.primitiveField()*
|
||||
(
|
||||
vf.primitiveField()
|
||||
- vf.oldTime().primitiveField()*mesh().V0()/mesh().V()
|
||||
),
|
||||
ddtName,
|
||||
rDeltaT()*(vf() - vf.oldTime()()*mesh().V0()/mesh().V()),
|
||||
rDeltaT.boundaryField()*
|
||||
(
|
||||
vf.boundaryField() - vf.oldTime().boundaryField()
|
||||
@ -245,9 +229,9 @@ SLTSDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
rDeltaT*(vf - vf.oldTime())
|
||||
)
|
||||
);
|
||||
@ -265,27 +249,16 @@ SLTSDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
const volScalarField rDeltaT(SLrDeltaT());
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+rho.name()+','+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+rho.name()+','+vf.name()+')');
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
mesh(),
|
||||
rDeltaT.dimensions()*rho.dimensions()*vf.dimensions(),
|
||||
rDeltaT.primitiveField()*rho.value()*
|
||||
(
|
||||
vf.primitiveField()
|
||||
- vf.oldTime().primitiveField()*mesh().V0()/mesh().V()
|
||||
),
|
||||
ddtName,
|
||||
rDeltaT()*rho*(vf() - vf.oldTime()()*mesh().V0()/mesh().V()),
|
||||
rDeltaT.boundaryField()*rho.value()*
|
||||
(
|
||||
vf.boundaryField() - vf.oldTime().boundaryField()
|
||||
@ -297,9 +270,9 @@ SLTSDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
rDeltaT*rho*(vf - vf.oldTime())
|
||||
)
|
||||
);
|
||||
@ -317,27 +290,19 @@ SLTSDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
const volScalarField rDeltaT(SLrDeltaT());
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+rho.name()+','+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+rho.name()+','+vf.name()+')');
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
mesh(),
|
||||
rDeltaT.dimensions()*rho.dimensions()*vf.dimensions(),
|
||||
rDeltaT.primitiveField()*
|
||||
ddtName,
|
||||
rDeltaT()*
|
||||
(
|
||||
rho.primitiveField()*vf.primitiveField()
|
||||
- rho.oldTime().primitiveField()
|
||||
*vf.oldTime().primitiveField()*mesh().V0()/mesh().V()
|
||||
rho()*vf()
|
||||
- rho.oldTime()()*vf.oldTime()()*mesh().V0()/mesh().V()
|
||||
),
|
||||
rDeltaT.boundaryField()*
|
||||
(
|
||||
@ -352,9 +317,9 @@ SLTSDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
rDeltaT*(rho*vf - rho.oldTime()*vf.oldTime())
|
||||
)
|
||||
);
|
||||
@ -373,32 +338,20 @@ SLTSDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
const volScalarField rDeltaT(SLrDeltaT());
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+alpha.name()+','+rho.name()+','+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+alpha.name()+','+rho.name()+','+vf.name()+')');
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
mesh(),
|
||||
rDeltaT.dimensions()
|
||||
*alpha.dimensions()*rho.dimensions()*vf.dimensions(),
|
||||
rDeltaT.primitiveField()*
|
||||
ddtName,
|
||||
rDeltaT()*
|
||||
(
|
||||
alpha.primitiveField()
|
||||
*rho.primitiveField()
|
||||
*vf.primitiveField()
|
||||
|
||||
- alpha.oldTime().primitiveField()
|
||||
*rho.oldTime().primitiveField()
|
||||
*vf.oldTime().primitiveField()*mesh().Vsc0()/mesh().Vsc()
|
||||
alpha()*rho()*vf()
|
||||
- alpha.oldTime()()*rho.oldTime()()*vf.oldTime()()
|
||||
*mesh().Vsc0()/mesh().Vsc()
|
||||
),
|
||||
rDeltaT.boundaryField()*
|
||||
(
|
||||
@ -417,13 +370,12 @@ SLTSDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
rDeltaT
|
||||
*(
|
||||
alpha*rho*vf
|
||||
- alpha.oldTime()*rho.oldTime()*vf.oldTime()
|
||||
alpha*rho*vf - alpha.oldTime()*rho.oldTime()*vf.oldTime()
|
||||
)
|
||||
)
|
||||
);
|
||||
@ -449,7 +401,7 @@ SLTSDdtScheme<Type>::fvmDdt
|
||||
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalarField rDeltaT(SLrDeltaT()().primitiveField());
|
||||
const scalarField rDeltaT(SLrDeltaT()().primitiveField());
|
||||
|
||||
fvm.diag() = rDeltaT*mesh().V();
|
||||
|
||||
@ -484,7 +436,7 @@ SLTSDdtScheme<Type>::fvmDdt
|
||||
);
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalarField rDeltaT(SLrDeltaT()().primitiveField());
|
||||
const scalarField rDeltaT(SLrDeltaT()().primitiveField());
|
||||
|
||||
fvm.diag() = rDeltaT*rho.value()*mesh().V();
|
||||
|
||||
@ -521,7 +473,7 @@ SLTSDdtScheme<Type>::fvmDdt
|
||||
);
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalarField rDeltaT(SLrDeltaT()().primitiveField());
|
||||
const scalarField rDeltaT(SLrDeltaT()().primitiveField());
|
||||
|
||||
fvm.diag() = rDeltaT*rho.primitiveField()*mesh().V();
|
||||
|
||||
@ -561,7 +513,7 @@ SLTSDdtScheme<Type>::fvmDdt
|
||||
);
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalarField rDeltaT(SLrDeltaT()().primitiveField());
|
||||
const scalarField rDeltaT(SLrDeltaT()().primitiveField());
|
||||
|
||||
fvm.diag() =
|
||||
rDeltaT*alpha.primitiveField()*rho.primitiveField()*mesh().Vsc();
|
||||
@ -601,19 +553,11 @@ SLTSDdtScheme<Type>::fvcDdtUfCorr
|
||||
phiUf0 - fvc::dotInterpolate(mesh().Sf(), U.oldTime())
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phiUf0, phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phiUf0, phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
);
|
||||
}
|
||||
|
||||
@ -633,19 +577,11 @@ SLTSDdtScheme<Type>::fvcDdtPhiCorr
|
||||
phi.oldTime() - fvc::dotInterpolate(mesh().Sf(), U.oldTime())
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), phiCorr)
|
||||
*rDeltaT*phiCorr
|
||||
);
|
||||
}
|
||||
|
||||
@ -675,20 +611,11 @@ SLTSDdtScheme<Type>::fvcDdtUfCorr
|
||||
fluxFieldType phiUf0(mesh().Sf() & Uf.oldTime());
|
||||
fluxFieldType phiCorr(phiUf0 - fvc::dotInterpolate(mesh().Sf(), rhoU0));
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(rhoU0, phiUf0, phiCorr, rho.oldTime())
|
||||
*rDeltaT*phiCorr
|
||||
)
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
this->fvcDdtPhiCoeff(rhoU0, phiUf0, phiCorr, rho.oldTime())
|
||||
*rDeltaT*phiCorr
|
||||
);
|
||||
}
|
||||
else if
|
||||
@ -703,25 +630,16 @@ SLTSDdtScheme<Type>::fvcDdtUfCorr
|
||||
phiUf0 - fvc::dotInterpolate(mesh().Sf(), U.oldTime())
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
phiUf0,
|
||||
phiCorr,
|
||||
rho.oldTime()
|
||||
)*rDeltaT*phiCorr
|
||||
)
|
||||
U.oldTime(),
|
||||
phiUf0,
|
||||
phiCorr,
|
||||
rho.oldTime()
|
||||
)*rDeltaT*phiCorr
|
||||
);
|
||||
}
|
||||
else
|
||||
@ -744,7 +662,7 @@ SLTSDdtScheme<Type>::fvcDdtPhiCorr
|
||||
const fluxFieldType& phi
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
if
|
||||
(
|
||||
@ -762,25 +680,16 @@ SLTSDdtScheme<Type>::fvcDdtPhiCorr
|
||||
phi.oldTime() - fvc::dotInterpolate(mesh().Sf(), rhoU0)
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
rhoU0,
|
||||
phi.oldTime(),
|
||||
phiCorr,
|
||||
rho.oldTime()
|
||||
)*rDeltaT*phiCorr
|
||||
)
|
||||
rhoU0,
|
||||
phi.oldTime(),
|
||||
phiCorr,
|
||||
rho.oldTime()
|
||||
)*rDeltaT*phiCorr
|
||||
);
|
||||
}
|
||||
else if
|
||||
@ -794,25 +703,16 @@ SLTSDdtScheme<Type>::fvcDdtPhiCorr
|
||||
phi.oldTime() - fvc::dotInterpolate(mesh().Sf(), U.oldTime())
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
phi.oldTime(),
|
||||
phiCorr,
|
||||
rho.oldTime()
|
||||
)*rDeltaT*phiCorr
|
||||
)
|
||||
U.oldTime(),
|
||||
phi.oldTime(),
|
||||
phiCorr,
|
||||
rho.oldTime()
|
||||
)*rDeltaT*phiCorr
|
||||
);
|
||||
}
|
||||
else
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -78,29 +78,24 @@ backwardDdtScheme<Type>::fvcDdt
|
||||
const dimensioned<Type>& dt
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+dt.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+dt.name()+')');
|
||||
|
||||
scalar deltaT = deltaT_();
|
||||
scalar deltaT0 = deltaT0_();
|
||||
const scalar deltaT = deltaT_();
|
||||
const scalar deltaT0 = deltaT0_();
|
||||
|
||||
scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
scalar coefft0 = coefft + coefft00;
|
||||
const scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
const scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
const scalar coefft0 = coefft + coefft00;
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
tmp<GeometricField<Type, fvPatchField, volMesh>> tdtdt
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
@ -122,9 +117,9 @@ backwardDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
@ -146,37 +141,30 @@ backwardDdtScheme<Type>::fvcDdt
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+vf.name()+')');
|
||||
|
||||
scalar deltaT = deltaT_();
|
||||
scalar deltaT0 = deltaT0_(vf);
|
||||
const scalar deltaT = deltaT_();
|
||||
const scalar deltaT0 = deltaT0_(vf);
|
||||
|
||||
scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
scalar coefft0 = coefft + coefft00;
|
||||
const scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
const scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
const scalar coefft0 = coefft + coefft00;
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
mesh(),
|
||||
rDeltaT.dimensions()*vf.dimensions(),
|
||||
rDeltaT.value()*
|
||||
ddtName,
|
||||
rDeltaT*
|
||||
(
|
||||
coefft*vf.primitiveField() -
|
||||
coefft*vf() -
|
||||
(
|
||||
coefft0*vf.oldTime().primitiveField()*mesh().V0()
|
||||
- coefft00*vf.oldTime().oldTime().primitiveField()
|
||||
coefft0*vf.oldTime()()*mesh().V0()
|
||||
- coefft00*vf.oldTime().oldTime()()
|
||||
*mesh().V00()
|
||||
)/mesh().V()
|
||||
),
|
||||
@ -195,9 +183,9 @@ backwardDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
rDeltaT*
|
||||
(
|
||||
coefft*vf
|
||||
@ -218,37 +206,30 @@ backwardDdtScheme<Type>::fvcDdt
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+rho.name()+','+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+rho.name()+','+vf.name()+')');
|
||||
|
||||
scalar deltaT = deltaT_();
|
||||
scalar deltaT0 = deltaT0_(vf);
|
||||
const scalar deltaT = deltaT_();
|
||||
const scalar deltaT0 = deltaT0_(vf);
|
||||
|
||||
scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
scalar coefft0 = coefft + coefft00;
|
||||
const scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
const scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
const scalar coefft0 = coefft + coefft00;
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
mesh(),
|
||||
rDeltaT.dimensions()*rho.dimensions()*vf.dimensions(),
|
||||
rDeltaT.value()*rho.value()*
|
||||
ddtName,
|
||||
rDeltaT*rho*
|
||||
(
|
||||
coefft*vf.primitiveField() -
|
||||
coefft*vf() -
|
||||
(
|
||||
coefft0*vf.oldTime().primitiveField()*mesh().V0()
|
||||
- coefft00*vf.oldTime().oldTime().primitiveField()
|
||||
coefft0*vf.oldTime()()*mesh().V0()
|
||||
- coefft00*vf.oldTime().oldTime()()
|
||||
*mesh().V00()
|
||||
)/mesh().V()
|
||||
),
|
||||
@ -267,9 +248,9 @@ backwardDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
rDeltaT*rho*
|
||||
(
|
||||
coefft*vf
|
||||
@ -290,39 +271,32 @@ backwardDdtScheme<Type>::fvcDdt
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+rho.name()+','+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+rho.name()+','+vf.name()+')');
|
||||
|
||||
scalar deltaT = deltaT_();
|
||||
scalar deltaT0 = deltaT0_(vf);
|
||||
const scalar deltaT = deltaT_();
|
||||
const scalar deltaT0 = deltaT0_(vf);
|
||||
|
||||
scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
scalar coefft0 = coefft + coefft00;
|
||||
const scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
const scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
const scalar coefft0 = coefft + coefft00;
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
mesh(),
|
||||
rDeltaT.dimensions()*rho.dimensions()*vf.dimensions(),
|
||||
rDeltaT.value()*
|
||||
ddtName,
|
||||
rDeltaT*
|
||||
(
|
||||
coefft*rho.primitiveField()*vf.primitiveField() -
|
||||
coefft*rho()*vf() -
|
||||
(
|
||||
coefft0*rho.oldTime().primitiveField()
|
||||
*vf.oldTime().primitiveField()*mesh().V0()
|
||||
- coefft00*rho.oldTime().oldTime().primitiveField()
|
||||
*vf.oldTime().oldTime().primitiveField()*mesh().V00()
|
||||
coefft0*rho.oldTime()()
|
||||
*vf.oldTime()()*mesh().V0()
|
||||
- coefft00*rho.oldTime().oldTime()()
|
||||
*vf.oldTime().oldTime()()*mesh().V00()
|
||||
)/mesh().V()
|
||||
),
|
||||
rDeltaT.value()*
|
||||
@ -342,9 +316,9 @@ backwardDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
rDeltaT*
|
||||
(
|
||||
coefft*rho*vf
|
||||
@ -366,48 +340,34 @@ backwardDdtScheme<Type>::fvcDdt
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+alpha.name()+','+rho.name()+','+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+alpha.name()+','+rho.name()+','+vf.name()+')');
|
||||
|
||||
scalar deltaT = deltaT_();
|
||||
scalar deltaT0 = deltaT0_(vf);
|
||||
const scalar deltaT = deltaT_();
|
||||
const scalar deltaT0 = deltaT0_(vf);
|
||||
|
||||
scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
scalar coefft0 = coefft + coefft00;
|
||||
const scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
const scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
const scalar coefft0 = coefft + coefft00;
|
||||
|
||||
if (mesh().moving())
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
mesh(),
|
||||
rDeltaT.dimensions()
|
||||
*alpha.dimensions()*rho.dimensions()*vf.dimensions(),
|
||||
rDeltaT.value()*
|
||||
ddtName,
|
||||
rDeltaT*
|
||||
(
|
||||
coefft
|
||||
*alpha.primitiveField()
|
||||
*rho.primitiveField()
|
||||
*vf.primitiveField() -
|
||||
(
|
||||
coefft*alpha()*rho()*vf()
|
||||
- (
|
||||
coefft0
|
||||
*alpha.oldTime().primitiveField()
|
||||
*rho.oldTime().primitiveField()
|
||||
*vf.oldTime().primitiveField()*mesh().V0()
|
||||
|
||||
*alpha.oldTime()()*rho.oldTime()()
|
||||
*vf.oldTime()()*mesh().V0()
|
||||
- coefft00
|
||||
*alpha.oldTime().oldTime().primitiveField()
|
||||
*rho.oldTime().oldTime().primitiveField()
|
||||
*vf.oldTime().oldTime().primitiveField()*mesh().V00()
|
||||
*alpha.oldTime().oldTime()()*rho.oldTime().oldTime()()
|
||||
*vf.oldTime().oldTime()()*mesh().V00()
|
||||
)/mesh().V()
|
||||
),
|
||||
rDeltaT.value()*
|
||||
@ -435,9 +395,9 @@ backwardDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
rDeltaT*
|
||||
(
|
||||
coefft*alpha*rho*vf
|
||||
@ -469,14 +429,14 @@ backwardDdtScheme<Type>::fvmDdt
|
||||
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalar rDeltaT = 1.0/deltaT_();
|
||||
const scalar rDeltaT = 1.0/deltaT_();
|
||||
|
||||
scalar deltaT = deltaT_();
|
||||
scalar deltaT0 = deltaT0_(vf);
|
||||
const scalar deltaT = deltaT_();
|
||||
const scalar deltaT0 = deltaT0_(vf);
|
||||
|
||||
scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
scalar coefft0 = coefft + coefft00;
|
||||
const scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
const scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
const scalar coefft0 = coefft + coefft00;
|
||||
|
||||
fvm.diag() = (coefft*rDeltaT)*mesh().V();
|
||||
|
||||
@ -520,14 +480,14 @@ backwardDdtScheme<Type>::fvmDdt
|
||||
);
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalar rDeltaT = 1.0/deltaT_();
|
||||
const scalar rDeltaT = 1.0/deltaT_();
|
||||
|
||||
scalar deltaT = deltaT_();
|
||||
scalar deltaT0 = deltaT0_(vf);
|
||||
const scalar deltaT = deltaT_();
|
||||
const scalar deltaT0 = deltaT0_(vf);
|
||||
|
||||
scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
scalar coefft0 = coefft + coefft00;
|
||||
const scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
const scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
const scalar coefft0 = coefft + coefft00;
|
||||
|
||||
fvm.diag() = (coefft*rDeltaT*rho.value())*mesh().V();
|
||||
|
||||
@ -571,14 +531,14 @@ backwardDdtScheme<Type>::fvmDdt
|
||||
);
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalar rDeltaT = 1.0/deltaT_();
|
||||
const scalar rDeltaT = 1.0/deltaT_();
|
||||
|
||||
scalar deltaT = deltaT_();
|
||||
scalar deltaT0 = deltaT0_(vf);
|
||||
const scalar deltaT = deltaT_();
|
||||
const scalar deltaT0 = deltaT0_(vf);
|
||||
|
||||
scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
scalar coefft0 = coefft + coefft00;
|
||||
const scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
const scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
const scalar coefft0 = coefft + coefft00;
|
||||
|
||||
fvm.diag() = (coefft*rDeltaT)*rho.primitiveField()*mesh().V();
|
||||
|
||||
@ -626,14 +586,14 @@ backwardDdtScheme<Type>::fvmDdt
|
||||
);
|
||||
fvMatrix<Type>& fvm = tfvm.ref();
|
||||
|
||||
scalar rDeltaT = 1.0/deltaT_();
|
||||
const scalar rDeltaT = 1.0/deltaT_();
|
||||
|
||||
scalar deltaT = deltaT_();
|
||||
scalar deltaT0 = deltaT0_(vf);
|
||||
const scalar deltaT = deltaT_();
|
||||
const scalar deltaT0 = deltaT0_(vf);
|
||||
|
||||
scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
scalar coefft0 = coefft + coefft00;
|
||||
const scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
const scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
const scalar coefft0 = coefft + coefft00;
|
||||
|
||||
fvm.diag() =
|
||||
(coefft*rDeltaT)*alpha.primitiveField()*rho.primitiveField()*mesh().V();
|
||||
@ -681,35 +641,27 @@ backwardDdtScheme<Type>::fvcDdtUfCorr
|
||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& Uf
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
scalar deltaT = deltaT_();
|
||||
scalar deltaT0 = deltaT0_(U);
|
||||
const scalar deltaT = deltaT_();
|
||||
const scalar deltaT0 = deltaT0_(U);
|
||||
|
||||
scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
scalar coefft0 = coefft + coefft00;
|
||||
const scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
const scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
const scalar coefft0 = coefft + coefft00;
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
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()
|
||||
)
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
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()
|
||||
)
|
||||
)
|
||||
)
|
||||
@ -725,34 +677,26 @@ backwardDdtScheme<Type>::fvcDdtPhiCorr
|
||||
const fluxFieldType& phi
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
scalar deltaT = deltaT_();
|
||||
scalar deltaT0 = deltaT0_(U);
|
||||
const scalar deltaT = deltaT_();
|
||||
const scalar deltaT0 = deltaT0_(U);
|
||||
|
||||
scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
scalar coefft0 = coefft + coefft00;
|
||||
const scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
const scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
const scalar coefft0 = coefft + coefft00;
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
IOobject
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())
|
||||
*rDeltaT
|
||||
*(
|
||||
(coefft0*phi.oldTime() - coefft00*phi.oldTime().oldTime())
|
||||
- fvc::dotInterpolate
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())
|
||||
*rDeltaT
|
||||
*(
|
||||
(coefft0*phi.oldTime() - coefft00*phi.oldTime().oldTime())
|
||||
- fvc::dotInterpolate
|
||||
(
|
||||
mesh().Sf(),
|
||||
coefft0*U.oldTime() - coefft00*U.oldTime().oldTime()
|
||||
)
|
||||
mesh().Sf(),
|
||||
coefft0*U.oldTime() - coefft00*U.oldTime().oldTime()
|
||||
)
|
||||
)
|
||||
);
|
||||
@ -768,14 +712,14 @@ backwardDdtScheme<Type>::fvcDdtUfCorr
|
||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& Uf
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
scalar deltaT = deltaT_();
|
||||
scalar deltaT0 = deltaT0_(U);
|
||||
const scalar deltaT = deltaT_();
|
||||
const scalar deltaT0 = deltaT0_(U);
|
||||
|
||||
scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
scalar coefft0 = coefft + coefft00;
|
||||
const scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
const scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
const scalar coefft0 = coefft + coefft00;
|
||||
|
||||
if
|
||||
(
|
||||
@ -783,40 +727,31 @@ backwardDdtScheme<Type>::fvcDdtUfCorr
|
||||
&& Uf.dimensions() == rho.dimensions()*dimVelocity
|
||||
)
|
||||
{
|
||||
GeometricField<Type, fvPatchField, volMesh> rhoU0
|
||||
const GeometricField<Type, fvPatchField, volMesh> rhoU0
|
||||
(
|
||||
rho.oldTime()*U.oldTime()
|
||||
);
|
||||
|
||||
GeometricField<Type, fvPatchField, volMesh> rhoU00
|
||||
const GeometricField<Type, fvPatchField, volMesh> rhoU00
|
||||
(
|
||||
rho.oldTime().oldTime()*U.oldTime().oldTime()
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
rhoU0,
|
||||
mesh().Sf() & Uf.oldTime(),
|
||||
rho.oldTime()
|
||||
)
|
||||
*rDeltaT
|
||||
*(
|
||||
mesh().Sf()
|
||||
& (
|
||||
(coefft0*Uf.oldTime() - coefft00*Uf.oldTime().oldTime())
|
||||
- fvc::interpolate(coefft0*rhoU0 - coefft00*rhoU00)
|
||||
)
|
||||
rhoU0,
|
||||
mesh().Sf() & Uf.oldTime(),
|
||||
rho.oldTime()
|
||||
)
|
||||
*rDeltaT
|
||||
*(
|
||||
mesh().Sf()
|
||||
& (
|
||||
(coefft0*Uf.oldTime() - coefft00*Uf.oldTime().oldTime())
|
||||
- fvc::interpolate(coefft0*rhoU0 - coefft00*rhoU00)
|
||||
)
|
||||
)
|
||||
);
|
||||
@ -827,33 +762,24 @@ backwardDdtScheme<Type>::fvcDdtUfCorr
|
||||
&& Uf.dimensions() == rho.dimensions()*dimVelocity
|
||||
)
|
||||
{
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
mesh().Sf() & Uf.oldTime(),
|
||||
rho.oldTime()
|
||||
)
|
||||
*rDeltaT
|
||||
*(
|
||||
mesh().Sf()
|
||||
& (
|
||||
(coefft0*Uf.oldTime() - coefft00*Uf.oldTime().oldTime())
|
||||
- fvc::interpolate
|
||||
(
|
||||
coefft0*U.oldTime()
|
||||
- coefft00*U.oldTime().oldTime()
|
||||
)
|
||||
U.oldTime(),
|
||||
mesh().Sf() & Uf.oldTime(),
|
||||
rho.oldTime()
|
||||
)
|
||||
*rDeltaT
|
||||
*(
|
||||
mesh().Sf()
|
||||
& (
|
||||
(coefft0*Uf.oldTime() - coefft00*Uf.oldTime().oldTime())
|
||||
- fvc::interpolate
|
||||
(
|
||||
coefft0*U.oldTime()
|
||||
- coefft00*U.oldTime().oldTime()
|
||||
)
|
||||
)
|
||||
)
|
||||
@ -879,14 +805,14 @@ backwardDdtScheme<Type>::fvcDdtPhiCorr
|
||||
const fluxFieldType& phi
|
||||
)
|
||||
{
|
||||
dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
const dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT();
|
||||
|
||||
scalar deltaT = deltaT_();
|
||||
scalar deltaT0 = deltaT0_(U);
|
||||
const scalar deltaT = deltaT_();
|
||||
const scalar deltaT0 = deltaT0_(U);
|
||||
|
||||
scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
scalar coefft0 = coefft + coefft00;
|
||||
const scalar coefft = 1 + deltaT/(deltaT + deltaT0);
|
||||
const scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0));
|
||||
const scalar coefft0 = coefft + coefft00;
|
||||
|
||||
if
|
||||
(
|
||||
@ -894,36 +820,27 @@ backwardDdtScheme<Type>::fvcDdtPhiCorr
|
||||
&& phi.dimensions() == rho.dimensions()*dimVelocity*dimArea
|
||||
)
|
||||
{
|
||||
GeometricField<Type, fvPatchField, volMesh> rhoU0
|
||||
const GeometricField<Type, fvPatchField, volMesh> rhoU0
|
||||
(
|
||||
rho.oldTime()*U.oldTime()
|
||||
);
|
||||
|
||||
GeometricField<Type, fvPatchField, volMesh> rhoU00
|
||||
const GeometricField<Type, fvPatchField, volMesh> rhoU00
|
||||
(
|
||||
rho.oldTime().oldTime()*U.oldTime().oldTime()
|
||||
);
|
||||
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
IOobject
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
this->fvcDdtPhiCoeff(rhoU0, phi.oldTime(), rho.oldTime())
|
||||
*rDeltaT
|
||||
*(
|
||||
(coefft0*phi.oldTime() - coefft00*phi.oldTime().oldTime())
|
||||
- fvc::dotInterpolate
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(rhoU0, phi.oldTime(), rho.oldTime())
|
||||
*rDeltaT
|
||||
*(
|
||||
(coefft0*phi.oldTime() - coefft00*phi.oldTime().oldTime())
|
||||
- fvc::dotInterpolate
|
||||
(
|
||||
mesh().Sf(),
|
||||
coefft0*rhoU0 - coefft00*rhoU00
|
||||
)
|
||||
mesh().Sf(),
|
||||
coefft0*rhoU0 - coefft00*rhoU00
|
||||
)
|
||||
)
|
||||
);
|
||||
@ -934,26 +851,17 @@ backwardDdtScheme<Type>::fvcDdtPhiCorr
|
||||
&& phi.dimensions() == rho.dimensions()*dimVelocity*dimArea
|
||||
)
|
||||
{
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
(
|
||||
IOobject
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), rho.oldTime())
|
||||
*rDeltaT
|
||||
*(
|
||||
(coefft0*phi.oldTime() - coefft00*phi.oldTime().oldTime())
|
||||
- fvc::dotInterpolate
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime(), rho.oldTime())
|
||||
*rDeltaT
|
||||
*(
|
||||
(coefft0*phi.oldTime() - coefft00*phi.oldTime().oldTime())
|
||||
- fvc::dotInterpolate
|
||||
(
|
||||
mesh().Sf(),
|
||||
coefft0*U.oldTime() - coefft00*U.oldTime().oldTime()
|
||||
)
|
||||
mesh().Sf(),
|
||||
coefft0*U.oldTime() - coefft00*U.oldTime().oldTime()
|
||||
)
|
||||
)
|
||||
);
|
||||
@ -975,14 +883,14 @@ tmp<surfaceScalarField> backwardDdtScheme<Type>::meshPhi
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
scalar deltaT = deltaT_();
|
||||
scalar deltaT0 = deltaT0_(vf);
|
||||
const scalar deltaT = deltaT_();
|
||||
const scalar deltaT0 = deltaT0_(vf);
|
||||
|
||||
// Coefficient for t-3/2 (between times 0 and 00)
|
||||
scalar coefft0_00 = deltaT/(deltaT + deltaT0);
|
||||
const scalar coefft0_00 = deltaT/(deltaT + deltaT0);
|
||||
|
||||
// Coefficient for t-1/2 (between times n and 0)
|
||||
scalar coefftn_0 = 1 + coefft0_00;
|
||||
const scalar coefftn_0 = 1 + coefft0_00;
|
||||
|
||||
return surfaceScalarField::New
|
||||
(
|
||||
|
||||
@ -60,18 +60,13 @@ localEulerDdtScheme<Type>::fvcDdt
|
||||
const dimensioned<Type>& dt
|
||||
)
|
||||
{
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt(" + dt.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt(" + dt.name() + ')');
|
||||
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
@ -94,18 +89,13 @@ localEulerDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
const volScalarField& rDeltaT = localRDeltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt(" + vf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt(" + vf.name() + ')');
|
||||
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
rDeltaT*(vf - vf.oldTime())
|
||||
)
|
||||
);
|
||||
@ -122,18 +112,13 @@ localEulerDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
const volScalarField& rDeltaT = localRDeltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt(" + rho.name() + ',' + vf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt(" + rho.name() + ',' + vf.name() + ')');
|
||||
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
rDeltaT*rho*(vf - vf.oldTime())
|
||||
)
|
||||
);
|
||||
@ -150,18 +135,13 @@ localEulerDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
const volScalarField& rDeltaT = localRDeltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt(" + rho.name() + ',' + vf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt(" + rho.name() + ',' + vf.name() + ')');
|
||||
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
rDeltaT*(rho*vf - rho.oldTime()*vf.oldTime())
|
||||
)
|
||||
);
|
||||
@ -179,18 +159,13 @@ localEulerDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
const volScalarField& rDeltaT = localRDeltaT();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+alpha.name()+','+rho.name()+','+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+alpha.name()+','+rho.name()+','+vf.name()+')');
|
||||
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
ddtIOobject,
|
||||
ddtName,
|
||||
rDeltaT
|
||||
*(
|
||||
alpha*rho*vf
|
||||
@ -210,20 +185,12 @@ localEulerDdtScheme<Type>::fvcDdt
|
||||
{
|
||||
const surfaceScalarField& rDeltaT = localRDeltaTf();
|
||||
|
||||
IOobject ddtIOobject
|
||||
(
|
||||
"ddt("+sf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
);
|
||||
const word ddtName("ddt("+sf.name()+')');
|
||||
|
||||
return tmp<GeometricField<Type, fvsPatchField, surfaceMesh>>
|
||||
return GeometricField<Type, fvsPatchField, surfaceMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
(
|
||||
ddtIOobject,
|
||||
rDeltaT*(sf - sf.oldTime())
|
||||
)
|
||||
ddtName,
|
||||
rDeltaT*(sf - sf.oldTime())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -46,23 +46,15 @@ steadyStateDdtScheme<Type>::fvcDdt
|
||||
const dimensioned<Type>& dt
|
||||
)
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
"ddt("+dt.name()+')',
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddt("+dt.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
"0",
|
||||
dt.dimensions()/dimTime,
|
||||
Zero
|
||||
)
|
||||
"0",
|
||||
dt.dimensions()/dimTime,
|
||||
Zero
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -75,23 +67,15 @@ steadyStateDdtScheme<Type>::fvcDdt
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
"ddt("+vf.name()+')',
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddt("+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
"0",
|
||||
vf.dimensions()/dimTime,
|
||||
Zero
|
||||
)
|
||||
"0",
|
||||
vf.dimensions()/dimTime,
|
||||
Zero
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -105,23 +89,15 @@ steadyStateDdtScheme<Type>::fvcDdt
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
"ddt("+rho.name()+','+vf.name()+')',
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddt("+rho.name()+','+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
"0",
|
||||
rho.dimensions()*vf.dimensions()/dimTime,
|
||||
Zero
|
||||
)
|
||||
"0",
|
||||
rho.dimensions()*vf.dimensions()/dimTime,
|
||||
Zero
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -135,23 +111,15 @@ steadyStateDdtScheme<Type>::fvcDdt
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
"ddt("+rho.name()+','+vf.name()+')',
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddt("+rho.name()+','+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
"0",
|
||||
rho.dimensions()*vf.dimensions()/dimTime,
|
||||
Zero
|
||||
)
|
||||
"0",
|
||||
rho.dimensions()*vf.dimensions()/dimTime,
|
||||
Zero
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -166,23 +134,15 @@ steadyStateDdtScheme<Type>::fvcDdt
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
"ddt("+alpha.name()+','+rho.name()+','+vf.name()+')',
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddt("+alpha.name()+','+rho.name()+','+vf.name()+')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
mesh(),
|
||||
dimensioned<Type>
|
||||
(
|
||||
"0",
|
||||
rho.dimensions()*vf.dimensions()/dimTime,
|
||||
Zero
|
||||
)
|
||||
"0",
|
||||
rho.dimensions()*vf.dimensions()/dimTime,
|
||||
Zero
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -195,7 +155,7 @@ steadyStateDdtScheme<Type>::fvmDdt
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
tmp<fvMatrix<Type>> tfvm
|
||||
return tmp<fvMatrix<Type>>
|
||||
(
|
||||
new fvMatrix<Type>
|
||||
(
|
||||
@ -203,8 +163,6 @@ steadyStateDdtScheme<Type>::fvmDdt
|
||||
vf.dimensions()*dimVol/dimTime
|
||||
)
|
||||
);
|
||||
|
||||
return tfvm;
|
||||
}
|
||||
|
||||
|
||||
@ -216,7 +174,7 @@ steadyStateDdtScheme<Type>::fvmDdt
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
tmp<fvMatrix<Type>> tfvm
|
||||
return tmp<fvMatrix<Type>>
|
||||
(
|
||||
new fvMatrix<Type>
|
||||
(
|
||||
@ -224,8 +182,6 @@ steadyStateDdtScheme<Type>::fvmDdt
|
||||
rho.dimensions()*vf.dimensions()*dimVol/dimTime
|
||||
)
|
||||
);
|
||||
|
||||
return tfvm;
|
||||
}
|
||||
|
||||
|
||||
@ -237,7 +193,7 @@ steadyStateDdtScheme<Type>::fvmDdt
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
tmp<fvMatrix<Type>> tfvm
|
||||
return tmp<fvMatrix<Type>>
|
||||
(
|
||||
new fvMatrix<Type>
|
||||
(
|
||||
@ -245,8 +201,6 @@ steadyStateDdtScheme<Type>::fvmDdt
|
||||
rho.dimensions()*vf.dimensions()*dimVol/dimTime
|
||||
)
|
||||
);
|
||||
|
||||
return tfvm;
|
||||
}
|
||||
|
||||
|
||||
@ -259,7 +213,7 @@ steadyStateDdtScheme<Type>::fvmDdt
|
||||
const GeometricField<Type, fvPatchField, volMesh>& vf
|
||||
)
|
||||
{
|
||||
tmp<fvMatrix<Type>> tfvm
|
||||
return tmp<fvMatrix<Type>>
|
||||
(
|
||||
new fvMatrix<Type>
|
||||
(
|
||||
@ -267,8 +221,6 @@ steadyStateDdtScheme<Type>::fvmDdt
|
||||
alpha.dimensions()*rho.dimensions()*vf.dimensions()*dimVol/dimTime
|
||||
)
|
||||
);
|
||||
|
||||
return tfvm;
|
||||
}
|
||||
|
||||
|
||||
@ -280,23 +232,15 @@ steadyStateDdtScheme<Type>::fvcDdtUfCorr
|
||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& Uf
|
||||
)
|
||||
{
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh(),
|
||||
dimensioned<typename flux<Type>::type>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
mesh(),
|
||||
dimensioned<typename flux<Type>::type>
|
||||
(
|
||||
"0",
|
||||
Uf.dimensions()*dimArea/dimTime,
|
||||
Zero
|
||||
)
|
||||
"0",
|
||||
Uf.dimensions()*dimArea/dimTime,
|
||||
Zero
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -310,23 +254,15 @@ steadyStateDdtScheme<Type>::fvcDdtPhiCorr
|
||||
const fluxFieldType& phi
|
||||
)
|
||||
{
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh(),
|
||||
dimensioned<typename flux<Type>::type>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr(" + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
mesh(),
|
||||
dimensioned<typename flux<Type>::type>
|
||||
(
|
||||
"0",
|
||||
phi.dimensions()/dimTime,
|
||||
Zero
|
||||
)
|
||||
"0",
|
||||
phi.dimensions()/dimTime,
|
||||
Zero
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -341,25 +277,15 @@ steadyStateDdtScheme<Type>::fvcDdtUfCorr
|
||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& Uf
|
||||
)
|
||||
{
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh(),
|
||||
dimensioned<typename flux<Type>::type>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name()
|
||||
+ ',' + U.name() + ',' + Uf.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
mesh(),
|
||||
dimensioned<typename flux<Type>::type>
|
||||
(
|
||||
"0",
|
||||
Uf.dimensions()*dimArea/dimTime,
|
||||
Zero
|
||||
)
|
||||
"0",
|
||||
Uf.dimensions()*dimArea/dimTime,
|
||||
Zero
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -374,25 +300,15 @@ steadyStateDdtScheme<Type>::fvcDdtPhiCorr
|
||||
const fluxFieldType& phi
|
||||
)
|
||||
{
|
||||
return tmp<fluxFieldType>
|
||||
return fluxFieldType::New
|
||||
(
|
||||
new fluxFieldType
|
||||
"ddtCorr(" + rho.name() + ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh(),
|
||||
dimensioned<typename flux<Type>::type>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"ddtCorr("
|
||||
+ rho.name()
|
||||
+ ',' + U.name() + ',' + phi.name() + ')',
|
||||
mesh().time().timeName(),
|
||||
mesh()
|
||||
),
|
||||
mesh(),
|
||||
dimensioned<typename flux<Type>::type>
|
||||
(
|
||||
"0",
|
||||
phi.dimensions()/dimTime,
|
||||
Zero
|
||||
)
|
||||
"0",
|
||||
phi.dimensions()/dimTime,
|
||||
Zero
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -51,16 +51,9 @@ average
|
||||
|
||||
tmp<GeometricField<Type, fvPatchField, volMesh>> taverage
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"average("+ssf.name()+')',
|
||||
ssf.instance(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"average("+ssf.name()+')',
|
||||
mesh,
|
||||
dimensioned<Type>("0", ssf.dimensions(), Zero)
|
||||
)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -48,13 +48,10 @@ div
|
||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& ssf
|
||||
)
|
||||
{
|
||||
return tmp<GeometricField<Type, fvPatchField, volMesh>>
|
||||
return GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
(
|
||||
"div("+ssf.name()+')',
|
||||
fvc::surfaceIntegrate(ssf)
|
||||
)
|
||||
"div("+ssf.name()+')',
|
||||
fvc::surfaceIntegrate(ssf)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -63,16 +63,9 @@ reconstruct
|
||||
|
||||
tmp<GeometricField<GradType, fvPatchField, volMesh>> treconField
|
||||
(
|
||||
new GeometricField<GradType, fvPatchField, volMesh>
|
||||
GeometricField<GradType, fvPatchField, volMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"volIntegrate("+ssf.name()+')',
|
||||
ssf.instance(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"volIntegrate("+ssf.name()+')',
|
||||
mesh,
|
||||
dimensioned<GradType>("0", ssf.dimensions()/dimArea, Zero),
|
||||
extrapolatedCalculatedFvPatchField<GradType>::typeName
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2013-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -64,16 +64,9 @@ reconstruct
|
||||
|
||||
tmp<GeometricField<GradType, fvPatchField, volMesh>> treconField
|
||||
(
|
||||
new GeometricField<GradType, fvPatchField, volMesh>
|
||||
GeometricField<GradType, fvPatchField, volMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"reconstruct("+ssf.name()+')',
|
||||
ssf.instance(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"reconstruct("+ssf.name()+')',
|
||||
mesh,
|
||||
dimensioned<GradType>
|
||||
(
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -87,16 +87,9 @@ surfaceIntegrate
|
||||
|
||||
tmp<GeometricField<Type, fvPatchField, volMesh>> tvf
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"surfaceIntegrate("+ssf.name()+')',
|
||||
ssf.instance(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"surfaceIntegrate("+ssf.name()+')',
|
||||
mesh,
|
||||
dimensioned<Type>
|
||||
(
|
||||
@ -143,16 +136,9 @@ surfaceSum
|
||||
|
||||
tmp<GeometricField<Type, fvPatchField, volMesh>> tvf
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"surfaceSum("+ssf.name()+')',
|
||||
ssf.instance(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"surfaceSum("+ssf.name()+')',
|
||||
mesh,
|
||||
dimensioned<Type>("0", ssf.dimensions(), Zero),
|
||||
extrapolatedCalculatedFvPatchField<Type>::typeName
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2013-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2013-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -60,16 +60,9 @@ Foam::fv::LeastSquaresGrad<Type, Stencil>::calcGrad
|
||||
|
||||
tmp<GeometricField<GradType, fvPatchField, volMesh>> tlsGrad
|
||||
(
|
||||
new GeometricField<GradType, fvPatchField, volMesh>
|
||||
GeometricField<GradType, fvPatchField, volMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
name,
|
||||
vtf.instance(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
name,
|
||||
mesh,
|
||||
dimensioned<GradType>
|
||||
(
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -72,16 +72,9 @@ Foam::fv::fourthGrad<Type>::calcGrad
|
||||
|
||||
tmp<GeometricField<GradType, fvPatchField, volMesh>> tfGrad
|
||||
(
|
||||
new GeometricField<GradType, fvPatchField, volMesh>
|
||||
GeometricField<GradType, fvPatchField, volMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
name,
|
||||
vsf.instance(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
name,
|
||||
secondfGrad
|
||||
)
|
||||
);
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -50,16 +50,9 @@ Foam::fv::gaussGrad<Type>::gradf
|
||||
|
||||
tmp<GeometricField<GradType, fvPatchField, volMesh>> tgGrad
|
||||
(
|
||||
new GeometricField<GradType, fvPatchField, volMesh>
|
||||
GeometricField<GradType, fvPatchField, volMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
name,
|
||||
ssf.instance(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
name,
|
||||
mesh,
|
||||
dimensioned<GradType>
|
||||
(
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -56,16 +56,9 @@ Foam::fv::leastSquaresGrad<Type>::calcGrad
|
||||
|
||||
tmp<GeometricField<GradType, fvPatchField, volMesh>> tlsGrad
|
||||
(
|
||||
new GeometricField<GradType, fvPatchField, volMesh>
|
||||
GeometricField<GradType, fvPatchField, volMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
name,
|
||||
vsf.instance(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
name,
|
||||
mesh,
|
||||
dimensioned<GradType>
|
||||
(
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -100,16 +100,9 @@ gaussLaplacianScheme<Type, GType>::gammaSnGradCorr
|
||||
|
||||
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tgammaSnGradCorr
|
||||
(
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
GeometricField<Type, fvsPatchField, surfaceMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"gammaSnGradCorr("+vf.name()+')',
|
||||
vf.instance(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"gammaSnGradCorr("+vf.name()+')',
|
||||
mesh,
|
||||
SfGammaCorr.dimensions()
|
||||
*vf.dimensions()*mesh.deltaCoeffs().dimensions()
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -77,16 +77,9 @@ Foam::fv::correctedSnGrad<Type>::correction
|
||||
// construct GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tssf
|
||||
(
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
GeometricField<Type, fvsPatchField, surfaceMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"snGradCorr("+vf.name()+')',
|
||||
vf.instance(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"snGradCorr("+vf.name()+')',
|
||||
mesh,
|
||||
vf.dimensions()*mesh.nonOrthDeltaCoeffs().dimensions()
|
||||
)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -53,16 +53,9 @@ Foam::fv::faceCorrectedSnGrad<Type>::fullGradCorrection
|
||||
// construct GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tsfCorr
|
||||
(
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
GeometricField<Type, fvsPatchField, surfaceMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"snGradCorr("+vf.name()+')',
|
||||
vf.instance(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"snGradCorr("+vf.name()+')',
|
||||
mesh,
|
||||
vf.dimensions()*mesh.nonOrthDeltaCoeffs().dimensions()
|
||||
)
|
||||
@ -134,16 +127,9 @@ Foam::fv::faceCorrectedSnGrad<Type>::correction
|
||||
// construct GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tssf
|
||||
(
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
GeometricField<Type, fvsPatchField, surfaceMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"snGradCorr("+vf.name()+')',
|
||||
vf.instance(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"snGradCorr("+vf.name()+')',
|
||||
mesh,
|
||||
vf.dimensions()*mesh.nonOrthDeltaCoeffs().dimensions()
|
||||
)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -109,16 +109,9 @@ snGradScheme<Type>::snGrad
|
||||
// construct GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tsf
|
||||
(
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
GeometricField<Type, fvsPatchField, surfaceMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
snGradName + "("+vf.name()+')',
|
||||
vf.instance(),
|
||||
vf.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
snGradName + "("+vf.name()+')',
|
||||
mesh,
|
||||
vf.dimensions()*tdeltaCoeffs().dimensions()
|
||||
)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -761,16 +761,9 @@ Foam::fvMatrix<Type>::H() const
|
||||
{
|
||||
tmp<GeometricField<Type, fvPatchField, volMesh>> tHphi
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"H("+psi_.name()+')',
|
||||
psi_.instance(),
|
||||
psi_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"H("+psi_.name()+')',
|
||||
psi_.mesh(),
|
||||
dimensions_/dimVol,
|
||||
extrapolatedCalculatedFvPatchScalarField::typeName
|
||||
@ -874,16 +867,9 @@ flux() const
|
||||
// construct GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tfieldFlux
|
||||
(
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
GeometricField<Type, fvsPatchField, surfaceMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"flux("+psi_.name()+')',
|
||||
psi_.instance(),
|
||||
psi_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"flux("+psi_.name()+')',
|
||||
psi_.mesh(),
|
||||
dimensions()
|
||||
)
|
||||
@ -977,7 +963,7 @@ void Foam::fvMatrix<Type>::operator=(const fvMatrix<Type>& fvmv)
|
||||
{
|
||||
faceFluxCorrectionPtr_ =
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
(*fvmv.faceFluxCorrectionPtr_);
|
||||
(*fvmv.faceFluxCorrectionPtr_);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1058,7 +1044,7 @@ void Foam::fvMatrix<Type>::operator-=(const fvMatrix<Type>& fvmv)
|
||||
{
|
||||
faceFluxCorrectionPtr_ =
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
(-*fvmv.faceFluxCorrectionPtr_);
|
||||
(-*fvmv.faceFluxCorrectionPtr_);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2206,16 +2192,9 @@ Foam::operator&
|
||||
{
|
||||
tmp<GeometricField<Type, fvPatchField, volMesh>> tMphi
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"M&" + psi.name(),
|
||||
psi.instance(),
|
||||
psi.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"M&" + psi.name(),
|
||||
psi.mesh(),
|
||||
M.dimensions()/dimVol,
|
||||
extrapolatedCalculatedFvPatchScalarField::typeName
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -98,17 +98,9 @@ Foam::extendedCellToFaceStencil::weightedSum
|
||||
|
||||
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tsfCorr
|
||||
(
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
GeometricField<Type, fvsPatchField, surfaceMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
fld.name(),
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
fld.name(),
|
||||
mesh,
|
||||
dimensioned<Type>
|
||||
(
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -47,17 +47,9 @@ Foam::extendedUpwindCellToFaceStencil::weightedSum
|
||||
|
||||
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tsfCorr
|
||||
(
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
GeometricField<Type, fvsPatchField, surfaceMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
fld.name(),
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
fld.name(),
|
||||
mesh,
|
||||
dimensioned<Type>
|
||||
(
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -95,14 +95,9 @@ Foam::extendedFaceToCellStencil::weightedSum
|
||||
|
||||
tmp<GeometricField<Type, fvPatchField, volMesh>> tsfCorr
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
fld.name(),
|
||||
mesh.time().timeName(),
|
||||
mesh
|
||||
),
|
||||
fld.name(),
|
||||
mesh,
|
||||
dimensioned<Type>
|
||||
(
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -182,14 +182,9 @@ Foam::LimitedScheme<Type, Limiter, LimitFunc>::limiter
|
||||
{
|
||||
tmp<surfaceScalarField> tlimiterField
|
||||
(
|
||||
new surfaceScalarField
|
||||
surfaceScalarField::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
limiterFieldName,
|
||||
mesh.time().timeName(),
|
||||
mesh
|
||||
),
|
||||
limiterFieldName,
|
||||
mesh,
|
||||
dimless
|
||||
)
|
||||
|
||||
@ -123,17 +123,9 @@ public:
|
||||
|
||||
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tsfCorr
|
||||
(
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
GeometricField<Type, fvsPatchField, surfaceMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"cubic::correction(" + vf.name() +')',
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
"cubic::correction(" + vf.name() +')',
|
||||
surfaceInterpolationScheme<Type>::interpolate(vf, kSc, -kSc)
|
||||
)
|
||||
);
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -39,17 +39,9 @@ Foam::linearUpwind<Type>::correction
|
||||
|
||||
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tsfCorr
|
||||
(
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
GeometricField<Type, fvsPatchField, surfaceMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"linearUpwind::correction(" + vf.name() + ')',
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
"linearUpwind::correction(" + vf.name() + ')',
|
||||
mesh,
|
||||
dimensioned<Type>(vf.name(), vf.dimensions(), Zero)
|
||||
)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -41,17 +41,9 @@ Foam::linearUpwindV<Type>::correction
|
||||
|
||||
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tsfCorr
|
||||
(
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
GeometricField<Type, fvsPatchField, surfaceMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"linearUpwindV::correction(" + vf.name() + ')',
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
"linearUpwindV::correction(" + vf.name() + ')',
|
||||
mesh,
|
||||
dimensioned<Type>
|
||||
(
|
||||
|
||||
@ -124,14 +124,9 @@ public:
|
||||
|
||||
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tvff
|
||||
(
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
GeometricField<Type, fvsPatchField, surfaceMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"localMax::interpolate(" + vf.name() + ')',
|
||||
mesh.time().timeName(),
|
||||
mesh
|
||||
),
|
||||
"localMax::interpolate(" + vf.name() + ')',
|
||||
mesh,
|
||||
vf.dimensions()
|
||||
)
|
||||
|
||||
@ -119,14 +119,9 @@ public:
|
||||
|
||||
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tvff
|
||||
(
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
GeometricField<Type, fvsPatchField, surfaceMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"localMin::interpolate(" + vf.name() + ')',
|
||||
mesh.time().timeName(),
|
||||
mesh
|
||||
),
|
||||
"localMin::interpolate(" + vf.name() + ')',
|
||||
mesh,
|
||||
vf.dimensions()
|
||||
)
|
||||
|
||||
@ -133,14 +133,9 @@ public:
|
||||
|
||||
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tsfCorr
|
||||
(
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
GeometricField<Type, fvsPatchField, surfaceMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"skewCorrected::skewCorrection(" + vf.name() + ')',
|
||||
mesh.time().timeName(),
|
||||
mesh
|
||||
),
|
||||
"skewCorrected::skewCorrection(" + vf.name() + ')',
|
||||
mesh,
|
||||
dimensioned<Type>
|
||||
(
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -167,14 +167,9 @@ Foam::surfaceInterpolationScheme<Type>::interpolate
|
||||
|
||||
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tsf
|
||||
(
|
||||
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||
GeometricField<Type, fvsPatchField, surfaceMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"interpolate("+vf.name()+')',
|
||||
vf.instance(),
|
||||
vf.db()
|
||||
),
|
||||
"interpolate("+vf.name()+')',
|
||||
mesh,
|
||||
vf.dimensions()
|
||||
)
|
||||
@ -260,14 +255,9 @@ Foam::surfaceInterpolationScheme<Type>::dotInterpolate
|
||||
|
||||
tmp<GeometricField<RetType, fvsPatchField, surfaceMesh>> tsf
|
||||
(
|
||||
new GeometricField<RetType, fvsPatchField, surfaceMesh>
|
||||
GeometricField<RetType, fvsPatchField, surfaceMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"interpolate("+vf.name()+')',
|
||||
vf.instance(),
|
||||
vf.db()
|
||||
),
|
||||
"interpolate("+vf.name()+')',
|
||||
mesh,
|
||||
Sf.dimensions()*vf.dimensions()
|
||||
)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -379,14 +379,9 @@ Foam::volPointInterpolation::interpolate
|
||||
// Construct tmp<pointField>
|
||||
tmp<GeometricField<Type, pointPatchField, pointMesh>> tpf
|
||||
(
|
||||
new GeometricField<Type, pointPatchField, pointMesh>
|
||||
GeometricField<Type, pointPatchField, pointMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"volPointInterpolate(" + vf.name() + ')',
|
||||
vf.instance(),
|
||||
pm.thisDb()
|
||||
),
|
||||
"volPointInterpolate(" + vf.name() + ')',
|
||||
pm,
|
||||
vf.dimensions(),
|
||||
patchFieldTypes
|
||||
@ -454,14 +449,9 @@ Foam::volPointInterpolation::interpolate
|
||||
|
||||
tmp<GeometricField<Type, pointPatchField, pointMesh>> tpf
|
||||
(
|
||||
new GeometricField<Type, pointPatchField, pointMesh>
|
||||
GeometricField<Type, pointPatchField, pointMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
name,
|
||||
vf.instance(),
|
||||
pm.thisDb()
|
||||
),
|
||||
name,
|
||||
pm,
|
||||
vf.dimensions()
|
||||
)
|
||||
|
||||
@ -102,7 +102,8 @@ Foam::fvFieldDecomposer::decomposeField
|
||||
procMesh_.time().timeName(),
|
||||
procMesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
procMesh_,
|
||||
field.dimensions(),
|
||||
@ -256,7 +257,8 @@ Foam::fvFieldDecomposer::decomposeField
|
||||
procMesh_.time().timeName(),
|
||||
procMesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
procMesh_,
|
||||
field.dimensions(),
|
||||
|
||||
@ -95,7 +95,8 @@ Foam::fvFieldReconstructor::reconstructFvVolumeInternalField
|
||||
procMeshes_[proci].time().timeName(),
|
||||
procMeshes_[proci],
|
||||
IOobject::MUST_READ,
|
||||
IOobject::NO_WRITE
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
procMeshes_[proci]
|
||||
)
|
||||
@ -111,7 +112,8 @@ Foam::fvFieldReconstructor::reconstructFvVolumeInternalField
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
procFields
|
||||
);
|
||||
@ -322,7 +324,8 @@ Foam::fvFieldReconstructor::reconstructFvVolumeField
|
||||
procMeshes_[proci].time().timeName(),
|
||||
procMeshes_[proci],
|
||||
IOobject::MUST_READ,
|
||||
IOobject::NO_WRITE
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
procMeshes_[proci]
|
||||
)
|
||||
@ -337,7 +340,8 @@ Foam::fvFieldReconstructor::reconstructFvVolumeField
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
procFields
|
||||
);
|
||||
@ -574,7 +578,8 @@ Foam::fvFieldReconstructor::reconstructFvSurfaceField
|
||||
procMeshes_[proci].time().timeName(),
|
||||
procMeshes_[proci],
|
||||
IOobject::MUST_READ,
|
||||
IOobject::NO_WRITE
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
procMeshes_[proci]
|
||||
)
|
||||
@ -589,7 +594,8 @@ Foam::fvFieldReconstructor::reconstructFvSurfaceField
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
procFields
|
||||
);
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -414,7 +414,8 @@ Foam::meshToMesh0::interpolate
|
||||
toMesh_.time().timeName(),
|
||||
toMesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
toMesh_,
|
||||
fromVf.dimensions(),
|
||||
|
||||
@ -164,17 +164,9 @@ Foam::sampledSurface::pointAverage
|
||||
|
||||
tmp<GeometricField<Type, fvPatchField, volMesh>> tcellAvg
|
||||
(
|
||||
new GeometricField<Type, fvPatchField, volMesh>
|
||||
GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"cellAvg",
|
||||
mesh.time().timeName(),
|
||||
pfld.db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
"cellAvg",
|
||||
mesh,
|
||||
dimensioned<Type>("zero", dimless, Zero)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user