00001
00015 #define NATOMS 150000
00016
00061 VEXTERNC int apbsdrv_(int *nat,
00062 double x[NATOMS],
00063 double y[NATOMS],
00064 double z[NATOMS],
00065 double radius[NATOMS],
00066 double charge[NATOMS],
00067 double r_param[9],
00068 int i_param[25],
00069 double grid[3],
00070 int dime[3],
00071 int pdime[3],
00072 double glen[3],
00073 double center[3],
00074 double cglen[3],
00075 double fglen[3],
00076 double ccenter[3],
00077 double fcenter[3],
00078 double *ofrac,
00079 int *dbg,
00080 double ionq[MAXION],
00081 double ionc[MAXION],
00082 double ionr[MAXION],
00083 double esEnergy[NOSH_MAXCALC],
00084 double npEnergy[NOSH_MAXCALC],
00085 double apbsdx[NATOMS],
00086 double apbsdy[NATOMS],
00087 double apbsdz[NATOMS],
00088 double apbsqfx[NATOMS],
00089 double apbsqfy[NATOMS],
00090 double apbsqfz[NATOMS],
00091 double apbsibx[NATOMS],
00092 double apbsiby[NATOMS],
00093 double apbsibz[NATOMS],
00094 double apbsnpx[NATOMS],
00095 double apbsnpy[NATOMS],
00096 double apbsnpz[NATOMS],
00097 double apbsdbx[NATOMS],
00098 double apbsdby[NATOMS],
00099 double apbsdbz[NATOMS]);
00100
00116 VEXTERNC int iforceMG(Vmem *mem,
00117 NOsh *nosh,
00118 PBEparm *pbeparm,
00119 MGparm *mgparm,
00120 Vpmg *pmg,
00121 int *nforce,
00122 AtomForce **atomForce,
00123 Valist *alist[NOSH_MAXMOL],
00124 int debug);
00125
00131
00132
00133 double getElecEnergy(
00134 Vcom *com,
00135 NOsh *nosh,
00136 double totEnergy[NOSH_MAXCALC],
00138 int iprint
00139 );
00140
00141
00162 char *setupString(double r_param[9], int i_param[25], double grid[3],
00163 int dime[3], double ionq[MAXION], double ionc[MAXION],
00164 double ionr[MAXION], double glen[3], double center[3],
00165 double cglen[3], double fglen[3],
00166 double ccenter[3], double fcenter[3], double *ofrac,
00167 int pdime[3], int debug);