Cabana 0.8.0-dev
 
Loading...
Searching...
No Matches
Cabana_HDF5ParticleOutput.hpp File Reference

Write particle output using the HDF5 (XDMF) format. More...

#include <Kokkos_Core.hpp>
#include <Kokkos_Profiling_ScopedRegion.hpp>
#include <hdf5.h>
#include <mpi.h>
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
#include <type_traits>
#include <vector>
Include dependency graph for Cabana_HDF5ParticleOutput.hpp:

Go to the source code of this file.

Classes

struct  Cabana::Experimental::HDF5ParticleOutput::HDF5Config
 HDF5 tuning settings. More...
 

Namespaces

namespace  Cabana
 Core: particle data structures and algorithms.
 

Functions

void Cabana::Experimental::writeFields (HDF5Config, hid_t, std::size_t, std::size_t, hsize_t, int, const char *, const char *)
 Write particle data to HDF5 output. Empty overload if only writing coords.
 
template<class SliceType>
void Cabana::Experimental::writeFields (HDF5Config h5_config, hid_t file_id, std::size_t n_local, std::size_t n_global, hsize_t n_offset, int comm_rank, const char *filename_hdf5, const char *filename_xdmf, const SliceType &slice)
 Write particle data to HDF5 output.
 
template<class SliceType, class... FieldSliceTypes>
void Cabana::Experimental::writeFields (HDF5Config h5_config, hid_t file_id, std::size_t n_local, std::size_t n_global, hsize_t n_offset, int comm_rank, const char *filename_hdf5, const char *filename_xdmf, const SliceType &slice, FieldSliceTypes &&... fields)
 Write particle data to HDF5 output.
 
template<class CoordSliceType, class... FieldSliceTypes>
void Cabana::Experimental::writeTimeStep (HDF5Config h5_config, const std::string &prefix, MPI_Comm comm, const int time_step_index, const double time, const std::size_t n_local, const CoordSliceType &coords_slice, FieldSliceTypes &&... fields)
 Write particle output in HDF5 format.
 
template<class SliceType>
void Cabana::Experimental::readField (hid_t dset_id, hid_t dtype_id, hid_t memspace_id, hid_t filespace_id, hid_t plist_id, std::size_t n_local, const SliceType &slice, typename std::enable_if< 2==SliceType::kokkos_view::traits::dimension::rank, int * >::type=0)
 Read particle data from HDF5 output. Rank-0.
 
template<class SliceType>
void Cabana::Experimental::readField (hid_t dset_id, hid_t dtype_id, hid_t memspace_id, hid_t filespace_id, hid_t plist_id, std::size_t n_local, const SliceType &slice, typename std::enable_if< 3==SliceType::kokkos_view::traits::dimension::rank, int * >::type=0)
 Read particle data from HDF5 output. Rank-1.
 
template<class SliceType>
void Cabana::Experimental::readField (hid_t dset_id, hid_t dtype_id, hid_t memspace_id, hid_t filespace_id, hid_t plist_id, std::size_t n_local, const SliceType &slice, typename std::enable_if< 4==SliceType::kokkos_view::traits::dimension::rank, int * >::type=0)
 Read particle data from HDF5 output. Rank-2.
 
template<class FieldSliceType>
void Cabana::Experimental::readTimeStep (HDF5Config h5_config, const std::string &prefix, MPI_Comm comm, const int time_step_index, const std::size_t n_local, const std::string &dataset_name, double &time, FieldSliceType &field)
 Read particle output from an HDF5 file.
 

Detailed Description

Write particle output using the HDF5 (XDMF) format.

Function Documentation

◆ readTimeStep()

template<class FieldSliceType>
void Cabana::Experimental::readTimeStep ( HDF5Config h5_config,
const std::string & prefix,
MPI_Comm comm,
const int time_step_index,
const std::size_t n_local,
const std::string & dataset_name,
double & time,
FieldSliceType & field )

Read particle output from an HDF5 file.

Parameters
h5_configHDF5 configuration settings.
prefixFilename prefix.
commMPI communicator.
time_step_indexCurrent simulation step index.
n_localNumber of local particles.
dataset_nameDataset name to read data from.
timeCurrent simulation time.
fieldParticle property field slice.

◆ writeTimeStep()

template<class CoordSliceType, class... FieldSliceTypes>
void Cabana::Experimental::writeTimeStep ( HDF5Config h5_config,
const std::string & prefix,
MPI_Comm comm,
const int time_step_index,
const double time,
const std::size_t n_local,
const CoordSliceType & coords_slice,
FieldSliceTypes &&... fields )

Write particle output in HDF5 format.

Parameters
h5_configHDF5 configuration settings.
prefixFilename prefix.
commMPI communicator.
time_step_indexCurrent simulation step index.
timeCurrent simulation time.
n_localNumber of local particles.
coords_sliceParticle coordinates.
fieldsVariadic list of particle property fields.