96 const size_t compressionLevel)
151 mSize = dimensionSizes.
nx * dimensionSizes.
ny * dimensionSizes.
nz;
static constexpr size_t kChunkSize1D256kB
Number of elements to get 256KB block of data.
size_t mRowSize
Size of a 1D row in X dimension.
virtual void allocateMemory()
Aligned memory allocation (both on CPU and GPU).
virtual void writeData(Hdf5File &file, MatrixName &matrixName, const size_t compressionLevel)
Write data into HDF5 file.
hid_t getRootGroup() const
Get handle to the root group of the file.
size_t nz
Number of elements in the z direction.
The header file containing the class for real matrices.
virtual void readData(Hdf5File &file, MatrixName &matrixName)
Read matrix from HDF5 file.
void initDimensions(const DimensionSizes &dimensionSizes)
Init dimension.
void writeMatrixDomainType(const hid_t parentGroup, MatrixName &datasetName, const MatrixDomainType &matrixDomainType)
Write matrix data type into the dataset at a specified place in the file tree.
void closeDataset(const hid_t dataset)
Close dataset.
float * mData
Raw matrix data.
DimensionSizes mDimensionSizes
Dimension sizes.
void writeMatrixDataType(const hid_t parentGroup, MatrixName &datasetName, const MatrixDataType &matrixDataType)
Write matrix data type into the dataset at a specified place in the file tree.
The header file containing a class responsible for printing out info and error messages (stdout...
Class wrapping the HDF5 routines.
static std::string formatMessage(const std::string &format, Args ... args)
C++-11 replacement for sprintf that works with std::string instead of char*.
void writeHyperSlab(const hid_t dataset, const DimensionSizes &position, const DimensionSizes &size, const T *data)
Write a hyperslab into the dataset.
const std::string MatrixName
Datatype for matrix names.
Structure with 4D dimension sizes (3 in space and 1 in time).
static constexpr size_t kChunkSize1D4MB
Number of elements to get 4MB block of data.
The matrix is stored in floating point 32b wide format.
MatrixDataType readMatrixDataType(const hid_t parentGroup, MatrixName &datasetName)
Read matrix data type from the dataset at a specified place in the file tree.
The header file with the class for complex matrices.
size_t ny
Number of elements in the y direction.
virtual void freeMemory()
Memory allocation (both on CPU and GPU).
size_t mSize
Total number of used elements.
void readCompleteDataset(const hid_t parentGroup, MatrixName &datasetName, const DimensionSizes &dimensionSizes, T *data)
Read data from the dataset at a specified place in the file tree.
ErrorMessage kErrFmtMatrixNotReal
Matrix class error message.
static constexpr size_t kChunkSize1D1MB
Number of elements to get 1MB block of data.
size_t nx
Number of elements in the x direction.
size_t mSlabSize
Size of a XY slab.
virtual ~RealMatrix()
Destructor.
hid_t createDataset(const hid_t parentGroup, MatrixName &datasetName, const DimensionSizes &dimensionSizes, const DimensionSizes &chunkSizes, const MatrixDataType matrixDataType, const size_t compressionLevel)
Create a float HDF5 dataset at a specified place in the file tree (3D/4D).
RealMatrix()=delete
Default constructor is not allowed.
MatrixDomainType readMatrixDomainType(const hid_t parentGroup, MatrixName &datasetName)
Read matrix dataset domain type at a specified place in the file tree.
ErrorMessage kErrFmtMatrixNotFloat
Matrix class error message.
The matrix is defined on real domain.
size_t mCapacity
Total number of allocated elements (in terms of floats).
Abstract base class for float based matrices defining basic interface. Higher dimensional matrices st...