41#ifndef Foam_polySurface_H
42#define Foam_polySurface_H
69 public objectRegistry,
123 static_cast<MeshReference&
>(*this)
133 static_cast<const MeshReference&
>(*this)
177 const word& surfName,
178 const objectRegistry& obr,
179 bool doCheckIn =
false
190 bool doCheckIn =
false
201 bool doCheckIn =
false
215 static bool Delete(
const word& surfName,
const objectRegistry&);
237 virtual label
nFaces()
const
243 virtual label
size()
const
352 const word& fieldName,
359 template<
class GeoMeshType =
void>
366 template<
class GeoMeshType =
void>
370 template<
class DataType>
371 inline const objectRegistry&
fieldData()
const
373 return static_cast<const objectRegistry&
>(*this);
394 template<
class Type,
class GeoMeshType = polySurfaceGeoMesh>
398 const word& fieldName,
408 template<
class Type,
class GeoMeshType = polySurfaceGeoMesh>
412 const word& fieldName,
423 template<
class Type,
class GeoMeshType = polySurfaceGeoMesh>
427 const word& fieldName,
439 const bool writeOnProc
466 const word& fieldName
474 const word& fieldName
483 const word& fieldName
491 const word& fieldName
497inline const objectRegistry&
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Generic templated field type that is much like a Foam::List except that it is expected to hold numeri...
Defines the attributes of an object for which implicit objectRegistry management is supported,...
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.
PrimitivePatch(const ::Foam::List< face > &faces, const pointField &points)
const Field< point_type > & points() const noexcept
const Field< point_type > & faceAreas() const
const Field< point_type > & faceCentres() const
const Field< scalar > & magFaceAreas() const
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
iterator begin() noexcept
const_iterator cend() const noexcept
const_iterator cbegin() const noexcept
label size() const noexcept
Dimension set for the base types, which can be used to implement rigorous dimension checking for alge...
The field association for mesh (patch/volume) values.
Abstract definition of a meshed surface defined by faces and points.
constexpr meshedSurf() noexcept=default
Default construct.
Registry of regIOobjects.
The polySurface GeoMesh for face fields.
The polySurface GeoMesh for point fields.
virtual label size() const
Return number of faces.
virtual const pointField & points() const
Return points.
virtual bool writeObject(IOstreamOption streamOpt, const bool writeOnProc) const
Write - this is a no-op.
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. Removes existing fields if sizes have changed.
static polySurface & New(const word &surfName, const objectRegistry &)
Get or create (NO_READ, NO_WRITE) named surface on registry.
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.
polySurface(const polySurface &)=delete
No copy construct.
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
General finding of the registry with the field object (FACE or POINT).
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.
static bool Delete(const word &surfName, const objectRegistry &)
Remove named surface from specified registry.
void clearAddressing()
Clear addressing.
DimensionedField< Type, GeoMeshType > & storeField(const word &fieldName, const dimensionSet &dims, const Field< Type > &values)
Copy/store named field as face or point data (template parameter).
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.
DimensionedField< Type, GeoMeshType > & storeField(const word &fieldName, const dimensionSet &dims, Field< Type > &&values)
Move/store named field as face or point data (template parameter).
void transfer(pointField &&points, faceList &&faces, labelList &&zoneIds=labelList())
Transfer the contents (and annul the parameters). Removes existing fields.
void clearFields()
Clear stored fields.
const objectRegistry & fieldData() const
Regular data are stored directly on the registry.
void operator=(const polySurface &)=delete
No copy assignment.
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.
DimensionedField< Type, GeoMeshType > & newField(const word &fieldName, const dimensionSet &dims)
Create/store named zero field as face or point data (template parameter).
const faceList & storedFaces() const
Const access to the faces.
const regIOobject * findFieldObject(const word &fieldName, const FieldAssociation association) const
Find the field object with the given name and required FieldAssociation (FACE or POINT).
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
A surface zone on a MeshedSurface.
A class for handling words, derived from Foam::string.
List< label > labelList
A List of labels.
List< face > faceList
List of faces.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Field< vector > vectorField
Specialisation of Field<T> for vector.
vectorField pointField
pointField is a vectorField.
thermo validate(args.executable(), "h")
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.