![]() |
MFEM v4.7.0
Finite element discretization library
|
#include <adios2datacollection.hpp>
Public Member Functions | |
ADIOS2DataCollection (MPI_Comm comm, const std::string &collection_name, Mesh *mesh=nullptr, const std::string engine_type="BPFile") | |
ADIOS2DataCollection (const std::string &collection_name, Mesh *mesh=nullptr, const std::string engine_type="BPFile") | |
virtual | ~ADIOS2DataCollection () |
virtual void | Save () |
void | SetParameter (const std::string key, const std::string value) noexcept |
void | SetLevelsOfDetail (const int levels_of_detail) noexcept |
![]() | |
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. | |
virtual void | SetCompression (bool comp) |
Set the flag for use of gz compressed files. | |
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 void | Load (int cycle_=0) |
Load the collection. Not implemented in the base class DataCollection. | |
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. | |
Additional Inherited Members | |
![]() | |
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 |
![]() | |
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. | |
![]() | |
static int | create_directory (const std::string &dir_name, const Mesh *mesh, int myid) |
![]() | |
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 const int | precision_default = 6 |
Default value for precision. | |
static const int | pad_digits_default = 6 |
Default value for pad_digits_*. | |
Definition at line 32 of file adios2datacollection.hpp.
mfem::ADIOS2DataCollection::ADIOS2DataCollection | ( | MPI_Comm | comm, |
const std::string & | collection_name, | ||
Mesh * | mesh = nullptr, | ||
const std::string | engine_type = "BPFile" ) |
Parallel constructor. Important: scope of this object must be within MPI_Init and MPI_Finalize otherwise. The destructor will call the Close function. Either object must live in a try/catch block (inside try) or use raw pointers calling delete before MPI_Finalize.
comm | MPI communicator setting the datacollection domain |
collection_name | unique name for saving data |
mesh | can be set at the constructor level or later by calling SetMesh() |
engine_type | adios2 engine type |
Definition at line 24 of file adios2datacollection.cpp.
mfem::ADIOS2DataCollection::ADIOS2DataCollection | ( | const std::string & | collection_name, |
Mesh * | mesh = nullptr, | ||
const std::string | engine_type = "BPFile" ) |
Serial constructor
collection_name | unique name for saving data |
mesh | can be set at the constructor level or later by calling SetMesh() |
engine_type | adios2 engine type |
std::invalid_argument | (user input error) or std::runtime_error (system error) |
Definition at line 32 of file adios2datacollection.cpp.
|
virtual |
Definition at line 41 of file adios2datacollection.cpp.
|
virtual |
Save the collection
Reimplemented from mfem::DataCollection.
Definition at line 46 of file adios2datacollection.cpp.
|
noexcept |
Sets the levels of detail for the global grid refinement
levels_of_detail | (default = 1) |
Definition at line 84 of file adios2datacollection.cpp.
|
noexcept |
Pass a parameter unique to adios2datacollection For available parameters: See https://adios2.readthedocs.io/en/latest/engines/engines.html The most common is: key=SubStreams value=1 to nprocs (MPI processes)
key | parameter key |
value | parameter value |
Definition at line 78 of file adios2datacollection.cpp.