phigrape/io.h

24 lines
1.1 KiB
C++

#pragma once
#include <string>
#include <vector>
#include "double3.h"
struct Input_data {
int N, step_num;
double t;
std::vector<double> m;
std::vector<double3> x, v;
};
bool is_hdf5(std::string file_name);
// This function is implemented independently of the HDF5 library
Input_data ascii_read(const std::string &file_name);
void ascii_write(const std::string file_name, const int step_num, const int N, const double t, const std::vector<double> &m, const std::vector<double3> &x, const std::vector<double3> &v, int precision=10);
Input_data h5_read(const std::string &file_name);
// In case the code is compiled without HDF5 support, the implementation of this function just throws an error
void h5_write(const std::string file_name, const int step_num, const int N, const double t, const std::vector<double> &m, const std::vector<double3> &x, const std::vector<double3> &v, const std::vector<double> &pot, const std::vector<double3> &acc, const std::vector<double3> &jrk, const int extra_mode=0, const bool use_double_precision=true);
// In case the code is compiled without HDF5 support, the implementation of this function just throws an error