24 lines
1.1 KiB
C++
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
|