41#ifndef Foam_polySurface_H
42#define Foam_polySurface_H
57class polySurfaceGeoMesh;
58class polySurfacePointGeoMesh;
60template<
class Face>
class MeshedSurface;
169 const word& surfName,
171 bool doCheckIn =
false
182 bool doCheckIn =
false
193 bool doCheckIn =
false
205 using MeshReference::end;
220 virtual label
nFaces()
const
226 virtual label
size()
const
328 const word& fieldName,
335 template<
class GeoMeshType =
void>
342 template<
class GeoMeshType =
void>
346 template<
class DataType>
367 template<
class Type,
class GeoMeshType = polySurfaceGeoMesh>
370 const word& fieldName,
379 template<
class Type,
class GeoMeshType = polySurfaceGeoMesh>
382 const word& fieldName,
419const regIOobject* polySurface::findFieldObject<polySurfaceGeoMesh>
421 const word& fieldName
427const regIOobject* polySurface::findFieldObject<polySurfacePointGeoMesh>
429 const word& fieldName
436const objectRegistry* polySurface::whichRegistry<polySurfaceGeoMesh>
438 const word& fieldName
444const objectRegistry* polySurface::whichRegistry<polySurfaceGeoMesh>
446 const word& fieldName
Defines the attributes of an object for which implicit objectRegistry management is supported,...
The IOstreamOption is a simple container for options an IOstream can normally have.
A surface geometry mesh with zone information, not to be confused with the similarly named surfaceMes...
A list of faces which address into the list of points.
const Field< point_type > & points() const noexcept
Return reference to global points.
const Field< point_type > & faceAreas() const
Return face area vectors for patch.
const Field< point_type > & faceCentres() const
Return face centres for patch.
const Field< scalar > & magFaceAreas() const
Return face area magnitudes for patch.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
Dimension set for the base types, which can be used to implement rigorous dimension checking for alge...
const edgeFaceCirculator cend() const
edgeFaceCirculator cbegin() const
edgeFaceCirculator begin() const
Iterator set to the beginning face. For internal edges this is.
The field association for mesh (patch/volume) values.
Abstract definition of a meshed surface defined by faces and points.
Registry of regIOobjects.
A surface mesh consisting of general polygon faces and capable of holding fields.
virtual label size() const
Return number of faces.
virtual const pointField & points() const
Return points.
const objectRegistry & faceData() const
Face data are stored directly on the registry.
void copySurface(const pointField &points, const faceList &faces, bool unused=false)
Update with new contents.
const vectorField & Sf() const
Return face area vectors (normals)
pointField & storedPoints()
Non-const access to points.
label nFaceData() const
Number of main entries, without PointData sub-registry.
void clearGeom()
Clear geometry.
virtual ~polySurface()
Destructor.
faceList & storedFaces()
Non-const access to the faces.
const scalarField & magSf() const
Return face area magnitudes.
void clearPrimitives()
Clear primitive data (points, faces and cells)
virtual label nFaces() const
Return the number of faces.
TypeName("polySurface")
Runtime type information.
const objectRegistry * whichRegistry(const word &fieldName) const
const objectRegistry & pointData() const
Point data are stored in a sub-registry.
virtual const faceList & faces() const
Return faces.
virtual const labelList & zoneIds() const
Const access to per-face zone/region information (demand-driven)
label nPointData() const
Number of entries on PointData sub-registry (if it exists)
const vectorField & Cf() const
Face centres.
polySurface Mesh
Typedef required for GeoMesh.
virtual bool writeObject(IOstreamOption streamOpt, const bool valid) const
Write - this is a no-op.
void clearAddressing()
Clear addressing.
FieldAssociation
Enumeration for the field association.
@ FACE_DATA
Data associated with faces.
@ POINT_DATA
Data associated with points.
@ FACE_OR_POINT_DATA
Data associated with faces or points.
@ NO_DATA
No associated data.
void transfer(pointField &&points, faceList &&faces, labelList &&zoneIds=labelList())
Transfer the contents of the argument and annul the argument.
void storeField(const word &fieldName, const dimensionSet &dims, const Field< Type > &values)
Copy/store named field as face or point data (template parameter).
void clearFields()
Clear stored fields.
const objectRegistry & fieldData() const
Regular data are stored directly on the registry.
virtual label nPoints() const
Return the number of points.
FieldAssociation queryFieldAssociation(const word &fieldName) const
Query the field association (FACE or POINT)
const regIOobject * findFieldObject(const word &fieldName) const
General finding of the field object (FACE or POINT)
bool BoundaryMesh
Placeholder only, for GeoMesh.
void clearOut()
Clear all geometry and addressing unnecessary for CFD.
static const word pointDataName
Name for point fields sub-registry.
const faceList & storedFaces() const
Const access to the faces.
const regIOobject * findFieldObject(const word &fieldName, const FieldAssociation association) const
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
A class for handling words, derived from Foam::string.
IOobject io("surfaceFilmProperties", mesh.time().constant(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE, false)
List< label > labelList
A List of labels.
thermo validate(args.executable(), "h")
Simple convenient storage of field residuals.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.