From 29f9a3db27eb8b72b21bcbc884b980a33a33f589 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 10 Apr 2019 12:54:32 +0200 Subject: [PATCH] ENH: make gravity mesh object unmovable and properly registered (#1276) - change from UpdateableMeshObject to TopologicalMeshObject - change inheritance order to have MeshObject be registered first and mark the IOobject descriptor as unregistered --- .../meshObjects/gravity/gravityMeshObject.C | 2 +- .../meshObjects/gravity/gravityMeshObject.H | 62 +++++++------------ 2 files changed, 24 insertions(+), 40 deletions(-) diff --git a/src/finiteVolume/cfdTools/general/meshObjects/gravity/gravityMeshObject.C b/src/finiteVolume/cfdTools/general/meshObjects/gravity/gravityMeshObject.C index 153a0a0c0e..b1ef70ea84 100644 --- a/src/finiteVolume/cfdTools/general/meshObjects/gravity/gravityMeshObject.C +++ b/src/finiteVolume/cfdTools/general/meshObjects/gravity/gravityMeshObject.C @@ -32,7 +32,7 @@ namespace Foam { namespace meshObjects { - defineTypeNameAndDebug(gravity, 0); + defineTypeName(gravity); } } diff --git a/src/finiteVolume/cfdTools/general/meshObjects/gravity/gravityMeshObject.H b/src/finiteVolume/cfdTools/general/meshObjects/gravity/gravityMeshObject.H index 2083e6719e..a407f9c34d 100644 --- a/src/finiteVolume/cfdTools/general/meshObjects/gravity/gravityMeshObject.H +++ b/src/finiteVolume/cfdTools/general/meshObjects/gravity/gravityMeshObject.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyrigravityht (C) 2018 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2018-2019 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -19,13 +19,15 @@ License for more details. You should have received a copy of the GNU General Public License - along with OpenFOAM. If not, see . + along with OpenFOAM. If not, see . Class Foam::meshObjects::gravity Description Gravitational acceleration vector + Although termed a \em MeshObject it is registered on Time only + and thus identical for all regions. SourceFiles gravityMeshObject.C @@ -52,67 +54,49 @@ namespace meshObjects class gravity : - public uniformDimensionedVectorField, public MeshObject < Time, - Foam::UpdateableMeshObject, + TopologicalMeshObject, gravity - > + >, + public uniformDimensionedVectorField { public: //- Run-time type information - TypeName("g"); + TypeNameNoDebug("g"); - //- Construct with objectRegistry and IOobject - explicit gravity(const Time& runTime, const IOobject& io) + //- Construct on Time + explicit gravity(const Time& runTime) : - uniformDimensionedVectorField(io), - MeshObject - < - Time, - Foam::UpdateableMeshObject, - gravity - >(runTime) - {} - - - //- Construct from Time - static const gravity& New(const Time& runTime) - { - return MeshObject::New + MeshObject(runTime), + uniformDimensionedVectorField ( - runTime, IOobject ( - "g", + "g", // Must be identical to typeName! runTime.constant(), runTime, IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE + IOobject::NO_WRITE, + false // let MeshObject register it ) - ); + ) + {} + + + //- Construct on Time + static const gravity& New(const Time& runTime) + { + return MeshObject::New(runTime); } //- Destructor virtual ~gravity() = default; - - - // Member Functions - - //- Callback for gometry motion - virtual bool movePoints() - { - return false; - } - - //- Callback for topology change - virtual void updateMesh(const mapPolyMesh& mpm) - {} };