3
0
mirror of https://github.com/triqs/dft_tools synced 2024-11-01 19:53:45 +01:00
dft_tools/doc/reference/c++/arrays/h5_rw.rst
Olivier Parcollet f2c7d449cc First commit : triqs libs version 1.0 alpha1
for earlier commits, see TRIQS0.x repository.
2013-07-17 19:24:07 +02:00

39 lines
1.2 KiB
ReStructuredText

.. highlight:: c
Simple read/write operations of an array (or a view)
============================================================================
Given an array (or an array_view), the functions `h5::write` and `h5::read` write and read it to/from the file
or any subgroup thereof. For example :
.. compileblock::
#include <triqs/arrays.hpp>
using triqs::arrays::array; using triqs::arrays::matrix;
int main(){
array<double,2> A(2,2); A() = 3; // declare and init
H5::H5File file("store_A.h5",H5F_ACC_TRUNC); // open the file
h5_write(file,"A",A); // write the array as 'A' into the file
//array<double,2> B; // read the file into B
matrix<double> B; // read the file into B
h5_read (file, "A",B);
std::cout << "B = "<<B<<std::endl;
h5_write(file,"B",B);
}
.. literalinclude:: examples_code/h5_rw.cpp
Note that :
* The data in the hdf5 file are stored in C order.
* The data is reordered in Fortran (or custom) order if necessary when reading/writing.
* It also works with matrix and vector (but the storage is the same in HDF5).
* It also works with the corresponding views. TO BE ILLUSTRATED.