MFEM v4.7.0
Finite element discretization library
Loading...
Searching...
No Matches
mfem::ParaViewDataCollection Class Reference

Helper class for ParaView visualization data. More...

#include <datacollection.hpp>

Inheritance diagram for mfem::ParaViewDataCollection:
[legend]
Collaboration diagram for mfem::ParaViewDataCollection:
[legend]

Public Member Functions

 ParaViewDataCollection (const std::string &collection_name, mfem::Mesh *mesh_=NULL)
 Constructor. The collection name is used when saving the data.
 
void SetLevelsOfDetail (int levels_of_detail_)
 
virtual void Save () override
 
void SetDataFormat (VTKFormat fmt)
 
void SetCompressionLevel (int compression_level_)
 Set the zlib compression level.
 
void SetCompression (bool compression_) override
 
bool IsBinaryFormat () const
 Returns true if the output format is BINARY or BINARY32, false if ASCII.
 
void SetHighOrderOutput (bool high_order_output_)
 
void UseRestartMode (bool restart_mode_)
 
virtual void Load (int cycle_=0) override
 Load the collection - not implemented in the ParaView writer.
 
- Public Member Functions inherited from mfem::DataCollection
 DataCollection (const std::string &collection_name, Mesh *mesh_=NULL)
 Initialize the collection with its name and Mesh.
 
virtual void RegisterField (const std::string &field_name, GridFunction *gf)
 Add a grid function to the collection.
 
virtual void DeregisterField (const std::string &field_name)
 Remove a grid function from the collection.
 
virtual void RegisterQField (const std::string &q_field_name, QuadratureFunction *qf)
 Add a QuadratureFunction to the collection.
 
virtual void DeregisterQField (const std::string &field_name)
 Remove a QuadratureFunction from the collection.
 
bool HasField (const std::string &field_name) const
 Check if a grid function is part of the collection.
 
GridFunctionGetField (const std::string &field_name)
 Get a pointer to a grid function in the collection.
 
MPI_Comm GetComm () const
 Return the associated MPI communicator or MPI_COMM_NULL.
 
ParGridFunctionGetParField (const std::string &field_name)
 Get a pointer to a parallel grid function in the collection.
 
bool HasQField (const std::string &q_field_name) const
 Check if a QuadratureFunction with the given name is in the collection.
 
QuadratureFunctionGetQField (const std::string &q_field_name)
 Get a pointer to a QuadratureFunction in the collection.
 
const FieldMapTypeGetFieldMap () const
 Get a const reference to the internal field map.
 
const QFieldMapTypeGetQFieldMap () const
 Get a const reference to the internal q-field map.
 
MeshGetMesh ()
 Get a pointer to the mesh in the collection.
 
virtual void SetMesh (Mesh *new_mesh)
 Set/change the mesh associated with the collection.
 
virtual void SetMesh (MPI_Comm comm, Mesh *new_mesh)
 Set/change the mesh associated with the collection.
 
void SetCycle (int c)
 Set time cycle (for time-dependent simulations)
 
void SetTime (real_t t)
 Set physical time (for time-dependent simulations)
 
void SetTimeStep (real_t ts)
 Set the simulation time step (for time-dependent simulations)
 
int GetCycle () const
 Get time cycle (for time-dependent simulations)
 
real_t GetTime () const
 Get physical time (for time-dependent simulations)
 
real_t GetTimeStep () const
 Get the simulation time step (for time-dependent simulations)
 
const std::string & GetCollectionName () const
 Get the name of the collection.
 
void SetOwnData (bool o)
 Set the ownership of collection data.
 
void SetPrecision (int prec)
 Set the precision (number of digits) used for the text output of doubles.
 
virtual void SetPadDigits (int digits)
 Set the number of digits used for both the cycle and the MPI rank.
 
virtual void SetPadDigitsCycle (int digits)
 Set the number of digits used for the cycle.
 
virtual void SetPadDigitsRank (int digits)
 Set the number of digits used for the MPI rank in filenames.
 
virtual void SetFormat (int fmt)
 Set the desired output mesh and data format.
 
void SetPrefixPath (const std::string &prefix)
 Set the path where the DataCollection will be saved.
 
const std::string & GetPrefixPath () const
 Get the path where the DataCollection will be saved.
 
virtual void SaveMesh ()
 Save the mesh, creating the collection directory.
 
virtual void SaveField (const std::string &field_name)
 Save one field, assuming the collection directory already exists.
 
virtual void SaveQField (const std::string &q_field_name)
 Save one q-field, assuming the collection directory already exists.
 
virtual ~DataCollection ()
 Delete the mesh and fields if owned by the collection.
 
int Error () const
 Get the current error state.
 
void ResetError (int err_state=No_Error)
 Reset the error state.
 

Protected Member Functions

void WritePVTUHeader (std::ostream &out)
 
void WritePVTUFooter (std::ostream &out, const std::string &vtu_prefix)
 
void SaveDataVTU (std::ostream &out, int ref)
 
void SaveGFieldVTU (std::ostream &out, int ref_, const FieldMapIterator &it)
 
const char * GetDataFormatString () const
 
const char * GetDataTypeString () const
 
int GetCompressionLevel () const
 If compression is enabled, return the compression level, otherwise return 0.
 
std::string GenerateCollectionPath ()
 
std::string GenerateVTUFileName (const std::string &prefix, int rank)
 
std::string GenerateVTUPath ()
 
std::string GeneratePVDFileName ()
 
std::string GeneratePVTUFileName (const std::string &prefix)
 
std::string GeneratePVTUPath ()
 
- Protected Member Functions inherited from mfem::DataCollection
void DeleteData ()
 Delete data owned by the DataCollection keeping field information.
 
void DeleteAll ()
 Delete data owned by the DataCollection including field information.
 
std::string GetMeshShortFileName () const
 
std::string GetMeshFileName () const
 
std::string GetFieldFileName (const std::string &field_name) const
 
void SaveOneField (const FieldMapIterator &it)
 Save one field to disk, assuming the collection directory exists.
 
void SaveOneQField (const QFieldMapIterator &it)
 Save one q-field to disk, assuming the collection directory exists.
 

Additional Inherited Members

- Public Types inherited from mfem::DataCollection
enum  Format { SERIAL_FORMAT = 0 , PARALLEL_FORMAT = 1 }
 Format constants to be used with SetFormat(). More...
 
enum  { NO_ERROR = 0 , No_Error = 0 , READ_ERROR = 1 , WRITE_ERROR = 2 }
 Errors returned by Error() More...
 
typedef GFieldMap::MapType FieldMapType
 
typedef GFieldMap::iterator FieldMapIterator
 
typedef GFieldMap::const_iterator FieldMapConstIterator
 
typedef QFieldMap::MapType QFieldMapType
 
typedef QFieldMap::iterator QFieldMapIterator
 
typedef QFieldMap::const_iterator QFieldMapConstIterator
 
- Static Protected Member Functions inherited from mfem::DataCollection
static int create_directory (const std::string &dir_name, const Mesh *mesh, int myid)
 
- Protected Attributes inherited from mfem::DataCollection
std::string name
 Name of the collection, used as a directory name when saving.
 
std::string prefix_path
 A path where the directory with results is saved. If not empty, it has '/' at the end.
 
GFieldMap field_map
 
QFieldMap q_field_map
 
Meshmesh
 The (common) mesh for the collected fields.
 
int cycle
 Time cycle; for time-dependent simulations cycle >= 0, otherwise = -1.
 
real_t time
 Physical time (for time-dependent simulations)
 
real_t time_step
 Time step i.e. delta_t (for time-dependent simulations)
 
bool serial
 Serial or parallel run? False iff mesh is a ParMesh.
 
bool appendRankToFileName
 Append rank to any output file names.
 
int myid
 MPI rank (in parallel)
 
int num_procs
 Number of MPI ranks (in parallel)
 
MPI_Comm m_comm
 Associated MPI communicator.
 
int precision
 Precision (number of digits) used for the text output of doubles.
 
int pad_digits_cycle
 Number of digits used for the cycle and MPI rank in filenames.
 
int pad_digits_rank
 
int format
 Output mesh format: see the Format enumeration.
 
int compression
 
bool own_data
 Should the collection delete its mesh and fields.
 
int error
 Error state.
 
- Static Protected Attributes inherited from mfem::DataCollection
static const int precision_default = 6
 Default value for precision.
 
static const int pad_digits_default = 6
 Default value for pad_digits_*.
 

Detailed Description

Helper class for ParaView visualization data.

Definition at line 506 of file datacollection.hpp.

Constructor & Destructor Documentation

◆ ParaViewDataCollection()

mfem::ParaViewDataCollection::ParaViewDataCollection ( const std::string & collection_name,
mfem::Mesh * mesh_ = NULL )

Constructor. The collection name is used when saving the data.

If mesh_ is NULL, then the mesh can be set later by calling SetMesh(). Before saving the data collection, some parameters in the collection can be adjusted, e.g. SetPadDigits(), SetPrefixPath(), etc.

Definition at line 761 of file datacollection.cpp.

Member Function Documentation

◆ GenerateCollectionPath()

std::string mfem::ParaViewDataCollection::GenerateCollectionPath ( )
protected

Definition at line 790 of file datacollection.cpp.

◆ GeneratePVDFileName()

std::string mfem::ParaViewDataCollection::GeneratePVDFileName ( )
protected

Definition at line 805 of file datacollection.cpp.

◆ GeneratePVTUFileName()

std::string mfem::ParaViewDataCollection::GeneratePVTUFileName ( const std::string & prefix)
protected

Definition at line 810 of file datacollection.cpp.

◆ GeneratePVTUPath()

std::string mfem::ParaViewDataCollection::GeneratePVTUPath ( )
protected

Definition at line 795 of file datacollection.cpp.

◆ GenerateVTUFileName()

std::string mfem::ParaViewDataCollection::GenerateVTUFileName ( const std::string & prefix,
int rank )
protected

Definition at line 816 of file datacollection.cpp.

◆ GenerateVTUPath()

std::string mfem::ParaViewDataCollection::GenerateVTUPath ( )
protected

Definition at line 800 of file datacollection.cpp.

◆ GetCompressionLevel()

int mfem::ParaViewDataCollection::GetCompressionLevel ( ) const
protected

If compression is enabled, return the compression level, otherwise return 0.

Definition at line 1172 of file datacollection.cpp.

◆ GetDataFormatString()

const char * mfem::ParaViewDataCollection::GetDataFormatString ( ) const
protected

Definition at line 1148 of file datacollection.cpp.

◆ GetDataTypeString()

const char * mfem::ParaViewDataCollection::GetDataTypeString ( ) const
protected

Definition at line 1160 of file datacollection.cpp.

◆ IsBinaryFormat()

bool mfem::ParaViewDataCollection::IsBinaryFormat ( ) const

Returns true if the output format is BINARY or BINARY32, false if ASCII.

Definition at line 1120 of file datacollection.cpp.

◆ Load()

void mfem::ParaViewDataCollection::Load ( int cycle_ = 0)
overridevirtual

Load the collection - not implemented in the ParaView writer.

Reimplemented from mfem::DataCollection.

Definition at line 785 of file datacollection.cpp.

◆ Save()

void mfem::ParaViewDataCollection::Save ( )
overridevirtual

Save the collection - the directory name is constructed based on the cycle value

Reimplemented from mfem::DataCollection.

Definition at line 822 of file datacollection.cpp.

◆ SaveDataVTU()

void mfem::ParaViewDataCollection::SaveDataVTU ( std::ostream & out,
int ref )
protected

Definition at line 1036 of file datacollection.cpp.

◆ SaveGFieldVTU()

void mfem::ParaViewDataCollection::SaveGFieldVTU ( std::ostream & out,
int ref_,
const FieldMapIterator & it )
protected

Definition at line 1062 of file datacollection.cpp.

◆ SetCompression()

void mfem::ParaViewDataCollection::SetCompression ( bool compression_)
overridevirtual

Enable or disable zlib compression. If the input is true, use the default zlib compression level (unless the compression level has previously been set by calling SetCompressionLevel()).

Reimplemented from mfem::DataCollection.

Definition at line 1138 of file datacollection.cpp.

◆ SetCompressionLevel()

void mfem::ParaViewDataCollection::SetCompressionLevel ( int compression_level_)

Set the zlib compression level.

0 indicates no compression, -1 indicates the default compression level. Otherwise, specify a number between 1 and 9, 1 being the fastest, and 9 being the best compression. Compression only takes effect if the output format is BINARY or BINARY32. MFEM must be compiled with MFEM_USE_ZLIB = YES.

The initial compression level is 0 if MFEM is compiled with MFEM_USE_ZLIB turned off, and -1 otherwise.

Any nonzero compression level will enable compression.

Definition at line 1130 of file datacollection.cpp.

◆ SetDataFormat()

void mfem::ParaViewDataCollection::SetDataFormat ( VTKFormat fmt)

Set the data format for the ParaView output files. Possible options are VTKFormat::ASCII, VTKFormat::BINARY, and VTKFormat::BINARY32. The ASCII and BINARY options output double precision data, whereas the BINARY32 option outputs single precision data.

The initial format is VTKFormat::BINARY.

Definition at line 1115 of file datacollection.cpp.

◆ SetHighOrderOutput()

void mfem::ParaViewDataCollection::SetHighOrderOutput ( bool high_order_output_)

Sets whether or not to output the data as high-order elements (false by default). Reading high-order data requires ParaView 5.5 or later.

Definition at line 1125 of file datacollection.cpp.

◆ SetLevelsOfDetail()

void mfem::ParaViewDataCollection::SetLevelsOfDetail ( int levels_of_detail_)

Set refinement levels - every element is uniformly split based on levels_of_detail_. The initial value is 1.

Definition at line 780 of file datacollection.cpp.

◆ UseRestartMode()

void mfem::ParaViewDataCollection::UseRestartMode ( bool restart_mode_)

Enable or disable restart mode. If restart is enabled, new writes will preserve timestep metadata for any solutions prior to the currently defined time.

Initially, restart mode is disabled.

Definition at line 1143 of file datacollection.cpp.

◆ WritePVTUFooter()

void mfem::ParaViewDataCollection::WritePVTUFooter ( std::ostream & out,
const std::string & vtu_prefix )
protected

Definition at line 1024 of file datacollection.cpp.

◆ WritePVTUHeader()

void mfem::ParaViewDataCollection::WritePVTUHeader ( std::ostream & out)
protected

Definition at line 998 of file datacollection.cpp.


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