diff --git a/src/finiteVolume/finiteVolume/convectionSchemes/gaussConvectionScheme/gaussConvectionScheme.H b/src/finiteVolume/finiteVolume/convectionSchemes/gaussConvectionScheme/gaussConvectionScheme.H index 3776144128..158ff21a13 100644 --- a/src/finiteVolume/finiteVolume/convectionSchemes/gaussConvectionScheme/gaussConvectionScheme.H +++ b/src/finiteVolume/finiteVolume/convectionSchemes/gaussConvectionScheme/gaussConvectionScheme.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.C index ec0bcdca25..8607d49fc1 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.C +++ b/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -368,6 +368,75 @@ CoEulerDdtScheme::fvcDdt } +template +tmp > +CoEulerDdtScheme::fvcDdt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + const volScalarField rDeltaT(CorDeltaT()); + + IOobject ddtIOobject + ( + "ddt("+alpha.name()+','+rho.name()+','+vf.name()+')', + mesh().time().timeName(), + mesh() + ); + + if (mesh().moving()) + { + return tmp > + ( + new GeometricField + ( + ddtIOobject, + mesh(), + rDeltaT.dimensions() + *alpha.dimensions()*rho.dimensions()*vf.dimensions(), + rDeltaT.internalField()* + ( + alpha.internalField() + *rho.internalField() + *vf.internalField() + + - alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField()*mesh().Vsc0()/mesh().Vsc() + ), + rDeltaT.boundaryField()* + ( + alpha.boundaryField() + *rho.boundaryField() + *vf.boundaryField() + + - alpha.oldTime().boundaryField() + *rho.oldTime().boundaryField() + *vf.oldTime().boundaryField() + ) + ) + ); + } + else + { + return tmp > + ( + new GeometricField + ( + ddtIOobject, + rDeltaT + *( + alpha*rho*vf + - alpha.oldTime()*rho.oldTime()*vf.oldTime() + ) + ) + ); + } +} + + template tmp > CoEulerDdtScheme::fvmDdt @@ -479,6 +548,48 @@ CoEulerDdtScheme::fvmDdt } +template +tmp > +CoEulerDdtScheme::fvmDdt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + tmp > tfvm + ( + new fvMatrix + ( + vf, + alpha.dimensions()*rho.dimensions()*vf.dimensions()*dimVol/dimTime + ) + ); + fvMatrix& fvm = tfvm(); + + scalarField rDeltaT(CorDeltaT()().internalField()); + + fvm.diag() = rDeltaT*alpha.internalField()*rho.internalField()*mesh().Vsc(); + + if (mesh().moving()) + { + fvm.source() = rDeltaT + *alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField()*mesh().Vsc0(); + } + else + { + fvm.source() = rDeltaT + *alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField()*mesh().Vsc(); + } + + return tfvm; +} + + template tmp::fluxFieldType> CoEulerDdtScheme::fvcDdtUfCorr diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.H index 204a793587..e743a0cb40 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.H +++ b/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -139,6 +139,13 @@ public: const GeometricField& ); + tmp > fvcDdt + ( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& psi + ); + tmp > fvmDdt ( const GeometricField& @@ -156,6 +163,13 @@ public: const GeometricField& ); + tmp > fvmDdt + ( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& psi + ); + typedef typename ddtScheme::fluxFieldType fluxFieldType; tmp fvcDdtUfCorr diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C index 739a548855..c9b095fac0 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C +++ b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -620,6 +620,136 @@ CrankNicolsonDdtScheme::fvcDdt } +template +tmp > +CrankNicolsonDdtScheme::fvcDdt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + DDt0Field >& ddt0 = + ddt0_ > + ( + "ddt0(" + alpha.name() + ',' + rho.name() + ',' + vf.name() + ')', + alpha.dimensions()*rho.dimensions()*vf.dimensions() + ); + + IOobject ddtIOobject + ( + "ddt(" + alpha.name() + ',' + rho.name() + ',' + vf.name() + ')', + mesh().time().timeName(), + mesh() + ); + + dimensionedScalar rDtCoef = rDtCoef_(ddt0); + + if (mesh().moving()) + { + if (evaluate(ddt0)) + { + scalar rDtCoef0 = rDtCoef0_(ddt0).value(); + + ddt0.internalField() = + ( + rDtCoef0* + ( + mesh().V0() + *alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField() + + - mesh().V00() + *alpha.oldTime().oldTime().internalField() + *rho.oldTime().oldTime().internalField() + *vf.oldTime().oldTime().internalField() + ) - mesh().V00()*offCentre_(ddt0.internalField()) + )/mesh().V0(); + + ddt0.boundaryField() = + ( + rDtCoef0* + ( + alpha.oldTime().boundaryField() + *rho.oldTime().boundaryField() + *vf.oldTime().boundaryField() + + - alpha.oldTime().oldTime().boundaryField() + *rho.oldTime().oldTime().boundaryField() + *vf.oldTime().oldTime().boundaryField() + ) - offCentre_(ff(ddt0.boundaryField())) + ); + } + + return tmp > + ( + new GeometricField + ( + ddtIOobject, + mesh(), + rDtCoef.dimensions() + *alpha.dimensions()*rho.dimensions()*vf.dimensions(), + ( + rDtCoef.value()* + ( + mesh().V() + *alpha.internalField() + *rho.internalField() + *vf.internalField() + + - mesh().V0() + *alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField() + ) - mesh().V00()*offCentre_(ddt0.internalField()) + )/mesh().V(), + rDtCoef.value()* + ( + alpha.boundaryField() + *rho.boundaryField() + *vf.boundaryField() + + - alpha.oldTime().boundaryField() + *rho.oldTime().boundaryField() + *vf.oldTime().boundaryField() + ) - offCentre_(ff(ddt0.boundaryField())) + ) + ); + } + else + { + if (evaluate(ddt0)) + { + ddt0 = rDtCoef0_(ddt0)* + ( + alpha.oldTime() + *rho.oldTime() + *vf.oldTime() + + - alpha.oldTime().oldTime() + *rho.oldTime().oldTime() + *vf.oldTime().oldTime() + ) - offCentre_(ddt0()); + } + + return tmp > + ( + new GeometricField + ( + ddtIOobject, + rDtCoef + *( + alpha*rho*vf + - alpha.oldTime()*rho.oldTime()*vf.oldTime() + ) + - offCentre_(ddt0()) + ) + ); + } +} + + template tmp > CrankNicolsonDdtScheme::fvmDdt @@ -874,6 +1004,117 @@ CrankNicolsonDdtScheme::fvmDdt } +template +tmp > +CrankNicolsonDdtScheme::fvmDdt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + DDt0Field >& ddt0 = + ddt0_ > + ( + "ddt0(" + alpha.name() + ',' + rho.name() + ',' + vf.name() + ')', + alpha.dimensions()*rho.dimensions()*vf.dimensions() + ); + + tmp > tfvm + ( + new fvMatrix + ( + vf, + alpha.dimensions()*rho.dimensions()*vf.dimensions()*dimVol/dimTime + ) + ); + fvMatrix& fvm = tfvm(); + + scalar rDtCoef = rDtCoef_(ddt0).value(); + fvm.diag() = rDtCoef*alpha.internalField()*rho.internalField()*mesh().V(); + + vf.oldTime().oldTime(); + alpha.oldTime().oldTime(); + rho.oldTime().oldTime(); + + if (mesh().moving()) + { + if (evaluate(ddt0)) + { + scalar rDtCoef0 = rDtCoef0_(ddt0).value(); + + ddt0.internalField() = + ( + rDtCoef0* + ( + mesh().V0() + *alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField() + + - mesh().V00() + *alpha.oldTime().oldTime().internalField() + *rho.oldTime().oldTime().internalField() + *vf.oldTime().oldTime().internalField() + ) + - mesh().V00()*offCentre_(ddt0.internalField()) + )/mesh().V0(); + + ddt0.boundaryField() = + ( + rDtCoef0* + ( + alpha.oldTime().boundaryField() + *rho.oldTime().boundaryField() + *vf.oldTime().boundaryField() + + - alpha.oldTime().oldTime().boundaryField() + *rho.oldTime().oldTime().boundaryField() + *vf.oldTime().oldTime().boundaryField() + ) + - offCentre_(ff(ddt0.boundaryField())) + ); + } + + fvm.source() = + ( + rDtCoef + *alpha.internalField() + *rho.internalField() + *vf.oldTime().internalField() + + offCentre_(ddt0.internalField()) + )*mesh().V0(); + } + else + { + if (evaluate(ddt0)) + { + ddt0 = rDtCoef0_(ddt0)* + ( + alpha.oldTime() + *rho.oldTime() + *vf.oldTime() + + - alpha.oldTime().oldTime() + *rho.oldTime().oldTime() + *vf.oldTime().oldTime() + ) - offCentre_(ddt0()); + } + + fvm.source() = + ( + rDtCoef + *alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField() + + offCentre_(ddt0.internalField()) + )*mesh().V(); + } + + return tfvm; +} + + template tmp::fluxFieldType> CrankNicolsonDdtScheme::fvcDdtUfCorr diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H index 94c34b8ea8..e94c8c2c0b 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H +++ b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicolsonDdtScheme/CrankNicolsonDdtScheme.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -210,6 +210,13 @@ public: const GeometricField& ); + tmp > fvcDdt + ( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& psi + ); + tmp > fvmDdt ( const GeometricField& @@ -227,6 +234,13 @@ public: const GeometricField& ); + tmp > fvmDdt + ( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& psi + ); + typedef typename ddtScheme::fluxFieldType fluxFieldType; tmp fvcDdtUfCorr diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/EulerDdtScheme/EulerDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/EulerDdtScheme/EulerDdtScheme.C index 957524992b..a9ba06b6e2 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/EulerDdtScheme/EulerDdtScheme.C +++ b/src/finiteVolume/finiteVolume/ddtSchemes/EulerDdtScheme/EulerDdtScheme.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -257,6 +257,75 @@ EulerDdtScheme::fvcDdt } +template +tmp > +EulerDdtScheme::fvcDdt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); + + IOobject ddtIOobject + ( + "ddt("+alpha.name()+','+rho.name()+','+vf.name()+')', + mesh().time().timeName(), + mesh() + ); + + if (mesh().moving()) + { + return tmp > + ( + new GeometricField + ( + ddtIOobject, + mesh(), + rDeltaT.dimensions() + *alpha.dimensions()*rho.dimensions()*vf.dimensions(), + rDeltaT.value()* + ( + alpha.internalField() + *rho.internalField() + *vf.internalField() + + - alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField()*mesh().Vsc0()/mesh().Vsc() + ), + rDeltaT.value()* + ( + alpha.boundaryField() + *rho.boundaryField() + *vf.boundaryField() + + - alpha.oldTime().boundaryField() + *rho.oldTime().boundaryField() + *vf.oldTime().boundaryField() + ) + ) + ); + } + else + { + return tmp > + ( + new GeometricField + ( + ddtIOobject, + rDeltaT + *( + alpha*rho*vf + - alpha.oldTime()*rho.oldTime()*vf.oldTime() + ) + ) + ); + } +} + + template tmp > EulerDdtScheme::fvmDdt @@ -368,6 +437,48 @@ EulerDdtScheme::fvmDdt } +template +tmp > +EulerDdtScheme::fvmDdt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + tmp > tfvm + ( + new fvMatrix + ( + vf, + alpha.dimensions()*rho.dimensions()*vf.dimensions()*dimVol/dimTime + ) + ); + fvMatrix& fvm = tfvm(); + + scalar rDeltaT = 1.0/mesh().time().deltaTValue(); + + fvm.diag() = rDeltaT*alpha.internalField()*rho.internalField()*mesh().Vsc(); + + if (mesh().moving()) + { + fvm.source() = rDeltaT + *alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField()*mesh().Vsc0(); + } + else + { + fvm.source() = rDeltaT + *alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField()*mesh().Vsc(); + } + + return tfvm; +} + + template tmp::fluxFieldType> EulerDdtScheme::fvcDdtUfCorr diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/EulerDdtScheme/EulerDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/EulerDdtScheme/EulerDdtScheme.H index 1e2b840a13..2818fa123f 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/EulerDdtScheme/EulerDdtScheme.H +++ b/src/finiteVolume/finiteVolume/ddtSchemes/EulerDdtScheme/EulerDdtScheme.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -117,6 +117,13 @@ public: const GeometricField& ); + tmp > fvcDdt + ( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& psi + ); + tmp > fvmDdt ( const GeometricField& @@ -134,6 +141,13 @@ public: const GeometricField& ); + tmp > fvmDdt + ( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& psi + ); + typedef typename ddtScheme::fluxFieldType fluxFieldType; tmp fvcDdtUfCorr diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/SLTSDdtScheme/SLTSDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/SLTSDdtScheme/SLTSDdtScheme.C index 95a786c5ac..955bba0807 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/SLTSDdtScheme/SLTSDdtScheme.C +++ b/src/finiteVolume/finiteVolume/ddtSchemes/SLTSDdtScheme/SLTSDdtScheme.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -367,6 +367,75 @@ SLTSDdtScheme::fvcDdt } +template +tmp > +SLTSDdtScheme::fvcDdt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + const volScalarField rDeltaT(SLrDeltaT()); + + IOobject ddtIOobject + ( + "ddt("+alpha.name()+','+rho.name()+','+vf.name()+')', + mesh().time().timeName(), + mesh() + ); + + if (mesh().moving()) + { + return tmp > + ( + new GeometricField + ( + ddtIOobject, + mesh(), + rDeltaT.dimensions() + *alpha.dimensions()*rho.dimensions()*vf.dimensions(), + rDeltaT.internalField()* + ( + alpha.internalField() + *rho.internalField() + *vf.internalField() + + - alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField()*mesh().Vsc0()/mesh().Vsc() + ), + rDeltaT.boundaryField()* + ( + alpha.boundaryField() + *rho.boundaryField() + *vf.boundaryField() + + - alpha.oldTime().boundaryField() + *rho.oldTime().boundaryField() + *vf.oldTime().boundaryField() + ) + ) + ); + } + else + { + return tmp > + ( + new GeometricField + ( + ddtIOobject, + rDeltaT + *( + alpha*rho*vf + - alpha.oldTime()*rho.oldTime()*vf.oldTime() + ) + ) + ); + } +} + + template tmp > SLTSDdtScheme::fvmDdt @@ -481,6 +550,48 @@ SLTSDdtScheme::fvmDdt } +template +tmp > +SLTSDdtScheme::fvmDdt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + tmp > tfvm + ( + new fvMatrix + ( + vf, + alpha.dimensions()*rho.dimensions()*vf.dimensions()*dimVol/dimTime + ) + ); + fvMatrix& fvm = tfvm(); + + scalarField rDeltaT(SLrDeltaT()().internalField()); + + fvm.diag() = rDeltaT*alpha.internalField()*rho.internalField()*mesh().Vsc(); + + if (mesh().moving()) + { + fvm.source() = rDeltaT + *alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField()*mesh().Vsc0(); + } + else + { + fvm.source() = rDeltaT + *alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField()*mesh().Vsc(); + } + + return tfvm; +} + + template tmp::fluxFieldType> SLTSDdtScheme::fvcDdtUfCorr diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/SLTSDdtScheme/SLTSDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/SLTSDdtScheme/SLTSDdtScheme.H index b420f2b161..ea6fdd987e 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/SLTSDdtScheme/SLTSDdtScheme.H +++ b/src/finiteVolume/finiteVolume/ddtSchemes/SLTSDdtScheme/SLTSDdtScheme.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -140,6 +140,13 @@ public: const GeometricField& ); + tmp > fvcDdt + ( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& psi + ); + tmp > fvmDdt ( const GeometricField& @@ -157,6 +164,13 @@ public: const GeometricField& ); + tmp > fvmDdt + ( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& psi + ); + typedef typename ddtScheme::fluxFieldType fluxFieldType; tmp fvcDdtUfCorr diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.C index 06116eb6ed..1474b8c89d 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.C +++ b/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -281,6 +281,7 @@ backwardDdtScheme::fvcDdt } } + template tmp > backwardDdtScheme::fvcDdt @@ -356,6 +357,100 @@ backwardDdtScheme::fvcDdt } +template +tmp > +backwardDdtScheme::fvcDdt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); + + IOobject ddtIOobject + ( + "ddt("+alpha.name()+','+rho.name()+','+vf.name()+')', + mesh().time().timeName(), + mesh() + ); + + scalar deltaT = deltaT_(); + scalar deltaT0 = deltaT0_(vf); + + scalar coefft = 1 + deltaT/(deltaT + deltaT0); + scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0)); + scalar coefft0 = coefft + coefft00; + + if (mesh().moving()) + { + return tmp > + ( + new GeometricField + ( + ddtIOobject, + mesh(), + rDeltaT.dimensions() + *alpha.dimensions()*rho.dimensions()*vf.dimensions(), + rDeltaT.value()* + ( + coefft + *alpha.internalField() + *rho.internalField() + *vf.internalField() - + ( + coefft0 + *alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField()*mesh().V0() + + - coefft00 + *alpha.oldTime().oldTime().internalField() + *rho.oldTime().oldTime().internalField() + *vf.oldTime().oldTime().internalField()*mesh().V00() + )/mesh().V() + ), + rDeltaT.value()* + ( + coefft + *alpha.boundaryField() + *rho.boundaryField() + *vf.boundaryField() - + ( + coefft0 + *alpha.oldTime().boundaryField() + *rho.oldTime().boundaryField() + *vf.oldTime().boundaryField() + + - coefft00 + *alpha.oldTime().oldTime().boundaryField() + *rho.oldTime().oldTime().boundaryField() + *vf.oldTime().oldTime().boundaryField() + ) + ) + ) + ); + } + else + { + return tmp > + ( + new GeometricField + ( + ddtIOobject, + rDeltaT* + ( + coefft*alpha*rho*vf + - coefft0*alpha.oldTime()*rho.oldTime()*vf.oldTime() + + coefft00*alpha.oldTime().oldTime() + *rho.oldTime().oldTime()*vf.oldTime().oldTime() + ) + ) + ); + } +} + + template tmp > backwardDdtScheme::fvmDdt @@ -512,6 +607,72 @@ backwardDdtScheme::fvmDdt } +template +tmp > +backwardDdtScheme::fvmDdt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + tmp > tfvm + ( + new fvMatrix + ( + vf, + alpha.dimensions()*rho.dimensions()*vf.dimensions()*dimVol/dimTime + ) + ); + fvMatrix& fvm = tfvm(); + + scalar rDeltaT = 1.0/deltaT_(); + + scalar deltaT = deltaT_(); + scalar deltaT0 = deltaT0_(vf); + + scalar coefft = 1 + deltaT/(deltaT + deltaT0); + scalar coefft00 = deltaT*deltaT/(deltaT0*(deltaT + deltaT0)); + scalar coefft0 = coefft + coefft00; + + fvm.diag() = + (coefft*rDeltaT)*alpha.internalField()*rho.internalField()*mesh().V(); + + if (mesh().moving()) + { + fvm.source() = rDeltaT* + ( + coefft0 + *alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField()*mesh().V0() + + - coefft00 + *alpha.oldTime().oldTime().internalField() + *rho.oldTime().oldTime().internalField() + *vf.oldTime().oldTime().internalField()*mesh().V00() + ); + } + else + { + fvm.source() = rDeltaT*mesh().V()* + ( + coefft0 + *alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField() + + - coefft00 + *alpha.oldTime().oldTime().internalField() + *rho.oldTime().oldTime().internalField() + *vf.oldTime().oldTime().internalField() + ); + } + + return tfvm; +} + + template tmp::fluxFieldType> backwardDdtScheme::fvcDdtUfCorr diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.H index 425e78ece6..9855ad5599 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.H +++ b/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -128,6 +128,13 @@ public: const GeometricField& ); + tmp > fvcDdt + ( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& psi + ); + tmp > fvmDdt ( const GeometricField& @@ -145,6 +152,13 @@ public: const GeometricField& ); + tmp > fvmDdt + ( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& psi + ); + typedef typename ddtScheme::fluxFieldType fluxFieldType; tmp fvcDdtUfCorr diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/boundedDdtScheme/boundedDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/boundedDdtScheme/boundedDdtScheme.C index 2edefd19b2..d5ea7dbcbb 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/boundedDdtScheme/boundedDdtScheme.C +++ b/src/finiteVolume/finiteVolume/ddtSchemes/boundedDdtScheme/boundedDdtScheme.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -87,6 +87,19 @@ boundedDdtScheme::fvcDdt } +template +tmp > +boundedDdtScheme::fvcDdt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + return scheme_().fvcDdt(alpha, rho, vf) - fvc::ddt(alpha, rho)*vf; +} + + template tmp > boundedDdtScheme::fvmDdt @@ -122,6 +135,19 @@ boundedDdtScheme::fvmDdt } +template +tmp > +boundedDdtScheme::fvmDdt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + return scheme_().fvmDdt(alpha, rho, vf) - fvm::Sp(fvc::ddt(alpha, rho), vf); +} + + template tmp::fluxFieldType> boundedDdtScheme::fvcDdtUfCorr diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/boundedDdtScheme/boundedDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/boundedDdtScheme/boundedDdtScheme.H index db309c8c81..741e7c1e0f 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/boundedDdtScheme/boundedDdtScheme.H +++ b/src/finiteVolume/finiteVolume/ddtSchemes/boundedDdtScheme/boundedDdtScheme.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -126,6 +126,13 @@ public: const GeometricField& ); + tmp > fvcDdt + ( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& psi + ); + tmp > fvmDdt ( const GeometricField& @@ -143,6 +150,13 @@ public: const GeometricField& ); + tmp > fvmDdt + ( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& psi + ); + typedef typename ddtScheme::fluxFieldType fluxFieldType; tmp fvcDdtUfCorr diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.C index ccfa56538e..c8e0ce6fa6 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.C +++ b/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -26,6 +26,7 @@ License #include "fv.H" #include "HashTable.H" #include "surfaceInterpolate.H" +#include "fvMatrix.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -95,6 +96,45 @@ ddtScheme::~ddtScheme() // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +template +tmp > ddtScheme::fvcDdt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + notImplemented("fvmDdt(alpha, rho, psi"); + + return tmp > + ( + GeometricField::null() + ); +} + + +template +tmp > ddtScheme::fvmDdt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + notImplemented("fvmDdt(alpha, rho, psi"); + + return tmp > + ( + new fvMatrix + ( + vf, + alpha.dimensions()*rho.dimensions() + *vf.dimensions()*dimVol/dimTime + ) + ); +} + + template tmp ddtScheme::fvcDdtPhiCoeff ( diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.H index ceb6b1d63a..dccf7f9619 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.H +++ b/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -160,6 +160,13 @@ public: const GeometricField& ) = 0; + virtual tmp > fvcDdt + ( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& + ) = 0; + virtual tmp > fvmDdt ( const GeometricField& @@ -177,6 +184,12 @@ public: const GeometricField& ) = 0; + virtual tmp > fvmDdt + ( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf + ) = 0; typedef GeometricField < diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/localEulerDdtScheme/localEulerDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/localEulerDdtScheme/localEulerDdtScheme.C index ed5c3f0f34..e1c0ea5e48 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/localEulerDdtScheme/localEulerDdtScheme.C +++ b/src/finiteVolume/finiteVolume/ddtSchemes/localEulerDdtScheme/localEulerDdtScheme.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -265,6 +265,75 @@ localEulerDdtScheme::fvcDdt } +template +tmp > +localEulerDdtScheme::fvcDdt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + const volScalarField& rDeltaT = localRDeltaT(); + + IOobject ddtIOobject + ( + "ddt("+alpha.name()+','+rho.name()+','+vf.name()+')', + mesh().time().timeName(), + mesh() + ); + + if (mesh().moving()) + { + return tmp > + ( + new GeometricField + ( + ddtIOobject, + mesh(), + rDeltaT.dimensions() + *alpha.dimensions()*rho.dimensions()*vf.dimensions(), + rDeltaT.internalField()* + ( + alpha.internalField() + *rho.internalField() + *vf.internalField() + + - alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField()*mesh().Vsc0()/mesh().Vsc() + ), + rDeltaT.boundaryField()* + ( + alpha.boundaryField() + *rho.boundaryField() + *vf.boundaryField() + + - alpha.oldTime().boundaryField() + *rho.oldTime().boundaryField() + *vf.oldTime().boundaryField() + ) + ) + ); + } + else + { + return tmp > + ( + new GeometricField + ( + ddtIOobject, + rDeltaT + *( + alpha*rho*vf + - alpha.oldTime()*rho.oldTime()*vf.oldTime() + ) + ) + ); + } +} + + template tmp > localEulerDdtScheme::fvmDdt @@ -376,6 +445,48 @@ localEulerDdtScheme::fvmDdt } +template +tmp > +localEulerDdtScheme::fvmDdt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + tmp > tfvm + ( + new fvMatrix + ( + vf, + alpha.dimensions()*rho.dimensions()*vf.dimensions()*dimVol/dimTime + ) + ); + fvMatrix& fvm = tfvm(); + + const scalarField& rDeltaT = localRDeltaT().internalField(); + + fvm.diag() = rDeltaT*alpha.internalField()*rho.internalField()*mesh().Vsc(); + + if (mesh().moving()) + { + fvm.source() = rDeltaT + *alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField()*mesh().Vsc0(); + } + else + { + fvm.source() = rDeltaT + *alpha.oldTime().internalField() + *rho.oldTime().internalField() + *vf.oldTime().internalField()*mesh().Vsc(); + } + + return tfvm; +} + + template tmp::fluxFieldType> localEulerDdtScheme::fvcDdtUfCorr diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/localEulerDdtScheme/localEulerDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/localEulerDdtScheme/localEulerDdtScheme.H index 50aed99d52..dc7bb0c79b 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/localEulerDdtScheme/localEulerDdtScheme.H +++ b/src/finiteVolume/finiteVolume/ddtSchemes/localEulerDdtScheme/localEulerDdtScheme.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -136,6 +136,13 @@ public: const GeometricField& ); + tmp > fvcDdt + ( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& psi + ); + tmp > fvmDdt ( const GeometricField& @@ -153,6 +160,13 @@ public: const GeometricField& ); + tmp > fvmDdt + ( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& psi + ); + typedef typename ddtScheme::fluxFieldType fluxFieldType; tmp fvcDdtUfCorr diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/steadyStateDdtScheme/steadyStateDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/steadyStateDdtScheme/steadyStateDdtScheme.C index f21a6a0b6f..fb695f1b4d 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/steadyStateDdtScheme/steadyStateDdtScheme.C +++ b/src/finiteVolume/finiteVolume/ddtSchemes/steadyStateDdtScheme/steadyStateDdtScheme.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -157,6 +157,37 @@ steadyStateDdtScheme::fvcDdt } +template +tmp > +steadyStateDdtScheme::fvcDdt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + return tmp > + ( + new GeometricField + ( + IOobject + ( + "ddt("+alpha.name()+','+rho.name()+','+vf.name()+')', + mesh().time().timeName(), + mesh() + ), + mesh(), + dimensioned + ( + "0", + rho.dimensions()*vf.dimensions()/dimTime, + pTraits::zero + ) + ) + ); +} + + template tmp > steadyStateDdtScheme::fvmDdt @@ -219,6 +250,28 @@ steadyStateDdtScheme::fvmDdt } +template +tmp > +steadyStateDdtScheme::fvmDdt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + tmp > tfvm + ( + new fvMatrix + ( + vf, + alpha.dimensions()*rho.dimensions()*vf.dimensions()*dimVol/dimTime + ) + ); + + return tfvm; +} + + template tmp::fluxFieldType> steadyStateDdtScheme::fvcDdtUfCorr diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/steadyStateDdtScheme/steadyStateDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/steadyStateDdtScheme/steadyStateDdtScheme.H index 4512d05310..7d990746f2 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/steadyStateDdtScheme/steadyStateDdtScheme.H +++ b/src/finiteVolume/finiteVolume/ddtSchemes/steadyStateDdtScheme/steadyStateDdtScheme.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -116,6 +116,13 @@ public: const GeometricField& ); + tmp > fvcDdt + ( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& psi + ); + tmp > fvmDdt ( const GeometricField& @@ -133,6 +140,13 @@ public: const GeometricField& ); + tmp > fvmDdt + ( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& psi + ); + typedef typename ddtScheme::fluxFieldType fluxFieldType; tmp fvcDdtUfCorr diff --git a/src/finiteVolume/finiteVolume/fvc/fvcDdt.C b/src/finiteVolume/finiteVolume/fvc/fvcDdt.C index 4026ceeb9d..e300c072d4 100644 --- a/src/finiteVolume/finiteVolume/fvc/fvcDdt.C +++ b/src/finiteVolume/finiteVolume/fvc/fvcDdt.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -102,6 +102,29 @@ ddt } +template +tmp > +ddt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + return fv::ddtScheme::New + ( + vf.mesh(), + vf.mesh().ddtScheme + ( + "ddt(" + + alpha.name() + ',' + + rho.name() + ',' + + vf.name() + ')' + ) + )().fvcDdt(alpha, rho, vf); +} + + template tmp > ddt diff --git a/src/finiteVolume/finiteVolume/fvc/fvcDdt.H b/src/finiteVolume/finiteVolume/fvc/fvcDdt.H index 5aca472469..1f7047cdec 100644 --- a/src/finiteVolume/finiteVolume/fvc/fvcDdt.H +++ b/src/finiteVolume/finiteVolume/fvc/fvcDdt.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -80,6 +80,14 @@ namespace fvc const GeometricField& ); + template + tmp > ddt + ( + const volScalarField&, + const volScalarField&, + const GeometricField& + ); + template tmp > ddt ( diff --git a/src/finiteVolume/finiteVolume/fvm/fvmDdt.C b/src/finiteVolume/finiteVolume/fvm/fvmDdt.C index 9a73ae3695..a2f75da024 100644 --- a/src/finiteVolume/finiteVolume/fvm/fvmDdt.C +++ b/src/finiteVolume/finiteVolume/fvm/fvmDdt.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -99,6 +99,29 @@ ddt } +template +tmp > +ddt +( + const volScalarField& alpha, + const volScalarField& rho, + const GeometricField& vf +) +{ + return fv::ddtScheme::New + ( + vf.mesh(), + vf.mesh().ddtScheme + ( + "ddt(" + + alpha.name() + ',' + + rho.name() + ',' + + vf.name() + ')' + ) + )().fvmDdt(alpha, rho, vf); +} + + template tmp > ddt diff --git a/src/finiteVolume/finiteVolume/fvm/fvmDdt.H b/src/finiteVolume/finiteVolume/fvm/fvmDdt.H index efc28a2cca..4091c5be6b 100644 --- a/src/finiteVolume/finiteVolume/fvm/fvmDdt.H +++ b/src/finiteVolume/finiteVolume/fvm/fvmDdt.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -77,6 +77,14 @@ namespace fvm const GeometricField& ); + template + tmp > ddt + ( + const volScalarField&, + const volScalarField&, + const GeometricField& + ); + template tmp > ddt (