From bf2ed1abcf56ffaff22c757caf288b64c53ed18b Mon Sep 17 00:00:00 2001 From: Andrew Heather Date: Tue, 27 Jun 2017 11:18:55 +0100 Subject: [PATCH] ENH: Updated pressure-work term creation for moving meshes --- .../dynamicFvMesh/dynamicFvMesh.H | 2 + src/engine/engineMesh/engineMesh/engineMesh.H | 2 + .../cfdTools/compressible/createDpdt.H | 45 ++++++++++++++----- 3 files changed, 37 insertions(+), 12 deletions(-) diff --git a/src/dynamicFvMesh/dynamicFvMesh/dynamicFvMesh.H b/src/dynamicFvMesh/dynamicFvMesh/dynamicFvMesh.H index 6447ba5240..1b88deb374 100644 --- a/src/dynamicFvMesh/dynamicFvMesh/dynamicFvMesh.H +++ b/src/dynamicFvMesh/dynamicFvMesh/dynamicFvMesh.H @@ -40,6 +40,8 @@ SourceFiles #include "autoPtr.H" #include "runTimeSelectionTables.H" +#define MOVING_MESH + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam diff --git a/src/engine/engineMesh/engineMesh/engineMesh.H b/src/engine/engineMesh/engineMesh/engineMesh.H index a2e72cb2f0..cdd32c1fde 100644 --- a/src/engine/engineMesh/engineMesh/engineMesh.H +++ b/src/engine/engineMesh/engineMesh/engineMesh.H @@ -40,6 +40,8 @@ SourceFiles #include "autoPtr.H" #include "runTimeSelectionTables.H" +#define MOVING_MESH + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam diff --git a/src/finiteVolume/cfdTools/compressible/createDpdt.H b/src/finiteVolume/cfdTools/compressible/createDpdt.H index 2d645e5e1d..b831c85a66 100644 --- a/src/finiteVolume/cfdTools/compressible/createDpdt.H +++ b/src/finiteVolume/cfdTools/compressible/createDpdt.H @@ -1,18 +1,39 @@ -Info<< "Creating field dpdt\n" << endl; -volScalarField dpdt -( - IOobject +#if defined(MOVING_MESH) + Info<< "Creating field dpdt for moving meshes\n" << endl; + + // Note: set to read if present and auto write to simplify dpdt correction + // by meshPhi + volScalarField dpdt ( - "dpdt", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - fvc::ddt(p) -); + IOobject + ( + "dpdt", + runTime.timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + fvc::ddt(p) + ); +#else + Info<< "Creating field dpdt\n" << endl; + + volScalarField dpdt + ( + IOobject + ( + "dpdt", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + fvc::ddt(p) + ); +#endif if (!thermo.dpdt()) { dpdt == dimensionedScalar("0", dpdt.dimensions(), 0); + dpdt.writeOpt() = IOobject::NO_WRITE; }