Skip to content
suzuyuyuyuPublic

About

C++ wrapper routines for HDF5 and Parallel HDF5.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

h5cpp

Serial / Parallel HDF5 を扱う h5c の C++ ラッパーです。 RAII、コンテナ、例外を使って読み書きでき、可視化用の出力にも対応します。

必要なもの

  • C++17 対応コンパイラ、CMake 3.20 以上
  • h5c(インストール済み、または external/h5c・../h5c に配置)
  • 並列 I/O には MPI と H5C_ENABLE_PARALLEL=ON で構成した h5c

Build とインストール

テンプレートの CMAKE_PREFIX_PATH に h5c と HDF5 のインストール先を、 CMAKE_INSTALL_PREFIX に h5cpp のインストール先を指定します。

cp misc/CMakeUserPresets.json.template CMakeUserPresets.json
$EDITOR CMakeUserPresets.json
cmake --preset my-intel
cmake --build --preset my-intel
cmake --install build/my-intel

インストール先には ${HOME}/.local/opt/intel/h5cpp-<version> などを指定します。 並列版は my-intel-mpi(H5CPP_ENABLE_PARALLEL=ON、既定は OFF)です。 h5c が見つからない場合は external/h5c、../h5c の順にソースを探します。 GNU・C++20 の設定は 使用ガイド を参照してください。

利用側の CMake では、インストール先を CMAKE_PREFIX_PATH に指定します。

find_package(h5cpp CONFIG REQUIRED)
target_link_libraries(my_program PRIVATE h5cpp::h5cpp)

使い方

#include <h5cpp/h5cpp.hpp>
#include <vector>

int main() {
    std::vector<double> values = {1, 2, 3};
    h5cpp::file f("result.h5", h5cpp::mode::truncate);
    f.write("/values", values);
    f.close();
}

失敗は h5cpp::error で通知されます。

About

C++ wrapper routines for HDF5 and Parallel HDF5.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages