std::optional<std::string> readAtoms(int stride,bool dont_read_pbc, \
bool debug_pd,int pd_start,int pd_nlocal,long long int &step, \
double* masses,double* charges,double* coordinates,double* cell ) override { \
return readAtoms_t<double>(stride,dont_read_pbc,debug_pd,pd_start,pd_nlocal, \
step,masses,charges,coordinates,cell ); \
} \
\
std::optional<std::string> readAtoms(int stride,bool dont_read_pbc, \
bool debug_pd,int pd_start,int pd_nlocal,long long int &step, \
float* masses,float* charges,float* coordinates,float* cell ) override { \
return readAtoms_t<float>(stride,dont_read_pbc,debug_pd,pd_start,pd_nlocal, \
step,masses,charges,coordinates,cell ); \
}