deal.II version 9.7.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
HDF5::Group Class Reference

#include <deal.II/base/hdf5.h>

Detailed Description

This class implements an HDF5 Group

Definition at line 975 of file hdf5.h.

Inheritance diagram for HDF5::Group:

Public Member Functions

Group open_group (const std::string &name) const
Group create_group (const std::string &name) const
DataSet open_dataset (const std::string &name) const
template<typename number>
DataSet create_dataset (const std::string &name, const std::vector< hsize_t > &dimensions) const
template<typename Container>
void write_dataset (const std::string &name, const Container &data) const
template<typename T>
get_attribute (const std::string &attr_name) const
template<>
std::string get_attribute (const std::string &attr_name) const
template<typename T>
void set_attribute (const std::string &attr_name, const T value)
template<>
void set_attribute (const std::string &attr_name, const std::string value)
std::string get_name () const

Protected Types

enum class  GroupAccessMode { open , create }

Protected Member Functions

 Group (const std::string &name, const Group &parent_group, const bool mpi, const GroupAccessMode mode)
 Group (const std::string &name, const bool mpi)

Protected Attributes

const std::string name
std::shared_ptr< hid_t > hdf5_reference
const bool mpi

Member Enumeration Documentation

◆ GroupAccessMode

enum class HDF5::Group::GroupAccessMode
strongprotected

Group access mode

Enumerator
open 

Opens an existing group

create 

Creates a new group

Definition at line 981 of file hdf5.h.

Constructor & Destructor Documentation

◆ Group() [1/2]

HDF5::Group::Group ( const std::string & name,
const Group & parent_group,
const bool mpi,
const GroupAccessMode mode )
protected

This constructor creates or opens a group depending on the value of mode. The group will be placed inside the group parent_group. The parameter mpi defines if the I/O operations are serial or parallel. This is an internal constructor, the functions open_group() and create_group() of the current class should be used to open or create a group.

Definition at line 319 of file hdf5.cc.

◆ Group() [2/2]

HDF5::Group::Group ( const std::string & name,
const bool mpi )
protected

Internal constructor used by File. The constructor sets the protected const members of HDF5Group: name and mpi. It does not create or open a Group.

Definition at line 355 of file hdf5.cc.

Member Function Documentation

◆ open_group()

Group HDF5::Group::open_group ( const std::string & name) const

Opens a sub-group of the current Group or File.

Definition at line 362 of file hdf5.cc.

◆ create_group()

Group HDF5::Group::create_group ( const std::string & name) const

Creates a sub-group in the current Group or File.

Definition at line 370 of file hdf5.cc.

◆ open_dataset()

DataSet HDF5::Group::open_dataset ( const std::string & name) const

Opens a dataset.

Definition at line 378 of file hdf5.cc.

◆ create_dataset()

template<typename number>
DataSet HDF5::Group::create_dataset ( const std::string & name,
const std::vector< hsize_t > & dimensions ) const

Creates a dataset. number can be float, double, std::complex<float>, std::complex<double>, int or unsigned int.

Datatype conversion takes place at the time of a read or write and is automatic. See the Data Transfer: Datatype Conversion and Selection section in the HDF5 User's Guide.

Definition at line 2230 of file hdf5.h.

◆ write_dataset()

template<typename Container>
void HDF5::Group::write_dataset ( const std::string & name,
const Container & data ) const

Create and write data to a dataset. number can be float, double, std::complex<float>, std::complex<double>, int or unsigned int.

Datatype conversion takes place at the time of a read or write and is automatic. See the Data Transfer: Datatype Conversion and Selection section in the HDF5 User's Guide.

Container can be std::vector<float>, std::vector<double>, std::vector<std::complex<float>>, std::vector<std::complex<double>>, std::vector<int>, std::vector<unsigned int>, Vector<float>, Vector<double>, Vector<std::complex<float>>, Vector<std::complex<double>>, FullMatrix<float>, FullMatrix<double>, FullMatrix<std::complex<float>> or FullMatrix<std::complex<double>>.

Definition at line 2241 of file hdf5.h.

◆ get_attribute() [1/2]

template<typename T>
T HDF5::HDF5Object::get_attribute ( const std::string & attr_name) const
inherited

Reads an attribute. T can be float, double, std::complex<float>, std::complex<double>, int, unsigned int, bool or std::string. Note that the encoding of std::string is UTF8 in order to be compatible with python3.

Datatype conversion takes place at the time of a read or write and is automatic. See the Data Transfer: Datatype Conversion and Selection section in the HDF5 User's Guide.

Definition at line 1594 of file hdf5.h.

◆ get_attribute() [2/2]

template<>
std::string HDF5::HDF5Object::get_attribute ( const std::string & attr_name) const
inlineinherited

Definition at line 1617 of file hdf5.h.

◆ set_attribute() [1/2]

template<typename T>
void HDF5::HDF5Object::set_attribute ( const std::string & attr_name,
const T value )
inherited

Writes an attribute. T can be float, double, std::complex<float>, std::complex<double>, int, unsigned int, bool or std::string. Note that the encoding of std::string is UTF8 in order to be compatible with python3.

Datatype conversion takes place at the time of a read or write and is automatic. See the Data Transfer: Datatype Conversion and Selection section in the HDF5 User's Guide.

Definition at line 1671 of file hdf5.h.

◆ set_attribute() [2/2]

template<>
void HDF5::HDF5Object::set_attribute ( const std::string & attr_name,
const std::string value )
inlineinherited

Definition at line 1711 of file hdf5.h.

◆ get_name()

std::string HDF5::HDF5Object::get_name ( ) const
inherited

Returns the name of the object. In the case of File, name corresponds to the file name. In the case of Group and DataSet, name corresponds to the name of the object in the HDF5 file.

Definition at line 76 of file hdf5.cc.

Member Data Documentation

◆ name

const std::string HDF5::HDF5Object::name
protectedinherited

Name of the HDF5Object. In the case of File, name corresponds to the file name. In the case of Group and DataSet name corresponds to the name of the object in the HDF5 file.

Definition at line 404 of file hdf5.h.

◆ hdf5_reference

std::shared_ptr<hid_t> HDF5::HDF5Object::hdf5_reference
protectedinherited

HDF5 identifier for the objects File, Group and DataSet. The std::shared_ptr<> pointer allows the object to be copied. For example several parts of the program can share and access the same group; when all the functions that access the group are closed, the HDF5 resources of the group will be automatically released.

Definition at line 413 of file hdf5.h.

◆ mpi

const bool HDF5::HDF5Object::mpi
protectedinherited

If true use parallel HDF5, if false use serial HDF5.

Definition at line 418 of file hdf5.h.


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