35#ifndef Foam_ensightCells_H
36#define Foam_ensightCells_H
50template<
class T>
class InfoProxy;
76 static constexpr int nTypes = 5;
85 inline static const char*
key(
const elemType etype);
107 inline label add(
const elemType etype, label
id);
114 template<
class Addressing>
118 label meshPointMapppings
128 static void writePolysConnectivity
138 static void writeShapeConnectivity
282Ostream&
operator<<(Ostream&,
const InfoProxy<ensightCells>&);
A 1D vector of objects of type <T> with a fixed length <N>.
A helper class for outputting values to Ostream.
A HashTable to objects of type <T> with a label key.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
Sorting/classification of cells (3D) into corresponding ensight element types.
label uniqueMeshPoints(const polyMesh &mesh, labelList &uniqueMeshPointLabels, bool parallel) const
Globally unique mesh points. Required when writing point fields.
Map< label > meshPointMap(const polyMesh &mesh) const
Mesh point map.
virtual ~ensightCells()=default
Destructor.
void reduce()
Sum element counts across all processes.
bool manifold() const noexcept
Manifold mesh cells detected? Globally consistent quantity.
void sort()
Sort element lists numerically.
void classify(const polyMesh &mesh)
Classify cell types and set the element lists.
static const char * key(const elemType etype)
The ensight element name for the specified 'Cell' type.
static constexpr int nTypes
Number of 'Cell' element types (5)
TypeName("ensightCells")
Declare type-name, virtual type (with debug switch)
virtual void writeDict(Ostream &os, const bool full=false) const
void incrCellIds(const label off)
Increase cell ids by specified offset value.
ensightCells()
Default construct, with part index 0.
static const char * elemNames[nTypes]
The ensight 'Cell' element type names.
elemType
Supported ensight 'Cell' element types.
label size() const noexcept
Processor-local size of all elements.
label total() const
The global size of all element types.
void clear()
Set addressable sizes to zero, free up addressing memory.
void decrCellIds(const label off)
Decrease face ids by specified offset value.
InfoProxy< ensightCells > info() const
Return info proxy.
const FixedList< label, nTypes > & totals() const
The global sizes for each element type.
FixedList< label, nTypes > sizes() const
Processor-local sizes per element type.
const labelList & cellIds() const
Processor-local cell ids of all elements.
void clearOut()
Clear any demand-driven data.
Specialized Ensight output with extra geometry file header.
Base class for ensightCells, ensightFaces, ensightOutputSurfaces.
A range or interval of labels defined by a start and a size.
Mesh consisting of general polyhedral cells.
OBJstream os(runTime.globalPath()/outputName)
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces)
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.