patchMeshWriter Class Reference

Write OpenFOAM patches and patch fields in VTP or legacy vtk format. More...

Inheritance diagram for patchMeshWriter:
[legend]
Collaboration diagram for patchMeshWriter:
[legend]

Public Member Functions

 patchMeshWriter (const polyMesh &mesh, const labelList &patchIDs, const vtk::outputOptions opts=vtk::formatType::INLINE_BASE64)
 Construct from components (default format INLINE_BASE64) More...
 
 patchMeshWriter (const polyMesh &mesh, const labelList &patchIDs, const fileName &file, bool parallel=Pstream::parRun())
 
 patchMeshWriter (const polyMesh &mesh, const labelList &patchIDs, const vtk::outputOptions opts, const fileName &file, bool parallel=Pstream::parRun())
 
virtual ~patchMeshWriter ()=default
 Destructor. More...
 
const labelListpatchIDs () const noexcept
 The patch IDs. More...
 
virtual bool beginFile (std::string title="")
 Write file header (non-collective) More...
 
virtual bool writeGeometry ()
 Write patch topology. More...
 
virtual bool beginCellData (label nFields=0)
 Begin CellData output section for specified number of fields. More...
 
virtual bool beginPointData (label nFields=0)
 Begin PointData for specified number of fields. More...
 
void writePatchIDs ()
 Write patch ids as CellData. More...
 
bool writeProcIDs ()
 Write processor ids as CellData. This is no-op in serial. More...
 
bool writeNeighIDs ()
 Write processor neighbour ids as CellData. This is no-op in serial. More...
 
template<class Type >
void writeUniform (const word &fieldName, const Type &val)
 Write a uniform field of Cell (Face) or Point values. More...
 
- Public Member Functions inherited from fileWriter
 fileWriter (const vtk::fileTag contentType, const vtk::outputOptions opts)
 Construct from components. More...
 
virtual ~fileWriter ()
 Destructor. More...
 
vtk::fileTag contentType () const
 The content type. More...
 
vtk::outputOptions opts () const
 The output options in use. More...
 
word ext () const
 File extension for current format type. More...
 
bool legacy () const
 Commonly used query. More...
 
bool parallel () const noexcept
 Parallel output requested? More...
 
const wordstate () const
 The output state in printable format. More...
 
const fileNameoutput () const noexcept
 The current output file name. More...
 
bool open (const fileName &file, bool parallel=Pstream::parRun())
 Open file for writing (creates parent directory). More...
 
void close ()
 End the file contents and close the file after writing. More...
 
bool beginFieldData (label nFields=0)
 Begin FieldData output section for specified number of fields. More...
 
label nCellData () const noexcept
 Return the number of CellData written for the Piece thus far. More...
 
label nPointData () const noexcept
 Return the number of PointData written for the Piece thus far. More...
 
bool endFieldData ()
 Explicitly end FieldData output and switch to DECLARED state. More...
 
bool endCellData ()
 Explicitly end CellData output and switch to PIECE state. More...
 
bool endPointData ()
 Explicitly end PointData output and switch to PIECE state. More...
 
void writeTimeValue (scalar timeValue)
 Write "TimeValue" FieldData (name as per Catalyst output) More...
 

Static Public Member Functions

static word ext (vtk::outputOptions opts)
 File extension for given output type. More...
 

Protected Member Functions

void beginPiece ()
 
void writePoints ()
 Write patch points. More...
 
void writePolysLegacy (const label pointOffset)
 Write patch faces, legacy format. More...
 
void writePolys (const label pointOffset)
 Write patch faces. More...
 
 patchMeshWriter (const patchMeshWriter &)=delete
 No copy construct. More...
 
void operator= (const patchMeshWriter &)=delete
 No copy assignment. More...
 
- Protected Member Functions inherited from fileWriter
void checkFormatterValidity () const
 Verify that formatter in either allocated or not required. More...
 
OstreamreportBadState (Ostream &, outputState expected) const
 Generate message reporting bad writer state. More...
 
OstreamreportBadState (Ostream &, outputState, outputState) const
 Generate message reporting bad writer state. More...
 
std::ofstream & os () noexcept
 The backend ostream in use. More...
 
vtk::formatterformat ()
 The VTK formatter in use. More...
 
bool isState (outputState test) const noexcept
 True if output state corresponds to the test state. More...
 
bool notState (outputState test) const noexcept
 True if output state does not correspond to the test state. More...
 
template<class Type >
void beginDataArray (const word &fieldName, const label nValues)
 Start of a field or DataArray output (legacy or non-legacy). More...
 
void endDataArray ()
 Flush formatter and end of DataArray output (non-legacy) More...
 
void beginPoints (const label nPoints)
 Start of a POINTS DataArray. More...
 
void endPoints ()
 End of a POINTS DataArray. More...
 
bool enter_Piece ()
 Trigger change state to Piece. Resets nCellData_, nPointData_. More...
 
bool endPiece ()
 Explicitly end Piece output and switch to DECLARED state. More...
 
bool enter_CellData (label nEntries, label nFields)
 Trigger change state to CellData. More...
 
bool enter_PointData (label nEntries, label nFields)
 Trigger change state to PointData. More...
 
bool exit_File ()
 Emit file footer (end data, end piece, end file) More...
 
template<class Type >
void writeUniform (const word &fieldName, const Type &val, const label nValues)
 Write uniform field content. More...
 
template<class Type >
void writeBasicField (const word &fieldName, const UList< Type > &field)
 Write basic (primitive) field content. More...
 
bool writeProcIDs (const label nValues)
 Write nValues of processor ids as CellData (no-op in serial) More...
 
 fileWriter (const fileWriter &)=delete
 No copy construct. More...
 
void operator= (const fileWriter &)=delete
 No copy assignment. More...
 

Protected Attributes

label numberOfPoints_
 The number of field points for the current Piece. More...
 
label numberOfCells_
 The number of field cells (faces) for the current Piece. More...
 
label nLocalPoints_
 Local number of points. More...
 
label nLocalPolys_
 Local number of polys (faces) More...
 
label nLocalVerts_
 Local face vertices (connectivity) count. Sum of face sizes. More...
 
const polyMeshmesh_
 Reference to the OpenFOAM mesh (or subset) More...
 
labelList patchIDs_
 The selected patch ids. More...
 
- Protected Attributes inherited from fileWriter
vtk::fileTag contentType_
 The content type. More...
 
outputOptions opts_
 The requested output options. More...
 
bool parallel_
 Writing in parallel (via master) More...
 
outputState state_
 The output state. More...
 
label nCellData_
 The number of CellData written for the Piece thus far. More...
 
label nPointData_
 The number of PointData written for the Piece thus far. More...
 
fileName outputFile_
 The output file name. More...
 
autoPtr< vtk::formatterformat_
 The VTK formatter in use (only valid on master process) More...
 
std::ofstream os_
 The backend ostream in use (only opened on master process) More...
 

Additional Inherited Members

- Protected Types inherited from fileWriter
enum  outputState {
  CLOSED = 0, OPENED, DECLARED, FIELD_DATA,
  PIECE, CELL_DATA, POINT_DATA
}
 Internal tracking of the output state. More...
 
- Static Protected Attributes inherited from fileWriter
static const Enum< outputStatestateNames
 Names for the output state (for messages, not for file output). More...
 

Detailed Description

Write OpenFOAM patches and patch fields in VTP or legacy vtk format.

The file output states are managed by the Foam::vtk::fileWriter class. FieldData (eg, TimeValue) must appear before any geometry pieces.

Note
Parallel output is combined into a single Piece without point merging, which is similar to using multi-piece data sets, but allows more convenient creation as a streaming process. In the future, the duplicate points at processor connections may be addressed using ghost points.
See also
Foam::vtk::patchWriter
Source files

Definition at line 67 of file foamVtkPatchMeshWriter.H.

Constructor & Destructor Documentation

◆ patchMeshWriter() [1/4]

patchMeshWriter ( const patchMeshWriter )
protecteddelete

No copy construct.

◆ patchMeshWriter() [2/4]

patchMeshWriter ( const polyMesh mesh,
const labelList patchIDs,
const vtk::outputOptions  opts = vtk::formatType::INLINE_BASE64 
)

Construct from components (default format INLINE_BASE64)

Definition at line 361 of file foamVtkPatchMeshWriter.C.

◆ patchMeshWriter() [3/4]

patchMeshWriter ( const polyMesh mesh,
const labelList patchIDs,
const fileName file,
bool  parallel = Pstream::parRun() 
)

Construct from components (default format INLINE_BASE64), and open the file for writing.

The file name is with/without an extension.

Definition at line 383 of file foamVtkPatchMeshWriter.C.

◆ patchMeshWriter() [4/4]

patchMeshWriter ( const polyMesh mesh,
const labelList patchIDs,
const vtk::outputOptions  opts,
const fileName file,
bool  parallel = Pstream::parRun() 
)

Construct from components (default format INLINE_BASE64), Construct from components and open the file for writing.

The file name is with/without an extension.

Definition at line 397 of file foamVtkPatchMeshWriter.C.

◆ ~patchMeshWriter()

virtual ~patchMeshWriter ( )
virtualdefault

Destructor.

Member Function Documentation

◆ beginPiece()

◆ writePoints()

void writePoints ( )
protected

Write patch points.

Definition at line 84 of file foamVtkPatchMeshWriter.C.

References Foam::vtk::legacy::beginPoints(), UPstream::blocking, format(), PrimitivePatch< FaceList, PointField >::localPoints(), UPstream::master(), UPstream::masterNo(), nPatches, patches, patchId(), UPstream::subProcs(), and Foam::vtk::writeList().

Here is the call graph for this function:

◆ writePolysLegacy()

void writePolysLegacy ( const label  pointOffset)
protected

Write patch faces, legacy format.

Parameters
pointOffsetprocessor-local point offset

Definition at line 146 of file foamVtkPatchMeshWriter.C.

References Foam::vtk::legacy::beginPolys(), Foam::exit(), f(), Foam::FatalError, FatalErrorInFunction, format(), PrimitivePatch< FaceList, PointField >::localFaces(), PrimitivePatch< FaceList, PointField >::nPoints(), patches, patchId(), Foam::reduce(), Foam::vtk::writeList(), and Foam::vtk::writeListParallel().

Here is the call graph for this function:

◆ writePolys()

void writePolys ( const label  pointOffset)
protected

Write patch faces.

Parameters
pointOffsetprocessor-local point offset

Definition at line 217 of file foamVtkPatchMeshWriter.C.

References Foam::vtk::CONNECTIVITY, f(), format(), PrimitivePatch< FaceList, PointField >::localFaces(), globalIndex::localStart(), PrimitivePatch< FaceList, PointField >::nPoints(), Foam::vtk::OFFSETS, patches, patchId(), Foam::vtk::POLYS, Foam::reduce(), Foam::vtk::writeList(), and Foam::vtk::writeListParallel().

Here is the call graph for this function:

◆ operator=()

void operator= ( const patchMeshWriter )
protecteddelete

No copy assignment.

◆ ext()

static word ext ( vtk::outputOptions  opts)
inlinestatic

File extension for given output type.

Definition at line 168 of file foamVtkPatchMeshWriter.H.

References outputOptions::ext(), fileWriter::opts(), and Foam::vtk::POLY_DATA.

Here is the call graph for this function:

◆ patchIDs()

const labelList& patchIDs ( ) const
inlinenoexcept

The patch IDs.

Definition at line 174 of file foamVtkPatchMeshWriter.H.

References patchMeshWriter::patchIDs_.

◆ beginFile()

bool beginFile ( std::string  title = "")
virtual

Write file header (non-collective)

Note
Expected calling states: (OPENED).

Reimplemented from fileWriter.

Definition at line 413 of file foamVtkPatchMeshWriter.C.

References fileWriter::beginFile(), and Foam::name().

Here is the call graph for this function:

◆ writeGeometry()

bool writeGeometry ( )
virtual

Write patch topology.

Also writes the file header if not previously written.

Note
Must be called prior to writing CellData or PointData

Implements fileWriter.

Definition at line 463 of file foamVtkPatchMeshWriter.C.

References globalIndex::localStart().

Here is the call graph for this function:

◆ beginCellData()

bool beginCellData ( label  nFields = 0)
virtual

Begin CellData output section for specified number of fields.

Must be called prior to writing any cell data fields.

Parameters
nFieldsis for legacy format only. When nFields=0, this a no-op for legacy format.
Note
Expected calling states: (PIECE | POINT_DATA).
Returns
True if the state changed

Implements fileWriter.

Definition at line 489 of file foamVtkPatchMeshWriter.C.

◆ beginPointData()

bool beginPointData ( label  nFields = 0)
virtual

Begin PointData for specified number of fields.

Must be called prior to writing any point data fields.

Parameters
nFieldsis for legacy format only. When nFields=0, this a no-op for legacy format.
Note
Expected calling states: (PIECE | CELL_DATA).
Returns
True if the state changed

Implements fileWriter.

Definition at line 495 of file foamVtkPatchMeshWriter.C.

◆ writePatchIDs()

void writePatchIDs ( )

Write patch ids as CellData.

Must be called within the CELL_DATA state.

Definition at line 501 of file foamVtkPatchMeshWriter.C.

References UPstream::blocking, Foam::vtk::CELL_DATA, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, format(), UPstream::master(), UPstream::masterNo(), Foam::nl, patches, patchId(), Foam::reduce(), UPstream::subProcs(), and Foam::vtk::write().

Here is the call graph for this function:

◆ writeProcIDs()

bool writeProcIDs ( )

Write processor ids as CellData. This is no-op in serial.

Must be called within the CELL_DATA state.

Definition at line 586 of file foamVtkPatchMeshWriter.C.

References fileWriter::writeProcIDs().

Here is the call graph for this function:

◆ writeNeighIDs()

bool writeNeighIDs ( )

Write processor neighbour ids as CellData. This is no-op in serial.

Must be called within the CELL_DATA state.

Definition at line 592 of file foamVtkPatchMeshWriter.C.

References UPstream::blocking, Foam::vtk::CELL_DATA, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, format(), UPstream::master(), UPstream::masterNo(), Foam::nl, UPstream::parRun(), patches, patchId(), Foam::reduce(), Foam::returnReduce(), UPstream::subProcs(), and Foam::vtk::write().

Here is the call graph for this function:

◆ writeUniform()

void writeUniform ( const word fieldName,
const Type &  val 
)

Write a uniform field of Cell (Face) or Point values.

Definition at line 35 of file foamVtkPatchMeshWriterTemplates.C.

References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::nl, and Foam::expressions::POINT_DATA.

Here is the call graph for this function:

Member Data Documentation

◆ numberOfPoints_

label numberOfPoints_
protected

The number of field points for the current Piece.

Definition at line 76 of file foamVtkPatchMeshWriter.H.

Referenced by patchMeshWriter::beginPiece().

◆ numberOfCells_

label numberOfCells_
protected

The number of field cells (faces) for the current Piece.

Definition at line 79 of file foamVtkPatchMeshWriter.H.

Referenced by patchMeshWriter::beginPiece().

◆ nLocalPoints_

label nLocalPoints_
protected

Local number of points.

Definition at line 82 of file foamVtkPatchMeshWriter.H.

Referenced by patchMeshWriter::beginPiece().

◆ nLocalPolys_

label nLocalPolys_
protected

Local number of polys (faces)

Definition at line 85 of file foamVtkPatchMeshWriter.H.

Referenced by patchMeshWriter::beginPiece().

◆ nLocalVerts_

label nLocalVerts_
protected

Local face vertices (connectivity) count. Sum of face sizes.

Definition at line 88 of file foamVtkPatchMeshWriter.H.

Referenced by patchMeshWriter::beginPiece().

◆ mesh_

const polyMesh& mesh_
protected

Reference to the OpenFOAM mesh (or subset)

Definition at line 91 of file foamVtkPatchMeshWriter.H.

Referenced by patchMeshWriter::beginPiece().

◆ patchIDs_

labelList patchIDs_
protected

The selected patch ids.

Definition at line 94 of file foamVtkPatchMeshWriter.H.

Referenced by patchMeshWriter::beginPiece(), and patchMeshWriter::patchIDs().


The documentation for this class was generated from the following files: