Go to the documentation of this file.00001
00056 #ifndef _MGPARM_H_
00057 #define _MGPARM_H_
00058
00059 #include "maloc/maloc.h"
00060 #include "apbs/vhal.h"
00061
00066 enum eMGparm_CalcType {
00067 MCT_MANUAL=0,
00068 MCT_AUTO=1,
00069 MCT_PARALLEL=2,
00070 MCT_DUMMY=3,
00071 MCT_NONE=4
00072 };
00073
00078 typedef enum eMGparm_CalcType MGparm_CalcType;
00079
00084 enum eMGparm_CentMeth {
00085 MCM_POINT=0,
00086 MCM_MOLECULE=1,
00087 MCM_FOCUS=2
00088 };
00089
00094 typedef enum eMGparm_CentMeth MGparm_CentMeth;
00103 struct sMGparm {
00104
00105 MGparm_CalcType type;
00106 int parsed;
00108
00109 int dime[3];
00110 int setdime;
00111 Vchrg_Meth chgm;
00112 int setchgm;
00113 Vchrg_Src chgs;
00116
00117 int nlev;
00119 int setnlev;
00120 double etol;
00121 int setetol;
00122 double grid[3];
00123 int setgrid;
00124 double glen[3];
00125 int setglen;
00126 MGparm_CentMeth cmeth;
00127 double center[3];
00135 int centmol;
00138 int setgcent;
00140
00141 double cglen[3];
00142 int setcglen;
00143 double fglen[3];
00144 int setfglen;
00145 MGparm_CentMeth ccmeth;
00146 double ccenter[3];
00147 int ccentmol;
00150 int setcgcent;
00151 MGparm_CentMeth fcmeth;
00152 double fcenter[3];
00153 int fcentmol;
00156 int setfgcent;
00159
00160 double partDisjCenter[3];
00162 double partDisjLength[3];
00164 int partDisjOwnSide[6];
00167 int pdime[3];
00168 int setpdime;
00169 int proc_rank;
00170 int setrank;
00171 int proc_size;
00172 int setsize;
00173 double ofrac;
00174 int setofrac;
00175 int async;
00176 int setasync;
00178 int nonlintype;
00179 int setnonlintype;
00181 int method;
00182 int setmethod;
00184 int useAqua;
00185 int setUseAqua;
00186 };
00187
00192 typedef struct sMGparm MGparm;
00193
00200 VEXTERNC int MGparm_getNx(MGparm *thee);
00201
00208 VEXTERNC int MGparm_getNy(MGparm *thee);
00209
00216 VEXTERNC int MGparm_getNz(MGparm *thee);
00217
00224 VEXTERNC double MGparm_getHx(MGparm *thee);
00225
00232 VEXTERNC double MGparm_getHy(MGparm *thee);
00233
00240 VEXTERNC double MGparm_getHz(MGparm *thee);
00241
00248 VEXTERNC void MGparm_setCenterX(MGparm *thee, double x);
00249
00256 VEXTERNC void MGparm_setCenterY(MGparm *thee, double y);
00257
00264 VEXTERNC void MGparm_setCenterZ(MGparm *thee, double z);
00265
00272 VEXTERNC double MGparm_getCenterX(MGparm *thee);
00273
00280 VEXTERNC double MGparm_getCenterY(MGparm *thee);
00281
00288 VEXTERNC double MGparm_getCenterZ(MGparm *thee);
00289
00296 VEXTERNC MGparm* MGparm_ctor(MGparm_CalcType type);
00297
00305 VEXTERNC Vrc_Codes MGparm_ctor2(MGparm *thee, MGparm_CalcType type);
00306
00312 VEXTERNC void MGparm_dtor(MGparm **thee);
00313
00319 VEXTERNC void MGparm_dtor2(MGparm *thee);
00320
00327 VEXTERNC Vrc_Codes MGparm_check(MGparm *thee);
00328
00335 VEXTERNC void MGparm_copy(MGparm *thee, MGparm *parm);
00336
00346 VEXTERNC Vrc_Codes MGparm_parseToken(MGparm *thee, char tok[VMAX_BUFSIZE],
00347 Vio *sock);
00348
00349 #endif
00350