Solvers based on p_rgh: Added support for optional hRef

Allows the specification of a reference height, for example the height
of the free-surface in a VoF simulation, which reduces the range of p_rgh.

hRef is a uniformDimensionedScalarField specified via the constant/hRef
file, equivalent to the way in which g is specified, so that it can be
looked-up from the database.  For example see the constant/hRef file in
the DTCHull LTSInterFoam and interDyMFoam cases.
This commit is contained in:
Henry
2015-03-17 17:15:11 +00:00
parent e68c5f666b
commit e588d61879
31 changed files with 161 additions and 51 deletions

View File

@ -101,10 +101,14 @@
volScalarField K("K", 0.5*magSqr(U)); volScalarField K("K", 0.5*magSqr(U));
Info<< "Calculating field g.h\n" << endl; #include "readGravitationalAcceleration.H"
volScalarField gh("gh", g & mesh.C()); #include "readhRef.H"
Info<< "Calculating field g.h\n" << endl;
dimensionedScalar ghRef(g & (cmptMag(g.value())/mag(g.value()))*hRef);
volScalarField gh("gh", (g & mesh.C()) - ghRef);
surfaceScalarField ghf("ghf", (g & mesh.Cf()) - ghRef);
surfaceScalarField ghf("ghf", g & mesh.Cf());
volScalarField p_rgh volScalarField p_rgh
( (

View File

@ -54,7 +54,6 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "createClouds.H" #include "createClouds.H"

View File

@ -63,9 +63,14 @@ autoPtr<compressible::turbulenceModel> turbulence
reaction->setTurbulence(turbulence()); reaction->setTurbulence(turbulence());
#include "readGravitationalAcceleration.H"
#include "readhRef.H"
Info<< "Calculating field g.h\n" << endl; Info<< "Calculating field g.h\n" << endl;
volScalarField gh("gh", g & mesh.C()); dimensionedScalar ghRef(g & (cmptMag(g.value())/mag(g.value()))*hRef);
surfaceScalarField ghf("ghf", g & mesh.Cf()); volScalarField gh("gh", (g & mesh.C()) - ghRef);
surfaceScalarField ghf("ghf", (g & mesh.Cf()) - ghRef);
Info<< "Reading field p_rgh\n" << endl; Info<< "Reading field p_rgh\n" << endl;
volScalarField p_rgh volScalarField p_rgh

View File

@ -48,7 +48,6 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -63,7 +63,6 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createIncompressibleRadiationModel.H" #include "createIncompressibleRadiationModel.H"
#include "createFvOptions.H" #include "createFvOptions.H"

View File

@ -79,9 +79,15 @@
mesh mesh
); );
#include "readGravitationalAcceleration.H"
#include "readhRef.H"
Info<< "Calculating field g.h\n" << endl; Info<< "Calculating field g.h\n" << endl;
volScalarField gh("gh", g & mesh.C()); dimensionedScalar ghRef(g & (cmptMag(g.value())/mag(g.value()))*hRef);
surfaceScalarField ghf("ghf", g & mesh.Cf()); volScalarField gh("gh", (g & mesh.C()) - ghRef);
surfaceScalarField ghf("ghf", (g & mesh.Cf()) - ghRef);
volScalarField p volScalarField p
( (

View File

@ -62,7 +62,6 @@ int main(int argc, char *argv[])
simpleControl simple(mesh); simpleControl simple(mesh);
#include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -79,9 +79,15 @@
mesh mesh
); );
#include "readGravitationalAcceleration.H"
#include "readhRef.H"
Info<< "Calculating field g.h\n" << endl; Info<< "Calculating field g.h\n" << endl;
volScalarField gh("gh", g & mesh.C()); dimensionedScalar ghRef(g & (cmptMag(g.value())/mag(g.value()))*hRef);
surfaceScalarField ghf("ghf", g & mesh.Cf()); volScalarField gh("gh", (g & mesh.C()) - ghRef);
surfaceScalarField ghf("ghf", (g & mesh.Cf()) - ghRef);
volScalarField p volScalarField p
( (

View File

@ -80,10 +80,15 @@
Info<< "Creating field kinetic energy K\n" << endl; Info<< "Creating field kinetic energy K\n" << endl;
volScalarField K("K", 0.5*magSqr(U)); volScalarField K("K", 0.5*magSqr(U));
Info<< "Calculating field g.h\n" << endl;
volScalarField gh("gh", g & mesh.C());
surfaceScalarField ghf("ghf", g & mesh.Cf()); #include "readGravitationalAcceleration.H"
#include "readhRef.H"
Info<< "Calculating field g.h\n" << endl;
dimensionedScalar ghRef(g & (cmptMag(g.value())/mag(g.value()))*hRef);
volScalarField gh("gh", (g & mesh.C()) - ghRef);
surfaceScalarField ghf("ghf", (g & mesh.Cf()) - ghRef);
volScalarField p_rgh volScalarField p_rgh
( (

View File

@ -52,7 +52,6 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "createClouds.H" #include "createClouds.H"

View File

@ -56,7 +56,6 @@ int main(int argc, char *argv[])
#include "setRootCase.H" #include "setRootCase.H"
#include "createTime.H" #include "createTime.H"
#include "createDynamicFvMesh.H" #include "createDynamicFvMesh.H"
#include "readGravitationalAcceleration.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
@ -98,8 +97,8 @@ int main(int argc, char *argv[])
<< runTime.elapsedCpuTime() - timeBeforeMeshUpdate << runTime.elapsedCpuTime() - timeBeforeMeshUpdate
<< " s" << endl; << " s" << endl;
gh = g & mesh.C(); gh = (g & mesh.C()) - ghRef;
ghf = g & mesh.Cf(); ghf = (g & mesh.Cf()) - ghRef;
} }
if (mesh.changing() && correctPhi) if (mesh.changing() && correctPhi)

View File

@ -53,7 +53,6 @@ int main(int argc, char *argv[])
#include "setRootCase.H" #include "setRootCase.H"
#include "createTime.H" #include "createTime.H"
#include "createMesh.H" #include "createMesh.H"
#include "readGravitationalAcceleration.H"
pimpleControl pimple(mesh); pimpleControl pimple(mesh);

View File

@ -57,11 +57,22 @@
); );
dimensionedScalar pMin(mixture.lookup("pMin")); dimensionedScalar pMin
(
"pMin",
dimPressure,
mixture.lookup("pMin")
);
#include "readGravitationalAcceleration.H"
#include "readhRef.H"
Info<< "Calculating field g.h\n" << endl; Info<< "Calculating field g.h\n" << endl;
volScalarField gh("gh", g & mesh.C()); dimensionedScalar ghRef(g & (cmptMag(g.value())/mag(g.value()))*hRef);
surfaceScalarField ghf("ghf", g & mesh.Cf()); volScalarField gh("gh", (g & mesh.C()) - ghRef);
surfaceScalarField ghf("ghf", (g & mesh.Cf()) - ghRef);
// Mass flux // Mass flux
// Initialisation does not matter because rhoPhi is reset after the // Initialisation does not matter because rhoPhi is reset after the

View File

@ -48,7 +48,6 @@ int main(int argc, char *argv[])
#include "setRootCase.H" #include "setRootCase.H"
#include "createTime.H" #include "createTime.H"
#include "createMesh.H" #include "createMesh.H"
#include "readGravitationalAcceleration.H"
pimpleControl pimple(mesh); pimpleControl pimple(mesh);

View File

@ -49,9 +49,14 @@
dimensionedScalar pMin(mixture.lookup("pMin")); dimensionedScalar pMin(mixture.lookup("pMin"));
#include "readGravitationalAcceleration.H"
#include "readhRef.H"
Info<< "Calculating field g.h\n" << endl; Info<< "Calculating field g.h\n" << endl;
volScalarField gh("gh", g & mesh.C()); dimensionedScalar ghRef(g & (cmptMag(g.value())/mag(g.value()))*hRef);
surfaceScalarField ghf("ghf", g & mesh.Cf()); volScalarField gh("gh", (g & mesh.C()) - ghRef);
surfaceScalarField ghf("ghf", (g & mesh.Cf()) - ghRef);
// Construct compressible turbulence model // Construct compressible turbulence model
autoPtr<compressible::turbulenceModel> turbulence autoPtr<compressible::turbulenceModel> turbulence

View File

@ -90,9 +90,15 @@
::New(rho, U, rhoPhi, mixture) ::New(rho, U, rhoPhi, mixture)
); );
Info<< "Calculating field (g.h)f\n" << endl;
volScalarField gh("gh", g & mesh.C()); #include "readGravitationalAcceleration.H"
surfaceScalarField ghf("ghf", g & mesh.Cf()); #include "readhRef.H"
Info<< "Calculating field g.h\n" << endl;
dimensionedScalar ghRef(g & (cmptMag(g.value())/mag(g.value()))*hRef);
volScalarField gh("gh", (g & mesh.C()) - ghRef);
surfaceScalarField ghf("ghf", (g & mesh.Cf()) - ghRef);
volScalarField p volScalarField p
( (

View File

@ -57,7 +57,6 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "readGravitationalAcceleration.H"
#include "createFields.H" #include "createFields.H"
#include "createFvOptions.H" #include "createFvOptions.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"

View File

@ -77,10 +77,12 @@
); );
#include "readGravitationalAcceleration.H" #include "readGravitationalAcceleration.H"
#include "readhRef.H"
Info<< "Calculating field g.h\n" << endl; Info<< "Calculating field g.h\n" << endl;
volScalarField gh("gh", g & mesh.C()); dimensionedScalar ghRef(g & (cmptMag(g.value())/mag(g.value()))*hRef);
surfaceScalarField ghf("ghf", g & mesh.Cf()); volScalarField gh("gh", (g & mesh.C()) - ghRef);
surfaceScalarField ghf("ghf", (g & mesh.Cf()) - ghRef);
volScalarField p volScalarField p
( (

View File

@ -110,8 +110,8 @@ int main(int argc, char *argv[])
<< runTime.elapsedCpuTime() - timeBeforeMeshUpdate << runTime.elapsedCpuTime() - timeBeforeMeshUpdate
<< " s" << endl; << " s" << endl;
gh = g & mesh.C(); gh = (g & mesh.C()) - ghRef;
ghf = g & mesh.Cf(); ghf = (g & mesh.Cf()) - ghRef;
} }
if (mesh.changing() && correctPhi) if (mesh.changing() && correctPhi)

View File

@ -79,10 +79,13 @@
incompressible::turbulenceModel::New(U, phi, mixture) incompressible::turbulenceModel::New(U, phi, mixture)
); );
#include "readGravitationalAcceleration.H"
#include "readhRef.H"
Info<< "Calculating field g.h\n" << endl; Info<< "Calculating field g.h\n" << endl;
volScalarField gh("gh", g & mesh.C()); dimensionedScalar ghRef(g & (cmptMag(g.value())/mag(g.value()))*hRef);
surfaceScalarField ghf("ghf", g & mesh.Cf()); volScalarField gh("gh", (g & mesh.C()) - ghRef);
surfaceScalarField ghf("ghf", (g & mesh.Cf()) - ghRef);
volScalarField p volScalarField p
( (

View File

@ -50,7 +50,6 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "readGravitationalAcceleration.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
#include "createFields.H" #include "createFields.H"
#include "createFvOptions.H" #include "createFvOptions.H"

View File

@ -67,9 +67,14 @@
); );
#include "readGravitationalAcceleration.H"
#include "readhRef.H"
Info<< "Calculating field g.h\n" << endl; Info<< "Calculating field g.h\n" << endl;
volScalarField gh("gh", g & mesh.C()); dimensionedScalar ghRef(g & (cmptMag(g.value())/mag(g.value()))*hRef);
surfaceScalarField ghf("ghf", g & mesh.Cf()); volScalarField gh("gh", (g & mesh.C()) - ghRef);
surfaceScalarField ghf("ghf", (g & mesh.Cf()) - ghRef);
volScalarField p volScalarField p
( (

View File

@ -63,7 +63,6 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "readGravitationalAcceleration.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
#include "createFields.H" #include "createFields.H"
#include "createFvOptions.H" #include "createFvOptions.H"
@ -122,8 +121,8 @@ int main(int argc, char *argv[])
<< runTime.elapsedCpuTime() - timeBeforeMeshUpdate << runTime.elapsedCpuTime() - timeBeforeMeshUpdate
<< " s" << endl; << " s" << endl;
gh = g & mesh.C(); gh = (g & mesh.C()) - ghRef;
ghf = g & mesh.Cf(); ghf = (g & mesh.Cf()) - ghRef;
} }
if (mesh.changing() && correctPhi) if (mesh.changing() && correctPhi)

View File

@ -60,7 +60,6 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "readGravitationalAcceleration.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
#include "createFields.H" #include "createFields.H"
#include "createFvOptions.H" #include "createFvOptions.H"

View File

@ -52,11 +52,15 @@
incompressible::turbulenceModel::New(U, phi, mixture) incompressible::turbulenceModel::New(U, phi, mixture)
); );
#include "readGravitationalAcceleration.H" #include "readGravitationalAcceleration.H"
#include "readhRef.H"
Info<< "Calculating field g.h\n" << endl; Info<< "Calculating field g.h\n" << endl;
volScalarField gh("gh", g & mesh.C()); dimensionedScalar ghRef(g & (cmptMag(g.value())/mag(g.value()))*hRef);
surfaceScalarField ghf("ghf", g & mesh.Cf()); volScalarField gh("gh", (g & mesh.C()) - ghRef);
surfaceScalarField ghf("ghf", (g & mesh.Cf()) - ghRef);
volScalarField p volScalarField p
( (

View File

@ -106,8 +106,8 @@ int main(int argc, char *argv[])
<< runTime.elapsedCpuTime() - timeBeforeMeshUpdate << runTime.elapsedCpuTime() - timeBeforeMeshUpdate
<< " s" << endl; << " s" << endl;
gh = g & mesh.C(); gh = (g & mesh.C()) - ghRef;
ghf = g & mesh.Cf(); ghf = (g & mesh.Cf()) - ghRef;
} }
if (mesh.changing() && correctPhi) if (mesh.changing() && correctPhi)

View File

@ -69,9 +69,15 @@
incompressible::turbulenceModel::New(U, phi, mixture) incompressible::turbulenceModel::New(U, phi, mixture)
); );
#include "readGravitationalAcceleration.H"
#include "readhRef.H"
Info<< "Calculating field g.h\n" << endl; Info<< "Calculating field g.h\n" << endl;
volScalarField gh("gh", g & mesh.C()); dimensionedScalar ghRef(g & (cmptMag(g.value())/mag(g.value()))*hRef);
surfaceScalarField ghf("ghf", g & mesh.Cf()); volScalarField gh("gh", (g & mesh.C()) - ghRef);
surfaceScalarField ghf("ghf", (g & mesh.Cf()) - ghRef);
volScalarField p volScalarField p
( (

View File

@ -49,7 +49,6 @@ int main(int argc, char *argv[])
pimpleControl pimple(mesh); pimpleControl pimple(mesh);
#include "readGravitationalAcceleration.H"
#include "initContinuityErrs.H" #include "initContinuityErrs.H"
#include "createFields.H" #include "createFields.H"
#include "readTimeControls.H" #include "readTimeControls.H"

View File

@ -0,0 +1,13 @@
Info<< "\nReading hRef" << endl;
uniformDimensionedScalarField hRef
(
IOobject
(
"hRef",
runTime.constant(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::NO_WRITE
),
dimensionedScalar("hRef", dimLength, 0)
);

View File

@ -0,0 +1,21 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class uniformDimensionedScalarField;
location "constant";
object hRef;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 0 0 0 0 0];
value 0.244;
// ************************************************************************* //

View File

@ -0,0 +1,21 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class uniformDimensionedScalarField;
location "constant";
object hRef;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 0 0 0 0 0];
value 0.244;
// ************************************************************************* //