#include #include #include "yebisu_g6.h" #include "g6util.h" #define NIMAX 1048576 #define MAXDEV 4 #ifndef NB_FLAG #define NB_FLAG 0 #endif extern "C" { static int sort_mode = 0; static double eps2_buf[MAXDEV][NIMAX]; static int nnb_buf[MAXDEV][NIMAX]; void g6_open(int clusterid){ assert(clusterid < MAXDEV); assert(NIMAX >= g6_npipes()); yebisu_g6_open(clusterid); } void g6_close(int clusterid){ yebisu_g6_close(clusterid); } void g6_set_tunit(int newtunit){} void g6_set_xunit(int newxunit){} int g6_set_j_particle( int clusterid, int address, int index, double tj, double dtj, double mass, double a2by18[3], double a1by6[3], double aby2[3], double v[3], double x[3]) { yebisu_g6_push_jp(clusterid, x, v, aby2, a1by6, mass, tj, index, address); return 0; } void g6_set_ti(int clusterid, double ti){ yebisu_g6_set_ti(clusterid, ti); } void g6calc_firsthalf0( int clusterid, int nj, int ni, int index[], double xi[][3], double vi[][3], double fold[][3], double jold[][3], double phiold[], double *eps2, double h2[], int mode) { double *eps2_ptr = eps2; if(mode){ // constand eps2 eps2_ptr = eps2_buf[clusterid]; for(int i=0; i