72 class fvMeshLduAddressing;
74 class fvMeshTopoChanger;
75 class fvMeshDistributor;
78 class polyDistributionMap;
81 class UCompactListList;
83 namespace fvMeshTopoChangers
156 mutable IOobject* polyFacesBfIOPtr_;
165 mutable labelList* polyBFaceOffsetPatchesPtr_;
168 mutable labelList* polyBFaceOffsetPatchFacesPtr_;
183 mutable label curTimeIndex_;
233 void clearFvGeomNotOldVol();
240 void updateGeomNotOldVol();
243 template<
class Type,
template<
class>
class GeoField>
244 void storeOldTimeFields();
247 template<
template<
class>
class GeoField>
248 void storeOldTimeFields();
253 void storeOldTimeFields();
256 template<
class Type,
template<
class>
class GeoField>
257 void nullOldestTimeFields();
260 template<
template<
class>
class GeoField>
261 void nullOldestTimeFields();
265 void nullOldestTimeFields();
271 wordList polyFacesPatchTypes()
const;
283 void makeMagSf()
const;
353 const bool doPost =
true
365 const word& defaultBoundaryPatchName,
366 const word& defaultBoundaryPatchType,
367 const bool syncPar =
true
379 const bool syncPar =
true
390 const bool syncPar =
true
420 const bool validBoundary =
true
571 template<
class GeoField>
580 template<
class GeoField>
583 const bool strict =
false,
638 void clearAddressing(
const bool isMeshUpdate =
false);
672 NullObjectRef<surfaceScalarField>()
682 NullObjectRef<surfaceScalarField>(),
683 const bool sync =
true
692 const label insertPatchi,
701 const bool validBoundary
721 const bool write =
true
741 fvMesh::validComponents<sphericalTensor>()
const;
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Generic GeometricBoundaryField class.
Generic GeometricField class.
A HashTable with keys but without contents.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
const word & name() const
Return name.
streamFormat
Enumeration for the format of data in the stream.
compressionType
Enumeration for the format of data in the stream.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
Specialisation of DimensionedField which holds a slice of a given complete field in such a form that ...
Specialisation of GeometricField which holds slices of given complete fields in a form that they act ...
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Named list of cell indices representing a sub-set of the mesh.
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
A class for handling file names.
lduInterfacePtrsList interfaces() const
Return a list of pointers for each patch.
Base class for finite-volume field sources.
Abstract base class for fvMesh movers.
Foam::fvMeshLduAddressing.
Abstract base class for fvMesh movers.
Mesh manipulator that uses the intersection provided by the cyclic non-conformal poly patches to crea...
Abstract base class for fvMesh topology changers.
Sequence of mesh topology changes applied in order.
Mesh data needed to do the Finite Volume discretisation.
const Time & time() const
Return the top-level database.
const volVectorField & C() const
Return cell centres.
static const HashSet< word > curGeometryFields
Set of names of registered current-time geometric fields.
virtual const objectRegistry & db() const
Return the object registry - resolve conflict polyMesh/lduMesh.
const fileName & polyFacesBfInstance() const
Get the current instance for the poly faces boundary field.
const DimensionedField< scalar, fvMesh > & V() const
Return cell volumes.
const labelUList & owner() const
Internal face owner.
const fvBoundaryMesh & boundary() const
Return reference to boundary mesh.
const DimensionedField< scalar, fvMesh > & V00() const
Return old-old-time cell volumes.
void operator=(const fvMesh &)=delete
Disallow default bitwise assignment.
stitchType
Extent to which to stitch on read and readUpdate. By default, a.
void postConstruct(const bool changers, const bool zones, const stitchType stitch)
Complete construction of the mesh.
const surfaceScalarField & phi() const
Return cell face motion fluxes.
virtual const lduAddressing & lduAddr() const
Return ldu addressing.
const UCompactListList< label > & polyBFacePatches() const
Return poly-bFace-patch addressing.
const fvMeshDistributor & distributor() const
Return the distributor function class.
const fvSchemes & schemes() const
Return the fvSchemes.
void clearGeom()
Clear geometry.
readUpdateState
Enumeration defining the state of the mesh after a read update.
virtual ~fvMesh()
Destructor.
pTraits< Type >::labelType validComponents() const
Return a labelType of valid component indicators.
UPtrList< GeoField > curFields(const bool strict=false, const HashSet< word > &geometryFields=fvMesh::geometryFields) const
Return the list of current fields of type GeoField.
const GeometricBoundaryField< label, surfaceMesh > & ownerBf() const
Return face-owner addressing.
static const HashSet< word > geometryFields
Set of names of registered geometric fields.
const fvMeshStitcher & stitcher() const
Return the stitcher function class.
void preChange()
Prepare for a mesh change.
tmp< surfaceVectorField > nf() const
Return cell face normal vectors.
const fvSolution & solution() const
Return the fvSolution.
void addFvPatches(const List< polyPatch * > &, const bool validBoundary=true)
Add boundary patches. Constructor helper.
const surfaceVectorField & Cf() const
Return face centres.
void swap(fvMesh &)
Swap mesh.
const GeometricBoundaryField< label, surfaceMesh > & polyFacesBf() const
Return face-poly-face addressing.
bool operator==(const fvMesh &) const
virtual label comm() const
Return communicator used for parallel communication.
const UCompactListList< label > & polyBFacePatchFaces() const
Return poly-bFace-patch-face addressing.
bool operator!=(const fvMesh &) const
virtual bool writeObject(IOstream::streamFormat fmt, IOstream::versionNumber ver, IOstream::compressionType cmp, const bool write=true) const
Write the mesh data and all objects in the registry.
virtual void mapMesh(const polyMeshMap &)
Update from another mesh using the given map.
void mapFields(const polyTopoChangeMap &map)
Map all fields in time using given map.
const DimensionedField< scalar, fvMesh > & V0() const
Return old-time cell volumes.
UPtrList< GeoField > fields(bool strict=false, const HashSet< word > &geometryFields=fvMesh::geometryFields) const
Return the list of fields of type GeoField.
virtual lduInterfacePtrsList interfaces() const
Return a list of pointers for each patch.
tmp< DimensionedField< Type, fvMesh > > lookupField(const word &) const
Lookup a dimensioned field for this geometry.
const surfaceVectorField & Sf() const
Return cell face area vectors.
label size() const
Return fvMesh size.
bool update()
Update the mesh for topology change, mesh to mesh mapping.
bool topoChanged() const
Has the mesh topology changed this time-step?
const labelUList & neighbour() const
Internal face neighbour.
const surfaceScalarField & magSf() const
Return cell face area magnitudes.
void setPolyFacesBfInstance(const fileName &)
Set the instance for the poly faces boundary field.
virtual void distribute(const polyDistributionMap &map)
Redistribute or update using the given distribution map.
void removeFvBoundary()
Remove boundary patches. Warning: fvPatchFields hold ref to.
bool distributing() const
Does the mesh get redistributed?
tmp< DimensionedField< scalar, fvMesh > > Vsc0() const
Return sub-cycle old-time cell volumes.
void printAllocated() const
Print a list of all the currently allocated mesh data.
fvBoundaryMesh BoundaryMesh
const word & name() const
Return reference to name.
virtual void reorderPatches(const labelUList &newToOld, const bool validBoundary)
Reorder and trim existing patches. If validBoundary the new.
const fvMesh & operator()() const
Return reference to fvMesh for volFields GeoMesh argument.
void unconform(const GeometricBoundaryField< label, surfaceMesh > &polyFacesBf, const surfaceVectorField &Sf, const surfaceVectorField &Cf, const surfaceScalarField &phi=NullObjectRef< surfaceScalarField >(), const bool sync=true)
Unconform the fvMesh from the polyMesh.
bool dynamic() const
Is this mesh dynamic?
fvMesh(const IOobject &io, const bool doPost=true)
Construct from IOobject.
const fvMeshTopoChanger & topoChanger() const
Return the topo-changer function class.
virtual void topoChange(const polyTopoChangeMap &map)
Update mesh corresponding to the given map.
tmp< surfaceVectorField > delta() const
Return face deltas as surfaceVectorField.
bool topoChanging() const
Does the mesh topology change?
virtual bool writeMesh() const
Write the mesh data only.
tmp< DimensionedField< scalar, fvMesh > > Vsc() const
Return sub-cycle cell volumes.
virtual void addPatch(const label insertPatchi, const polyPatch &patch)
Add/insert single patch.
void clearOut()
Clear all geometry and addressing.
bool move()
Move the mesh.
virtual void setPoints(const pointField &)
Reset the points.
const fvMeshMover & mover() const
Return the mover function class.
void conform(const surfaceScalarField &phi=NullObjectRef< surfaceScalarField >())
Conform the fvMesh to the polyMesh.
bool conformal() const
Return whether the fvMesh is conformal with the polyMesh.
const polyMesh & poly() const
Return reference to polyMesh.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
Selector class for finite volume differencing schemes. fvMesh is derived from fvSchemes so that all f...
Selector class for finite volume solution solution. fvMesh is derived from fvSolution so that all fie...
The class contains the addressing required by the lduMatrix: upper, lower and losort.
virtual const labelUList & upperAddr() const =0
Return upper addressing.
virtual const labelUList & lowerAddr() const =0
Return lower addressing.
Abstract base class for meshes which provide LDU addressing for the construction of lduMatrix and LDU...
Registry of regIOobjects.
const Time & time() const
Return time.
Traits class for primitives.
Class containing mesh-to-mesh mapping information after a mesh distribution where we send parts of me...
Class containing mesh-to-mesh mapping information.
Mesh consisting of general polyhedral cells.
const objectRegistry & db() const
Return the object registry.
virtual const faceList & faces() const
Return raw faces.
label comm() const
Return communicator used for parallel communication.
readUpdateState readUpdate()
Update the mesh based on the mesh files saved in.
bool topoChanged() const
Has the mesh topology changed this time-step?
virtual const pointField & points() const
Return raw points.
bool moving() const
Is the mesh moving?
A patch is a list of labels that address the faces in the global face list.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
const cellList & cells() const
virtual bool write(const bool write=true) const
Write using setting from DB.
Cell to surface interpolation scheme. Included in fvMesh.
bool movePoints()
Do what is necessary if the mesh has moved.
Mesh data for surface fields.
A class for managing temporary objects.
A class for handling words, derived from string.
Macro definitions for declaring ClassName(), NamespaceName(), etc.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const fvMesh & region(const dictionary &dict)
Cast the give dictionary to the corresponding region fvMesh.