Go to the documentation of this file.
70 class polyMeshTetDecomposition;
72 template<
class Type>
class indexedOctree;
133 bool clearedPrimitives_;
186 mutable bool storeOldCellCentres_;
189 mutable label curMotionTimeIndex_;
205 void operator=(
const polyMesh&) =
delete;
214 void calcDirections()
const;
218 void calcCellShapes()
const;
243 label& defaultPatchStart,
252 bool checkFaceOrthogonality
257 const bool detailedReport,
262 bool checkFaceSkewness
269 const bool detailedReport,
273 bool checkEdgeAlignment
281 bool checkCellDeterminant
295 const scalar minWeight,
303 const scalar minRatio,
343 const bool syncPar =
true
354 const bool syncPar =
true
366 const word& defaultBoundaryPatchName,
367 const word& defaultBoundaryPatchType,
368 const wordList& boundaryPatchPhysicalTypes,
369 const bool syncPar =
true
382 const word& defaultBoundaryPatchName,
383 const word& defaultBoundaryPatchType,
384 const bool syncPar =
true
502 label
comm() const noexcept;
505 label&
comm() noexcept;
523 bool moving() const noexcept
529 bool moving(
const bool on) noexcept
539 return topoChanging_;
545 bool old(topoChanging_);
587 const bool validBoundary =
true
594 const bool validBoundary =
true
606 virtual bool init(
const bool doInit);
633 const bool validBoundary =
true
678 virtual bool checkFaceOrthogonality
680 const bool report =
false,
685 virtual bool checkFaceSkewness
687 const bool report =
false,
692 virtual bool checkEdgeAlignment
699 virtual bool checkCellDeterminant
709 const bool report =
false,
710 const bool detailedReport =
false
714 virtual bool checkFaceWeight
717 const scalar minWeight = 0.05,
722 virtual bool checkVolRatio
725 const scalar minRatio = 0.01,
void addPatches(PtrList< polyPatch > &plist, const bool validBoundary=true)
Add boundary patches.
virtual const pointField & points() const
Return raw points.
virtual const pointField & oldCellCentres() const
Return old cellCentres (mesh motion)
Defines the attributes of an object for which implicit objectRegistry management is supported,...
void resetMotion() const
Reset motion.
cellDecomposition
Enumeration defining the decomposition of the cell for.
A class for handling words, derived from Foam::string.
A class for handling file names.
A primitive field of type <T> with automated input and output.
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO.
static word defaultRegion
Return the default region name.
const fileName & instance() const noexcept
void clearAddressing()
Clear topological data.
A class for managing temporary objects.
label nGeometricD() const
Return the number of valid geometric dimensions in the mesh.
virtual tmp< scalarField > movePoints(const pointField &)
Move points, returns volumes swept by faces in motion.
polyBoundaryMesh BoundaryMesh
virtual const fileName & dbDir() const
Override the objectRegistry dbDir for a single-region case.
static word meshSubDir
Return the mesh sub-directory name (usually "polyMesh")
void clearCellTree()
Clear cell tree data.
const cellList & cells() const
const fileName & facesInstance() const
Return the current instance directory for faces.
bool topoChanging(const bool on) noexcept
Set the mesh topology to be changing.
const polyBoundaryMesh & boundaryMesh() const
Return boundary mesh.
void clearOut()
Clear all geometry and addressing unnecessary for CFD.
virtual bool init(const bool doInit)
Initialise all non-demand-driven data.
const Vector< label > & solutionD() const
Return the vector of solved-for directions in mesh.
void removeFiles() const
Remove all files from mesh instance()
Set of directions for each cell in the mesh. Either uniform and size=1 or one set of directions per c...
const Vector< label > & geometricD() const
Return the vector of geometric directions in mesh.
bool pointInCell(const point &p, label celli, const cellDecomposition=CELL_TETS) const
Test if point p is in the celli.
bool topoChanging() const noexcept
Is mesh topology changing.
Mesh consisting of general polyhedral cells.
label comm() const noexcept
Return communicator used for parallel communication.
pointZoneMesh & pointZones() noexcept
Return non-const access to the pointZones.
Registry of regIOobjects.
const fileName & pointsInstance() const
Return the current instance directory for points.
writeOption
Enumeration defining the write options.
bool moving(const bool on) noexcept
Set the mesh to be moving.
void clearPrimitives()
Clear primitive data (points, faces and cells)
const cellZoneMesh & cellZones() const noexcept
Return cell zone mesh.
faceZoneMesh & faceZones() noexcept
Return non-const access to the faceZones.
virtual void updateMesh(const mapPolyMesh &mpm)
Update the mesh corresponding to given map.
void clearTetBasePtIs()
Clear tet base points.
virtual const labelList & faceOwner() const
Return face owner.
void resetPrimitives(autoPtr< pointField > &&points, autoPtr< faceList > &&faces, autoPtr< labelList > &&owner, autoPtr< labelList > &&neighbour, const labelUList &patchSizes, const labelUList &patchStarts, const bool validBoundary=true)
Reset mesh primitive data. Assumes all patch info correct.
Non-pointer based hierarchical recursive searching.
const faceZoneMesh & faceZones() const noexcept
Return face zone mesh.
const scalarField & cellVols
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
virtual const pointField & oldPoints() const
Return old points (mesh motion)
Info<< "Creating cells"<< endl;cellShapes=b.shapes();Info<< "Creating boundary faces"<< endl;boundary.setSize(b.boundaryPatches().size());forAll(boundary, patchi) { faceList faces(b.boundaryPatches()[patchi].size());forAll(faces, facei) { faces[facei]=face(b.boundaryPatches()[patchi][facei]);} boundary[patchi].transfer(faces);} points.transfer(const_cast< pointField & >b.points()));}Info<< "Creating patch dictionaries"<< endl;wordList patchNames(boundary.size());forAll(patchNames, patchi){ patchNames[patchi]=polyPatch::defaultName(patchi);}PtrList< dictionary > boundaryDicts(boundary.size())
Various mesh related information for a parallel run. Upon construction, constructs all info using par...
void findCellFacePt(const point &p, label &celli, label &tetFacei, label &tetPti) const
Find the cell, tetFacei and tetPti for point p.
virtual bool upToDatePoints(const regIOobject &io) const
Return true if io is up-to-date with points.
bool hasTetBasePtIs() const
fileName meshDir() const
Return the local mesh directory (dbDir()/meshSubDir)
cellZoneMesh & cellZones() noexcept
Return non-const access to the cellZones.
void removeBoundary()
Remove boundary patches.
void clearGeom()
Clear geometry.
readUpdateState
Enumeration defining the state of the mesh after a read update.
label nSolutionD() const
Return the number of valid solved-for dimensions in the mesh.
const boundBox & bounds() const
Return mesh bounding box.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
const indexedOctree< treeDataCell > & cellTree() const
Return the cell search tree.
virtual ~polyMesh()
Destructor.
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
bool changing() const noexcept
Is mesh changing (topology changing and/or moving)
label findCell(const point &p, const cellDecomposition=CELL_TETS) const
Find cell enclosing this location and return index.
virtual const faceList & faces() const
Return raw faces.
TypeName("polyMesh")
Runtime type information.
const objectRegistry & thisDb() const noexcept
Return the object registry.
bool moving() const noexcept
Is mesh moving.
const pointZoneMesh & pointZones() const noexcept
Return point zone mesh.
A bounding box defined in terms of min/max extrema points.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
const dimensionedScalar c
Speed of light in a vacuum.
label nFaces() const noexcept
Number of mesh faces.
Smooth ATC in cells having a point to a set of patches supplied by type.
void updateGeomPoints(pointIOField &&newPoints, autoPtr< labelIOList > &newTetBasePtIsPtr)
virtual bool checkMeshMotion(const pointField &newPoints, const bool report=false, const bool detailedReport=false) const
Check mesh motion for correctness given motion points.
const globalMeshData & globalData() const
Return parallel info.
void findTetFacePt(const label celli, const point &p, label &tetFacei, label &tetPti) const
Find the tetFacei and tetPti for point p in celli.
void addZones(const List< pointZone * > &pz, const List< faceZone * > &fz, const List< cellZone * > &cz)
Add mesh zones.
virtual bool dynamic() const
Is mesh dynamic.
virtual void setUpToDatePoints(regIOobject &io) const
Set io to be up-to-date with points.
void setInstance(const fileName &instance, const IOobject::writeOption wOpt=IOobject::AUTO_WRITE)
Set the instance for mesh files.
virtual const labelList & faceNeighbour() const
Return face neighbour.
virtual readUpdateState readUpdate()
Update the mesh based on the mesh files saved in.
A class representing the concept of 0 (zero) that can be used to avoid manipulating objects known to ...
const vectorField & faceAreas() const
const labelIOList & tetBasePtIs() const
Return the tetBasePtIs.
Cell-face mesh analysis engine.