8#ifndef OPENFPM_IO_SRC_HDF5_XDMFWRITER_HDF5_XDMFWRITER_POINT_SET_HPP_
9#define OPENFPM_IO_SRC_HDF5_XDMFWRITER_HDF5_XDMFWRITER_POINT_SET_HPP_
11#include "HDF5_XdmfWriter_util.hpp"
12#include "Vector/map_vector.hpp"
13#include "VCluster/VCluster.hpp"
27template<
typename ele_v,
bool has_name>
56 typedef typename boost::mpl::at<typename ele_v::value_type::value_type::type,boost::mpl::int_<T::value>>::type ptype;
75template<
typename ele_v>
106 typedef typename boost::mpl::at<typename ele_v::value_type::type,boost::mpl::int_<T::value>>::type ptype;
147 template<
typename VPos,
typename VPrp,
int ... prp >
148 bool write(
const std::string & file,
153 Vcluster & v_cl = create_vcluster();
157 hid_t plist_id = H5Pcreate(H5P_FILE_ACCESS);
158 H5Pset_fapl_mpio(plist_id, v_cl.
getMPIComm(), MPI_INFO_NULL);
159 file_id = H5Fcreate(file.c_str(), H5F_ACC_TRUNC, H5P_DEFAULT, plist_id);
167 for (
size_t i = 0 ; i < VPos::dims ; i++)
170 for (
size_t j = 0 ; j < stop ; j++)
171 x_n.get(j) = v_pos.template get<0>(j)[i];
173 std::stringstream str;
176 HDF5CreateDataSet<typename VPos::coord_type>(file_id,str.str(),x_n.getPointer(),stop*
sizeof(
typename VPos::coord_type));
184 boost::mpl::for_each_ref<v_prp_seq>(f);
bool write(const std::string &file, openfpm::vector< VPos > &v_pos, openfpm::vector< VPrp > &v_prp, size_t stop)
Write a set of particle positions and properties into HDF5.
MPI_Comm getMPIComm()
Get the MPI_Communicator (or processor group) this VCluster is using.
Implementation of VCluster class.
Implementation of 1-D std::vector like structure.
ele_v & vv
vector that we are processing
size_t stop
Up to which element to write.
void operator()(T &t) const
It produce an output for each property.
H5_prop_out(hid_t file_id, ele_v &vv, size_t stop)
constructor
this class is a functor for "for_each" algorithm
H5_prop_out(hid_t file_id, ele_v &vv, size_t stop)
constructor
size_t stop
Up to which element to write.
void operator()(T &t) const
It produce an output for each property.
ele_v & vv
vector that we are processing
static void write(hid_t file_id, const std::string &str, V &v, size_t stop)
write