12 virtual std::vector<std::vector<double>>
get_bounds() {
return {} ; }
23 while ( in !=
nullptr )
39 virtual double *
get_data([[maybe_unused]]
DataValue datavalue, [[maybe_unused]]
int dd, [[maybe_unused]] std::string name=
"") {
return nullptr ; }
49 static bool info=true ;
54 printf(
"ERR: the default radius was requested but not set!!!!! set to 1\n") ;
64 static bool info=true ;
69 printf(
"ERR: the default density was requested but not set!!!!! set to 1\n") ;
82 std::vector <std::optional<std::streampos>>
mapped_ts ;
85 v2d & particlearray,
int idx_pos,
int idx_r=-1)
88 size_t Nc = contactarray[idx_id1].size() ;
90 for (
int i=0 ; i<
d ; i++)
92 contactarray[idx_pospq+i].resize(Nc) ;
93 contactarray[idx_lpq+i].resize(Nc) ;
96 for (
size_t i=0 ; i<Nc ; i++)
98 int id1=
static_cast<int>(contactarray[idx_id1][i]) ;
99 int id2=
static_cast<int>(contactarray[idx_id2][i]) ;
100 double fraction = 0.5 ;
101 for (
int dd=0 ; dd<
d ; dd++)
103 contactarray[idx_lpq+dd][i] = particlearray[idx_pos+dd][
id1] - particlearray[idx_pos+dd][
id2] ;
106 fraction = particlearray[idx_r][
id2] / (particlearray[idx_r][
id1]+particlearray[idx_r][
id2]) ;
108 contactarray[idx_pospq+dd][i] = particlearray[idx_pos+dd][
id2] + fraction * contactarray[idx_lpq+dd][i] ;
116 printf(
"NEED TO WORK ON THAT ...") ;
return 0 ;
144 char * tmp = nullptr ;
150 tmp = (
char*) malloc(len) ;
156 tmp = (
char*) malloc(len+1) ;
159 else printf(
"ERR: unknown format specifier in file path: %c.\n",
path[
pos]) ;
160 std::string res = tmp ;
168 std::vector<std::pair<double,streampos>>
index ;
std::string path
Definition: Reader.h:134
void set_default_density(double density)
Definition: Reader.h:46
void set_default_radiusdensity(double radius, double density)
Definition: Reader.h:44
void set_default_radius(double radius)
Definition: Reader.h:45
bool is_fullymapped
Definition: Reader.h:81
struct Reader::@22 filenumbering
virtual int get_num_particles()
Definition: Reader.h:37
int curts
Definition: Reader.h:135
double Radius
Definition: Reader.h:171
int numts
Definition: Reader.h:139
virtual int build_index()
Definition: Reader.h:40
std::vector< std::pair< double, streampos > > index
Definition: Reader.h:168
virtual double * get_data([[maybe_unused]] DataValue datavalue, [[maybe_unused]] int dd, [[maybe_unused]] std::string name="")
Definition: Reader.h:39
std::string getpath(int ts)
Definition: Reader.h:142
virtual void post_init()
Definition: Reader.h:42
int clean_contacts(v2d &contactarray, int id1, int id2, int idx_lpq, v2d &particlearray, int idx_r)
Definition: Reader.h:113
void build_pospqlpq_from_ids(v2d &contactarray, int idx_id1, int idx_id2, int idx_pospq, int idx_lpq, v2d &particlearray, int idx_pos, int idx_r=-1)
Definition: Reader.h:84
virtual std::vector< std::vector< double > > get_bounds()
Definition: Reader.h:12
bool is_seekable
Definition: Reader.h:80
virtual int read_timestep([[maybe_unused]] int ts)
Definition: Reader.h:41
double get_default_density()
Definition: Reader.h:62
bool ismultifile
Definition: Reader.h:140
double initial
Definition: Reader.h:137
virtual int get_numts()
Definition: Reader.h:15
virtual int get_num_contacts()
Definition: Reader.h:38
std::vector< std::optional< std::streampos > > mapped_ts
Definition: Reader.h:82
virtual int get_dimension()
Definition: Reader.h:14
virtual std::vector< double > get_minmaxradius()
Definition: Reader.h:13
double delta
Definition: Reader.h:138
double get_default_radius()
Definition: Reader.h:47
double Density
Definition: Reader.h:171
vector< vector< double > > v2d
Definition: Typedefs.h:10
DataValue
Definition: Typedefs.h:19
@ id2
Definition: Typedefs.h:19
@ pos
Definition: Typedefs.h:19
@ id1
Definition: Typedefs.h:19
@ radius
Definition: Typedefs.h:19