MFEM  v4.4.0
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | List of all members
mfem::ADIOS2DataCollection Class Reference

#include <adios2datacollection.hpp>

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

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
 
- Public Member Functions inherited from mfem::DataCollection
 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...
 
GridFunctionGetField (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...
 
ParGridFunctionGetParField (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...
 
QuadratureFunctionGetQField (const std::string &q_field_name)
 Get a pointer to a QuadratureFunction in the collection. More...
 
const FieldMapTypeGetFieldMap () const
 Get a const reference to the internal field map. More...
 
const QFieldMapTypeGetQFieldMap () const
 Get a const reference to the internal q-field map. More...
 
MeshGetMesh ()
 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...
 
void SetPadDigits (int digits)
 Set the number of digits used for both the cycle and the MPI rank. More...
 
void SetPadDigitsCycle (int digits)
 Set the number of digits used for the cycle. More...
 
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

- 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, 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
 
- Protected Member Functions inherited from mfem::DataCollection
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 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. 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
 
Meshmesh
 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 Protected Attributes inherited from mfem::DataCollection
static const int precision_default = 6
 Default value for precision. More...
 
static const int pad_digits_default = 6
 Default value for pad_digits_*. More...
 

Detailed Description

Definition at line 32 of file adios2datacollection.hpp.

Constructor & Destructor Documentation

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.

Parameters
commMPI communicator setting the datacollection domain
collection_nameunique name for saving data
meshcan be set at the constructor level or later by calling SetMesh()
engine_typeadios2 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

Parameters
collection_nameunique name for saving data
meshcan be set at the constructor level or later by calling SetMesh()
engine_typeadios2 engine type
Exceptions
std::invalid_argument(user input error) or std::runtime_error (system error)

Definition at line 32 of file adios2datacollection.cpp.

mfem::ADIOS2DataCollection::~ADIOS2DataCollection ( )
virtual

Definition at line 41 of file adios2datacollection.cpp.

Member Function Documentation

void mfem::ADIOS2DataCollection::Save ( )
virtual

Save the collection

Reimplemented from mfem::DataCollection.

Definition at line 46 of file adios2datacollection.cpp.

void mfem::ADIOS2DataCollection::SetLevelsOfDetail ( const int  levels_of_detail)
noexcept

Sets the levels of detail for the global grid refinement

Parameters
levels_of_detail(default = 1)

Definition at line 84 of file adios2datacollection.cpp.

void mfem::ADIOS2DataCollection::SetParameter ( const std::string  key,
const std::string  value 
)
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)

Parameters
keyparameter key
valueparameter value

Definition at line 78 of file adios2datacollection.cpp.


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