first commit
This commit is contained in:
commit
604f1cb18a
9 changed files with 1683 additions and 0 deletions
90
grape6.h
Normal file
90
grape6.h
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
#ifndef G6UTIL_H
|
||||
#define G6UTIL_H
|
||||
|
||||
// #include "typedef.h"
|
||||
|
||||
/* constant definitions */
|
||||
#if !defined(__LANGUAGE_FORTRAN__) && !defined(_LANGUAGE_FORTRAN)
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
/* C interface */
|
||||
|
||||
/*
|
||||
* standard functions.
|
||||
* the number of the cards is hidden to the user.
|
||||
*/
|
||||
void g6_open_all(void);
|
||||
void g6_close_all(void);
|
||||
int g6_set_j_particle_all(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]);
|
||||
int g6_set_j_particle_mxonly_all(int address, int index, double mass, double x[3]);
|
||||
void g6_set_ti_all(double ti);
|
||||
void g6calc_firsthalf_all(int nj, int ni, int index[], double xi[][3], double vi[][3],
|
||||
double fold[][3], double jold[][3], double phiold[], double eps2, double h2[]);
|
||||
void g6calc_firsthalf0_all(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);
|
||||
int g6calc_lasthalf_all(int nj, int ni, int index[], double xi[][3], double vi[][3],
|
||||
double eps2, double h2[], double acc[][3], double jerk[][3], double pot[]);
|
||||
int g6calc_lasthalf0_all(int nj, int ni, int index[], double xi[][3], double vi[][3],
|
||||
double *eps2, double h2[], double acc[][3], double jerk[][3], double pot[], int mode);
|
||||
int g6calc_lasthalf2_all(int nj, int ni, int index[], double xi[][3], double vi[][3],
|
||||
double eps2, double h2[], double acc[][3], double jerk[][3], double pot[], int nnbindex[]);
|
||||
int g6_read_neighbour_list_all(void);
|
||||
int g6_get_neighbour_list_all(int ipipe, int maxlength, int *nblen, int nbl[]);
|
||||
void g6_set_nip_all(int nip);
|
||||
void g6_set_njp_all(int njp);
|
||||
void g6_set_i_particle_scales_from_real_value_all(int address, double acc[3], double jerk[3], double phi,
|
||||
double jfactor, double ffactor);
|
||||
void g6_set_i_particle_all(int address, int index, double x[3], double v[3], double eps2, double h2);
|
||||
int g6_get_force_all(double acc[][3], double jerk[][3], double phi[], int flag[]);
|
||||
int g6_get_force_etc_all(double acc[][3], double jerk[][3], double phi[], int nnbindex[], int flag[]);
|
||||
void g6_get_predicted_j_particles_all(int nj, double (*x)[3], double (*v)[3]);
|
||||
int g6_getnjmax_all(void);
|
||||
|
||||
/*
|
||||
* primitive functions to control multiple cards individually.
|
||||
* the user needs to specify card's device id explicitly.
|
||||
*/
|
||||
void g6_open(int clusterid);
|
||||
void g6_close(int 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]);
|
||||
int g6_set_j_particle_mxonly(int clusterid, int address, int index, double mass, double x[3]);
|
||||
void g6_set_ti(int clusterid, double ti);
|
||||
void g6calc_firsthalf(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[]);
|
||||
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);
|
||||
int g6calc_lasthalf(int clusterid, int nj, int ni, int index[], double xi[][3], double vi[][3],
|
||||
double eps2, double h2[], double acc[][3], double jerk[][3], double pot[]);
|
||||
int g6calc_lasthalf0(int clusterid, int nj, int ni, int index[], double xi[][3], double vi[][3],
|
||||
double *eps2, double h2[], double acc[][3], double jerk[][3], double pot[], int mode);
|
||||
int g6calc_lasthalf2(int clusterid, int nj, int ni, int index[], double xi[][3], double vi[][3],
|
||||
double eps2, double h2[], double acc[][3], double jerk[][3], double pot[], int nnbindex[]);
|
||||
int g6_read_neighbour_list(int clusterid);
|
||||
int g6_get_neighbour_list(int clusterid, int ipipe, int maxlength, int *nblen, int nbl[]);
|
||||
void g6_set_neighbour_list_sort_mode(int mode);
|
||||
int g6_get_neighbour_list_sort_mode(void);
|
||||
int g6_npipes(void);
|
||||
void g6_set_nip(int clusterid, int nip);
|
||||
void g6_set_njp(int clusterid, int njp);
|
||||
void g6_set_i_particle_scales_from_real_value(int clusterid, int address, double acc[3], double jerk[3], double phi,
|
||||
double jfactor, double ffactor);
|
||||
void g6_set_i_particle(int clusterid, int address, int index, double x[3], double v[3], double eps2, double h2);
|
||||
int g6_get_force(int clusterid, double acc[][3], double jerk[][3], double phi[], int flag[]);
|
||||
int g6_get_force_etc(int clusterid, double acc[][3], double jerk[][3], double phi[], int nnbindex[], int flag[]);
|
||||
void g6_get_predicted_j_particles(int clusterid, int nj, double x[][3], double v[][3]);
|
||||
int g6_getnjmax(int clusterid);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* LANGUAGE_FORTRAN */
|
||||
|
||||
#endif /* G6UTIL_H */
|
||||
Loading…
Add table
Add a link
Reference in a new issue