/
user_defined.h
46 lines (40 loc) · 1.2 KB
/
user_defined.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#pragma once
/* Standard headers */
#include <math.h>
/* FDPS headers */
#include "FDPS_c_if.h"
typedef struct full_particle { //$fdps FP,EPI,EPJ,Force
//$fdps copyFromForce full_particle (pot,pot) (acc,acc)
//$fdps copyFromFP full_particle (id,id) (mass,mass) (eps,eps) (pos,pos)
//$fdps clear id=keep, mass=keep, eps=keep, pos=keep, vel=keep
long long id; // $fdps id
double mass; //$fdps charge
double eps;
fdps_f64vec pos; //$fdps position
fdps_f64vec vel; //$fdps velocity
double pot;
fdps_f64vec acc;
} Full_particle;
#ifdef USE_PIKG_KERNEL
typedef struct epi_grav {
fdps_f32vec pos;
} Epi_grav;
typedef struct epj_grav {
fdps_f32vec pos;
float mass;
} Epj_grav;
typedef struct force_grav {
fdps_f32vec acc;
float pot;
} Force_grav;
#endif
void calc_gravity_ep_ep(Full_particle *ep_i,
int n_ip,
Full_particle *ep_j,
int n_jp,
Full_particle *f);
void calc_gravity_ep_sp(Full_particle *ep_i,
int n_ip,
fdps_spj_monopole *ep_j,
int n_jp,
Full_particle *f);