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

#include <adios2stream.hpp>

Public Types

enum  openmode { openmode::out, openmode::in, openmode::app }
 
enum  mode { mode::sync, mode::deferred }
 
enum  data_type { data_type::none, data_type::point_data, data_type::cell_data }
 

Public Member Functions

 adios2stream (const std::string &name, const openmode mode, MPI_Comm comm, const std::string engine_type="BPFile")
 
 adios2stream (const std::string &name, const openmode mode, const std::string engine_type="BPFile")
 
virtual ~adios2stream ()
 
void SetParameters (const std::map< std::string, std::string > &parameters=std::map< std::string, std::string >())
 
void SetParameter (const std::string key, const std::string value) noexcept
 
void BeginStep ()
 
void EndStep ()
 
void SetTime (const double time)
 
void SetCycle (const int cycle)
 
void SetRefinementLevel (const int level) noexcept
 
size_t CurrentStep () const
 
void Close ()
 

Protected Member Functions

void Print (const Mesh &mesh, const adios2stream::mode print_mode=mode::sync)
 
void Save (const GridFunction &grid_function, const std::string &variable_name, const data_type type)
 

Friends

class Vector
 
class GridFunction
 
class Mesh
 
class ADIOS2DataCollection
 

Detailed Description

Definition at line 47 of file adios2stream.hpp.

Member Enumeration Documentation

Enumerator
none 
point_data 
cell_data 

Definition at line 66 of file adios2stream.hpp.

Print and Save modes, deferred is done at Close or EndStep, sync is immediate

Enumerator
sync 
deferred 

Definition at line 64 of file adios2stream.hpp.

Open modes for adios2stream (from std::fstream) out: write in: read app: append

Enumerator
out 
in 
app 

Definition at line 61 of file adios2stream.hpp.

Constructor & Destructor Documentation

mfem::adios2stream::adios2stream ( const std::string &  name,
const openmode  mode,
MPI_Comm  comm,
const std::string  engine_type = "BPFile" 
)

adios2stream MPI constructor, allows for passing parameters in source code (compile-time) only.

Parameters
namestream name
modeadios2stream::openmode::in (Read), adios2stream::openmode::out (Write)
commMPI communicator establishing domain for fstream
engine_typeavailable adios2 engine, default is BPFile see https://adios2.readthedocs.io/en/latest/engines/engines.html
Exceptions
std::invalid_argument(user input error) or std::runtime_error (system error)

Definition at line 114 of file adios2stream.cpp.

mfem::adios2stream::adios2stream ( const std::string &  name,
const openmode  mode,
const std::string  engine_type = "BPFile" 
)

adios2stream Non-MPI serial constructor, allows for passing parameters in source code (compile-time) only.

Parameters
namestream name
modeadios2stream::openmode::in (Read), adios2stream::openmode::out (Write)
engine_typeavailable adios2 engine, default is BPFile
Exceptions
std::invalid_argument(user input error) or std::runtime_error (system error)

Definition at line 124 of file adios2stream.cpp.

mfem::adios2stream::~adios2stream ( )
virtual

calls Close if stream is valid basically follows C++ RAII

Definition at line 135 of file adios2stream.cpp.

Member Function Documentation

void mfem::adios2stream::BeginStep ( )

Begins an I/O step

Definition at line 161 of file adios2stream.cpp.

void mfem::adios2stream::Close ( )

Finished interaction with adios2stream and flushes the data

Definition at line 208 of file adios2stream.cpp.

size_t mfem::adios2stream::CurrentStep ( ) const

Return the current step between BeginStep and EndStep

Definition at line 203 of file adios2stream.cpp.

void mfem::adios2stream::EndStep ( )

Ends the current step, by default transports the data

Definition at line 171 of file adios2stream.cpp.

void mfem::adios2stream::Print ( const Mesh mesh,
const adios2stream::mode  print_mode = mode::sync 
)
protected

Called from friend class Mesh (which is called from ParMesh)

Parameters
meshinput Mesh object to print
print_modesync: one at a time, deferred: collected (pre-fetch)

Definition at line 226 of file adios2stream.cpp.

void mfem::adios2stream::Save ( const GridFunction grid_function,
const std::string &  variable_name,
const data_type  type 
)
protected

Definition at line 534 of file adios2stream.cpp.

void mfem::adios2stream::SetCycle ( const int  cycle)

Associates a current time step (cycle) with the current I/O step as CYCLE variable

Parameters
cyclephysical time

Definition at line 192 of file adios2stream.cpp.

void mfem::adios2stream::SetParameter ( const std::string  key,
const std::string  value 
)
noexcept

Single parameter version of SetParameters passing a key/value pair See https://adios2.readthedocs.io/en/latest/engines/engines.html

Parameters
keyinput parameter key
valueinput parameter value

Definition at line 151 of file adios2stream.cpp.

void mfem::adios2stream::SetParameters ( const std::map< std::string, std::string > &  parameters = std::map<std::string, std::string>())

Set parameters for a particular adios2stream Engine See https://adios2.readthedocs.io/en/latest/engines/engines.html

Parameters
parametersmap of key/value string elements

Definition at line 144 of file adios2stream.cpp.

void mfem::adios2stream::SetRefinementLevel ( const int  level)
noexcept

Input to the Global Geometry Refiner

Parameters
levelinput level

Definition at line 198 of file adios2stream.cpp.

void mfem::adios2stream::SetTime ( const double  time)

Associates a physical time with the current I/O step as TIME variable

Parameters
timeinput physical time

Definition at line 185 of file adios2stream.cpp.

Friends And Related Function Documentation

friend class ADIOS2DataCollection
friend

Definition at line 52 of file adios2stream.hpp.

friend class GridFunction
friend

Definition at line 50 of file adios2stream.hpp.

friend class Mesh
friend

Definition at line 51 of file adios2stream.hpp.

friend class Vector
friend

Definition at line 49 of file adios2stream.hpp.


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