![]() |
MFEM
v4.5.2
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. More... | |
virtual void | RegisterField (const std::string &field_name, GridFunction *gf) |
Add a grid function to the collection. More... | |
virtual void | DeregisterField (const std::string &field_name) |
Remove a grid function from the collection. More... | |
virtual void | RegisterQField (const std::string &q_field_name, QuadratureFunction *qf) |
Add a QuadratureFunction to the collection. More... | |
virtual void | DeregisterQField (const std::string &field_name) |
Remove a QuadratureFunction from the collection. More... | |
bool | HasField (const std::string &field_name) const |
Check if a grid function is part of the collection. More... | |
GridFunction * | GetField (const std::string &field_name) |
Get a pointer to a grid function in the collection. More... | |
MPI_Comm | GetComm () const |
Return the associated MPI communicator or MPI_COMM_NULL. More... | |
ParGridFunction * | GetParField (const std::string &field_name) |
Get a pointer to a parallel grid function in the collection. More... | |
bool | HasQField (const std::string &q_field_name) const |
Check if a QuadratureFunction with the given name is in the collection. More... | |
QuadratureFunction * | GetQField (const std::string &q_field_name) |
Get a pointer to a QuadratureFunction in the collection. More... | |
const FieldMapType & | GetFieldMap () const |
Get a const reference to the internal field map. More... | |
const QFieldMapType & | GetQFieldMap () const |
Get a const reference to the internal q-field map. More... | |
Mesh * | GetMesh () |
Get a pointer to the mesh in the collection. More... | |
virtual void | SetMesh (Mesh *new_mesh) |
Set/change the mesh associated with the collection. More... | |
virtual void | SetMesh (MPI_Comm comm, Mesh *new_mesh) |
Set/change the mesh associated with the collection. More... | |
void | SetCycle (int c) |
Set time cycle (for time-dependent simulations) More... | |
void | SetTime (double t) |
Set physical time (for time-dependent simulations) More... | |
void | SetTimeStep (double ts) |
Set the simulation time step (for time-dependent simulations) More... | |
int | GetCycle () const |
Get time cycle (for time-dependent simulations) More... | |
double | GetTime () const |
Get physical time (for time-dependent simulations) More... | |
double | GetTimeStep () const |
Get the simulation time step (for time-dependent simulations) More... | |
const std::string & | GetCollectionName () const |
Get the name of the collection. More... | |
void | SetOwnData (bool o) |
Set the ownership of collection data. More... | |
void | SetPrecision (int prec) |
Set the precision (number of digits) used for the text output of doubles. More... | |
virtual void | SetPadDigits (int digits) |
Set the number of digits used for both the cycle and the MPI rank. More... | |
virtual void | SetPadDigitsCycle (int digits) |
Set the number of digits used for the cycle. More... | |
virtual void | SetPadDigitsRank (int digits) |
Set the number of digits used for the MPI rank in filenames. More... | |
virtual void | SetFormat (int fmt) |
Set the desired output mesh and data format. More... | |
virtual void | SetCompression (bool comp) |
Set the flag for use of gz compressed files. More... | |
void | SetPrefixPath (const std::string &prefix) |
Set the path where the DataCollection will be saved. More... | |
const std::string & | GetPrefixPath () const |
Get the path where the DataCollection will be saved. More... | |
virtual void | SaveMesh () |
Save the mesh, creating the collection directory. More... | |
virtual void | SaveField (const std::string &field_name) |
Save one field, assuming the collection directory already exists. More... | |
virtual void | SaveQField (const std::string &q_field_name) |
Save one q-field, assuming the collection directory already exists. More... | |
virtual void | Load (int cycle_=0) |
Load the collection. Not implemented in the base class DataCollection. More... | |
virtual | ~DataCollection () |
Delete the mesh and fields if owned by the collection. More... | |
int | Error () const |
Get the current error state. More... | |
void | ResetError (int err_state=No_Error) |
Reset the error state. More... | |
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. More... | |
void | DeleteAll () |
Delete data owned by the DataCollection including field information. More... | |
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. More... | |
void | SaveOneQField (const QFieldMapIterator &it) |
Save one q-field to disk, assuming the collection directory exists. More... | |
![]() | |
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. More... | |
std::string | prefix_path |
A path where the directory with results is saved. If not empty, it has '/' at the end. More... | |
GFieldMap | field_map |
QFieldMap | q_field_map |
Mesh * | mesh |
The (common) mesh for the collected fields. More... | |
int | cycle |
Time cycle; for time-dependent simulations cycle >= 0, otherwise = -1. More... | |
double | time |
Physical time (for time-dependent simulations) More... | |
double | time_step |
Time step i.e. delta_t (for time-dependent simulations) More... | |
bool | serial |
Serial or parallel run? False iff mesh is a ParMesh. More... | |
bool | appendRankToFileName |
Append rank to any output file names. More... | |
int | myid |
MPI rank (in parallel) More... | |
int | num_procs |
Number of MPI ranks (in parallel) More... | |
MPI_Comm | m_comm |
Associated MPI communicator. More... | |
int | precision |
Precision (number of digits) used for the text output of doubles. More... | |
int | pad_digits_cycle |
Number of digits used for the cycle and MPI rank in filenames. More... | |
int | pad_digits_rank |
int | format |
Output mesh format: see the Format enumeration. More... | |
int | compression |
bool | own_data |
Should the collection delete its mesh and fields. More... | |
int | error |
Error state. More... | |
![]() | |
static const int | precision_default = 6 |
Default value for precision. More... | |
static const int | pad_digits_default = 6 |
Default value for pad_digits_*. More... | |
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.