74 #ifndef Foam_MeshObject_H 75 #define Foam_MeshObject_H 121 template<
class Mesh,
template<
class>
class MeshObjectType>
130 template<
class>
class FromType,
131 template<
class>
class ToType
141 template<
class Mesh,
template<
class>
class MeshObjectType,
class Type>
144 public MeshObjectType<Mesh>
170 template<
class... Args>
172 static const Type&
New(
const Mesh&
mesh, Args&&...
args);
175 template<
class... Args>
177 static const Type&
New 185 static bool Store(std::unique_ptr<Type>&& ptr);
198 static std::unique_ptr<Type>
Release 209 static std::unique_ptr<Type>
Release 241 class TopologicalMeshObject
325 #include "MeshObject.txx" static bool Store(std::unique_ptr< Type > &&ptr)
Transfer ownership of meshObject to registry.
MoveableMeshObject(const word &objName, const objectRegistry &obr)
Construct from name and instance on registry.
static void movePoints(objectRegistry &obr)
Update for mesh motion.
static FOAM_NO_DANGLING_REFERENCE const Type & New(const Mesh &mesh, Args &&... args)
Get existing or create MeshObject registered with typeName.
static std::unique_ptr< Type > Release(const word &objName, const Mesh &mesh, bool checkout=true)
Release ownership of meshObject (with given registration name) from registry. Returns nullptr if not ...
The meshObject is a concrete regIOobject to register MeshObject items.
virtual void updateMesh(const mapPolyMesh &mpm)=0
Update topology using the given map.
virtual bool writeData(Ostream &os) const
Dummy write.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
#define FOAM_NO_DANGLING_REFERENCE
TopologicalMeshObject(const word &objName, const objectRegistry &obr)
Construct from name and instance on registry.
Templated abstract base-class for optional mesh objects used to automate their allocation to the mesh...
static void clear(objectRegistry &obr)
Clear/remove all meshObject of MeshObjectType via objectRegistry::checkOut()
meshObject(const word &objName, const objectRegistry &obr)
Construct with given object name on a registry.
const Mesh & mesh() const noexcept
Reference to the mesh.
A class for handling words, derived from Foam::string.
virtual bool movePoints()=0
Update for mesh motion.
virtual ~MeshObject()=default
Destructor.
const Mesh & mesh_
Reference to the mesh.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
ClassName("meshObject")
Runtime declaration and debug switch.
static void updateMesh(objectRegistry &obr, const mapPolyMesh &mpm)
Update topology using the given map.
static void clearUpto(objectRegistry &obr)
Clear all meshObject derived from FromType up to (but not including) ToType.
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
static bool Delete(const word &objName, const Mesh &mesh)
Static destructor using given registration name.
Registry of regIOobjects.
Foam::argList args(argc, argv)
MeshObject(const Mesh &mesh)
Construct with Type::typeName on Mesh.
GeometricMeshObject(const word &objName, const objectRegistry &obr)
Construct from name and instance on registry.
UpdateableMeshObject(const word &objName, const objectRegistry &obr)
Construct from name and instance on registry.