ExaFMM 1
Fast-multipole Method for exascale systems
wrapper/mr3.h
Go to the documentation of this file.
00001 #define NMAX   65536
00002 #define KMAX   16384
00003 #define NTHRE  128
00004 #define NLOAD  32
00005 #define ATYPE  64
00006 #define ATYPE2 (ATYPE * ATYPE)
00007 
00008 #define MD_REAL_R2MIN 0.0001f
00009 #define MD_REAL_R2MAX 10.0f
00010 #define MD_LJ_R2MIN   0.25
00011 #define MD_LJ_R2MAX   64.0
00012 
00013 typedef union {
00014   float q;
00015   int atype;
00016 } VG_QATYPE;
00017 
00018 typedef struct {
00019   int r[3];
00020   VG_QATYPE qatype;
00021 } VG_XVEC;
00022 
00023 typedef struct {
00024   float k[3];
00025   float factor1;
00026 } VG_KVEC;
00027 
00028 typedef struct {
00029   float gscale;
00030   float rscale;
00031 } VG_MATRIX;
00032 
00033 typedef union {
00034   int i;
00035   float f;
00036 } FI;
00037 
00038 typedef union {
00039   struct{
00040     FI fi0;
00041     FI fi1;
00042   } fi2;
00043   double d;
00044 } DI2;
00045 
00046 void MR3calccoulomb_ij(int ni, double xi[], double qi[], double force[],
00047                        int nj, double xj[], double qj[],
00048                        double rscale,
00049                        int tblno, double xmax, int periodicflag);
00050 
00051 void MR3calcvdw_ij(int ni, double xi[], int atypei[], double force[],
00052                    int nj, double xj[], int atypej[],
00053                    int nat, double gscale[], double rscale[],
00054                    int tblno, double xmax, int periodicflag);
00055 
00056 void MR3calcewald(int *k, int knum_org, double *x, int n, double *q,
00057                   double alpha, double epsilon, double cell[3][3],
00058                   double *force, double *tpot, double stress[3][3]);
00059 
00060 int get_knum(double ksize);
00061 
00062 void init_kvec(double ksize, int *kvec);
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines