From 34606f54b93b722637453dbda2b5f4c99447cf2c Mon Sep 17 00:00:00 2001 From: Andrew Heather <a.heather@opencfd.co.uk> Date: Fri, 1 Jun 2018 15:39:28 +0100 Subject: [PATCH] COMP: Updated createDpDt for moving meshes --- .../dynamicFvMesh/dynamicFvMeshNew.C | 11 ++-- src/engine/engineMesh/engineMesh/engineMesh.H | 12 +++-- .../cfdTools/compressible/createDpdt.H | 51 ++++++++----------- 3 files changed, 33 insertions(+), 41 deletions(-) diff --git a/src/dynamicFvMesh/dynamicFvMesh/dynamicFvMeshNew.C b/src/dynamicFvMesh/dynamicFvMesh/dynamicFvMeshNew.C index a5ea250e1fa..ce86e1d3dcb 100644 --- a/src/dynamicFvMesh/dynamicFvMesh/dynamicFvMeshNew.C +++ b/src/dynamicFvMesh/dynamicFvMesh/dynamicFvMeshNew.C @@ -49,9 +49,9 @@ Foam::autoPtr<Foam::dynamicFvMesh> Foam::dynamicFvMesh::New(const IOobject& io) { IOdictionary dict(dictHeader); - const word dynamicFvMeshTypeName(dict.lookup("dynamicFvMesh")); + const word modelType(dict.lookup("dynamicFvMesh")); - Info<< "Selecting dynamicFvMesh " << dynamicFvMeshTypeName << endl; + Info<< "Selecting dynamicFvMesh " << modelType << endl; const_cast<Time&>(io.time()).libs().open ( @@ -67,25 +67,22 @@ Foam::autoPtr<Foam::dynamicFvMesh> Foam::dynamicFvMesh::New(const IOobject& io) << exit(FatalError); } - auto cstrIter = - IOobjectConstructorTablePtr_->cfind(dynamicFvMeshTypeName); + auto cstrIter = IOobjectConstructorTablePtr_->cfind(modelType); if (!cstrIter.found()) { FatalIOErrorInFunction(dict) << "Unknown dynamicFvMesh type " - << dynamicFvMeshTypeName << nl << nl + << modelType << nl << nl << "Valid dynamicFvMesh types are :" << endl << IOobjectConstructorTablePtr_->sortedToc() << exit(FatalIOError); } - #define MOVING_MESH return autoPtr<dynamicFvMesh>(cstrIter()(io)); } - #undef MOVING_MESH return autoPtr<dynamicFvMesh>(new staticFvMesh(io)); } diff --git a/src/engine/engineMesh/engineMesh/engineMesh.H b/src/engine/engineMesh/engineMesh/engineMesh.H index d9fdf359ef8..3d6f89c3c32 100644 --- a/src/engine/engineMesh/engineMesh/engineMesh.H +++ b/src/engine/engineMesh/engineMesh/engineMesh.H @@ -40,15 +40,13 @@ SourceFiles #include "autoPtr.H" #include "runTimeSelectionTables.H" -#define MOVING_MESH - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { /*---------------------------------------------------------------------------*\ - Class engineMesh Declaration + Class engineMesh Declaration \*---------------------------------------------------------------------------*/ class engineMesh @@ -114,9 +112,13 @@ public: // Member Functions - // Edit + //- Is mesh dynamic + virtual bool dynamic() const + { + return true; + } - virtual void move() = 0; + virtual void move() = 0; }; diff --git a/src/finiteVolume/cfdTools/compressible/createDpdt.H b/src/finiteVolume/cfdTools/compressible/createDpdt.H index 0d74762fd05..aabc296ae09 100644 --- a/src/finiteVolume/cfdTools/compressible/createDpdt.H +++ b/src/finiteVolume/cfdTools/compressible/createDpdt.H @@ -1,36 +1,29 @@ -#if defined(MOVING_MESH) +IOobject dpdtHeader +( + "dpdt", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE +); + +if (mesh.dynamic()) +{ 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 - ( - IOobject - ( - "dpdt", - runTime.timeName(), - mesh, - IOobject::READ_IF_PRESENT, - IOobject::AUTO_WRITE - ), - fvc::ddt(p) - ); -#else + // Note + // - set to READ_IF_PRESENT and AUTO_WRITE to simplify dpdt correction + // by meshPhi + + dpdtHeader.readOpt() = IOobject::READ_IF_PRESENT; + dpdtHeader.writeOpt() = IOobject::AUTO_WRITE; +} +else +{ Info<< "Creating field dpdt\n" << endl; +} - volScalarField dpdt - ( - IOobject - ( - "dpdt", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - fvc::ddt(p) - ); -#endif +volScalarField dpdt(dpdtHeader, fvc::ddt(p)); if (!thermo.dpdt()) { -- GitLab