MFEM v4.7.0
Finite element discretization library
|
Helper class for ParaView visualization data. More...
#include <datacollection.hpp>
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. | |
GridFunction * | GetField (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. | |
ParGridFunction * | GetParField (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. | |
QuadratureFunction * | GetQField (const std::string &q_field_name) |
Get a pointer to a QuadratureFunction in the collection. | |
const FieldMapType & | GetFieldMap () const |
Get a const reference to the internal field map. | |
const QFieldMapType & | GetQFieldMap () const |
Get a const reference to the internal q-field map. | |
Mesh * | GetMesh () |
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 |
Mesh * | mesh |
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_*. | |
Helper class for ParaView visualization data.
Definition at line 506 of file datacollection.hpp.
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.
|
protected |
Definition at line 790 of file datacollection.cpp.
|
protected |
Definition at line 805 of file datacollection.cpp.
|
protected |
Definition at line 810 of file datacollection.cpp.
|
protected |
Definition at line 795 of file datacollection.cpp.
|
protected |
Definition at line 816 of file datacollection.cpp.
|
protected |
Definition at line 800 of file datacollection.cpp.
|
protected |
If compression is enabled, return the compression level, otherwise return 0.
Definition at line 1172 of file datacollection.cpp.
|
protected |
Definition at line 1148 of file datacollection.cpp.
|
protected |
Definition at line 1160 of file datacollection.cpp.
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.
|
overridevirtual |
Load the collection - not implemented in the ParaView writer.
Reimplemented from mfem::DataCollection.
Definition at line 785 of file datacollection.cpp.
|
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.
|
protected |
Definition at line 1036 of file datacollection.cpp.
|
protected |
Definition at line 1062 of file datacollection.cpp.
|
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.
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.
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.
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.
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.
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.
|
protected |
Definition at line 1024 of file datacollection.cpp.
|
protected |
Definition at line 998 of file datacollection.cpp.