Reading/Writing in HDF5 format. More...
#include <arcane/hdf5/Hdf5ReaderWriter.h>
Public Types | |
| enum | eOpenMode { OpenModeRead , OpenModeTruncate , OpenModeAppend } |
Public Member Functions | |
| Hdf5ReaderWriter (ISubDomain *sd, const String &filename, const String &m_sub_group_name, Integer fileset_size, Integer write_index, Integer index_modulo, eOpenMode om, bool do_verif=false) | |
| virtual void | initialize () |
| virtual void | beginWrite (const VariableCollection &vars) |
| virtual void | endWrite () |
| virtual void | beginRead (const VariableCollection &vars) |
| virtual void | endRead () |
| virtual void | setMetaData (const String &meta_data) |
| Sets the metadata information. | |
| virtual String | metaData () |
| Metadata. | |
| virtual void | write (IVariable *v, IData *data) |
| Writes the data data of the variable var. | |
| virtual void | read (IVariable *v, IData *data) |
| Reads the data data of the variable var. | |
| herr_t | iterateMe (hid_t group_id, const char *member_name) |
| Public Member Functions inherited from Arcane::TraceAccessor | |
| TraceAccessor (ITraceMng *m) | |
| Constructs an accessor via the trace manager m. | |
| TraceAccessor (const TraceAccessor &rhs) | |
| Copy constructor. | |
| TraceAccessor & | operator= (const TraceAccessor &rhs) |
| Copy assignment operator. | |
| virtual | ~TraceAccessor () |
| Frees resources. | |
| ITraceMng * | traceMng () const |
| Trace manager. | |
| TraceMessage | info () const |
| Flow for an information message. | |
| TraceMessage | pinfo () const |
| Flow for a parallel information message. | |
| TraceMessage | info (char category) const |
| Flow for an information message of a given category. | |
| TraceMessage | pinfo (char category) const |
| Flow for a parallel information message of a given category. | |
| TraceMessage | info (bool v) const |
| Flow for an information message. | |
| TraceMessage | warning () const |
| Flow for a warning message. | |
| TraceMessage | pwarning () const |
| TraceMessage | error () const |
| Flow for an error message. | |
| TraceMessage | perror () const |
| TraceMessage | log () const |
| Flow for a log message. | |
| TraceMessage | plog () const |
| Flow for a log message. | |
| TraceMessage | logdate () const |
| Flow for a log message preceded by the date. | |
| TraceMessage | fatal () const |
| Flow for a fatal error message. | |
| TraceMessage | pfatal () const |
| Flow for a parallel fatal error message. | |
| TraceMessageDbg | debug (Trace::eDebugLevel=Trace::Medium) const |
| Flow for a debug message. | |
| Trace::eDebugLevel | configDbgLevel () const |
| Debug level of the configuration file. | |
| TraceMessage | info (Int32 verbose_level) const |
| Flow for an information message of a given level. | |
| TraceMessage | linfo () const |
| Flow for an information message with the local information level of this instance. | |
| TraceMessage | linfo (Int32 relative_level) const |
| Flow for an information message with the local information level of this instance. | |
| void | fatalMessage (const StandaloneTraceMessage &o) const |
| Public Member Functions inherited from Arcane::IDataReader | |
| virtual | ~IDataReader ()=default |
| Frees resources. | |
| Public Member Functions inherited from Arcane::IDataWriter | |
| virtual | ~IDataWriter ()=default |
| Frees resources. | |
Private Member Functions | |
| void | _writeVal (const String &var_group_name, const String &sub_group_name, const ISerializedData *sdata, const Int32 from_rank=0) |
| void | _writeValParallel (IVariable *v, const ISerializedData *sdata) |
| Parallel writing. | |
| void | _readVal (IVariable *var, IData *data) |
| Ref< ISerializedData > | _readDim2 (IVariable *v) |
| void | _directReadVal (IVariable *v, IData *data) |
| void | _directWriteVal (IVariable *v, IData *data) |
| void | _checkValid () |
| String | _variableGroupName (IVariable *var) |
| void | _receiveRemoteVariables () |
| void | _writeRemoteVariable (ISerializer *sb) |
| void | _setMetaData (const String &meta_data, const String &sub_group_name) |
Private Attributes | |
| IParallelMng * | m_parallel_mng |
| Parallelism manager;. | |
| eOpenMode | m_open_mode |
| Open mode. | |
| String | m_filename |
| Filename. | |
| String | m_sub_group_name |
| Subgroup name. | |
| bool | m_is_initialized |
| True if already initialized. | |
| Hdf5Utils::StandardTypes | m_types |
| Hdf5Utils::HFile | m_file_id |
| HDF file identifier. | |
| Hdf5Utils::HGroup | m_sub_group_id |
| HDF group identifier containing the protection. | |
| Hdf5Utils::HGroup | m_variable_group_id |
| HDF group identifier containing the variables. | |
| StringList | m_variables_name |
| List of names of saved variables. | |
| Timer | m_io_timer |
| bool | m_is_parallel |
| Active parallel mode: WARNING: for testing only. | |
| Int32 | m_my_rank |
| Int32 | m_send_rank |
| Int32 | m_last_recv_rank |
| Integer | m_fileset_size |
| Integer | m_index_write |
| Integer | m_index_modulo |
Additional Inherited Members | |
| Protected Member Functions inherited from Arcane::TraceAccessor | |
| void | _setLocalVerboseLevel (Int32 v) |
| Int32 | _localVerboseLevel () const |
Reading/Writing in HDF5 format.
The HDF5 version used is at least version 1.4.3.
Regarding real numbers, only double precision is supported. They are therefore stored in 8 bytes as well.
For Real2, Real2x2, Real3, and Real3x3, a composite type is used.
The structure of the saved information is as follows:
Definition at line 76 of file hdf5/Hdf5ReaderWriter.h.
| enum Arcane::Hdf5ReaderWriter::eOpenMode |
Definition at line 84 of file hdf5/Hdf5ReaderWriter.h.
| Arcane::Hdf5ReaderWriter::Hdf5ReaderWriter | ( | ISubDomain * | sd, |
| const String & | filename, | ||
| const String & | m_sub_group_name, | ||
| Integer | fileset_size, | ||
| Integer | write_index, | ||
| Integer | index_modulo, | ||
| eOpenMode | om, | ||
| bool | do_verif = false ) |
Definition at line 94 of file Hdf5ReaderWriter.cc.
| Arcane::Hdf5ReaderWriter::~Hdf5ReaderWriter | ( | ) |
Definition at line 235 of file Hdf5ReaderWriter.cc.
|
private |
Definition at line 243 of file Hdf5ReaderWriter.cc.
Definition at line 290 of file Hdf5ReaderWriter.cc.
Definition at line 301 of file Hdf5ReaderWriter.cc.
|
private |
Definition at line 469 of file Hdf5ReaderWriter.cc.
Definition at line 603 of file Hdf5ReaderWriter.cc.
|
private |
Definition at line 777 of file Hdf5ReaderWriter.cc.
|
private |
Definition at line 683 of file Hdf5ReaderWriter.cc.
Definition at line 254 of file Hdf5ReaderWriter.cc.
|
private |
Definition at line 802 of file Hdf5ReaderWriter.cc.
|
private |
Definition at line 338 of file Hdf5ReaderWriter.cc.
|
private |
Parallel writing.
< Group name.
< Group name.
Definition at line 267 of file Hdf5ReaderWriter.cc.
References Arcane::BasicSerializer::allocateBuffer(), Arcane::DT_Int32, Arcane::IVariable::fullName(), m_parallel_mng, m_sub_group_name, Arcane::ISerializer::ModePut, Arcane::BasicSerializer::put(), Arcane::BasicSerializer::putInt32(), Arcane::BasicSerializer::reserve(), Arcane::ISerializedData::serialize(), and Arcane::BasicSerializer::setMode().
|
inlinevirtual |
Implements Arcane::IDataReader.
Definition at line 108 of file hdf5/Hdf5ReaderWriter.h.
|
inlinevirtual |
Implements Arcane::IDataWriter.
Definition at line 103 of file hdf5/Hdf5ReaderWriter.h.
|
inlinevirtual |
Implements Arcane::IDataReader.
Definition at line 112 of file hdf5/Hdf5ReaderWriter.h.
|
virtual |
Implements Arcane::IDataWriter.
Definition at line 750 of file Hdf5ReaderWriter.cc.
|
virtual |
Definition at line 138 of file Hdf5ReaderWriter.cc.
| herr_t Arcane::Hdf5ReaderWriter::iterateMe | ( | hid_t | group_id, |
| const char * | member_name ) |
Definition at line 327 of file Hdf5ReaderWriter.cc.
|
virtual |
Metadata.
Implements Arcane::IDataReader.
Definition at line 719 of file Hdf5ReaderWriter.cc.
References Arcane::Array< T >::data(), and m_sub_group_id.
Reads the data data of the variable var.
Implements Arcane::IDataReader.
Definition at line 635 of file Hdf5ReaderWriter.cc.
|
virtual |
Sets the metadata information.
Implements Arcane::IDataWriter.
Definition at line 644 of file Hdf5ReaderWriter.cc.
References Arcane::BasicSerializer::allocateBuffer(), Arcane::BasicSerializer::get(), m_is_parallel, m_parallel_mng, m_sub_group_name, Arcane::ISerializer::ModeGet, Arcane::ISerializer::ModePut, Arcane::BasicSerializer::put(), Arcane::BasicSerializer::reserve(), and Arcane::BasicSerializer::setMode().
Writes the data data of the variable var.
Implements Arcane::IDataWriter.
Definition at line 594 of file Hdf5ReaderWriter.cc.
|
private |
HDF file identifier.
Definition at line 134 of file hdf5/Hdf5ReaderWriter.h.
|
private |
Filename.
Definition at line 128 of file hdf5/Hdf5ReaderWriter.h.
|
private |
Definition at line 149 of file hdf5/Hdf5ReaderWriter.h.
|
private |
Definition at line 151 of file hdf5/Hdf5ReaderWriter.h.
|
private |
Definition at line 150 of file hdf5/Hdf5ReaderWriter.h.
|
private |
Definition at line 139 of file hdf5/Hdf5ReaderWriter.h.
|
private |
True if already initialized.
Definition at line 130 of file hdf5/Hdf5ReaderWriter.h.
|
private |
Active parallel mode: WARNING: for testing only.
Definition at line 144 of file hdf5/Hdf5ReaderWriter.h.
Referenced by setMetaData().
|
private |
Definition at line 147 of file hdf5/Hdf5ReaderWriter.h.
|
private |
Definition at line 145 of file hdf5/Hdf5ReaderWriter.h.
|
private |
Open mode.
Definition at line 127 of file hdf5/Hdf5ReaderWriter.h.
|
private |
Parallelism manager;.
Definition at line 126 of file hdf5/Hdf5ReaderWriter.h.
Referenced by _writeValParallel(), and setMetaData().
|
private |
Definition at line 146 of file hdf5/Hdf5ReaderWriter.h.
|
private |
HDF group identifier containing the protection.
Definition at line 135 of file hdf5/Hdf5ReaderWriter.h.
Referenced by metaData().
|
private |
Subgroup name.
Definition at line 129 of file hdf5/Hdf5ReaderWriter.h.
Referenced by _writeValParallel(), and setMetaData().
|
private |
Definition at line 132 of file hdf5/Hdf5ReaderWriter.h.
|
private |
HDF group identifier containing the variables.
Definition at line 136 of file hdf5/Hdf5ReaderWriter.h.
|
private |
List of names of saved variables.
Definition at line 138 of file hdf5/Hdf5ReaderWriter.h.