00001
00062 #ifndef _MGPARM_H_
00063 #define _MGPARM_H_
00064
00065 #include "maloc/maloc.h"
00066 #include "apbs/vhal.h"
00067
00072 enum eMGparm_CalcType {
00073 MCT_MANUAL=0,
00074 MCT_AUTO=1,
00075 MCT_PARALLEL=2,
00076 MCT_DUMMY=3,
00077 MCT_NONE=4
00078 };
00079
00084 typedef enum eMGparm_CalcType MGparm_CalcType;
00085
00090 enum eMGparm_CentMeth {
00091 MCM_POINT=0,
00092 MCM_MOLECULE=1,
00093 MCM_FOCUS=2
00094 };
00095
00100 typedef enum eMGparm_CentMeth MGparm_CentMeth;
00109 struct sMGparm {
00110
00111 MGparm_CalcType type;
00112 int parsed;
00114
00115 int dime[3];
00116 int setdime;
00117 Vchrg_Meth chgm;
00118 int setchgm;
00119 Vchrg_Src chgs;
00122
00123 int nlev;
00125 int setnlev;
00126 double grid[3];
00127 int setgrid;
00128 double glen[3];
00129 int setglen;
00130 MGparm_CentMeth cmeth;
00131 double center[3];
00139 int centmol;
00142 int setgcent;
00144
00145 double cglen[3];
00146 int setcglen;
00147 double fglen[3];
00148 int setfglen;
00149 MGparm_CentMeth ccmeth;
00150 double ccenter[3];
00151 int ccentmol;
00154 int setcgcent;
00155 MGparm_CentMeth fcmeth;
00156 double fcenter[3];
00157 int fcentmol;
00160 int setfgcent;
00163
00164 double partDisjCenter[3];
00166 double partDisjLength[3];
00168 int partDisjOwnSide[6];
00171 int pdime[3];
00172 int setpdime;
00173 int proc_rank;
00174 int setrank;
00175 int proc_size;
00176 int setsize;
00177 double ofrac;
00178 int setofrac;
00179 int async;
00180 int setasync;
00182 int nonlintype;
00183 int setnonlintype;
00185 int method;
00186 int setmethod;
00188 int useAqua;
00189 int setUseAqua;
00190 };
00191
00196 typedef struct sMGparm MGparm;
00197
00204 int MGparm_getNx(MGparm *thee);
00205
00212 int MGparm_getNy(MGparm *thee);
00213
00220 int MGparm_getNz(MGparm *thee);
00221
00228 double MGparm_getHx(MGparm *thee);
00229
00236 double MGparm_getHy(MGparm *thee);
00237
00244 double MGparm_getHz(MGparm *thee);
00245
00252 void MGparm_setCenterX(MGparm *thee, double x);
00253
00260 void MGparm_setCenterY(MGparm *thee, double y);
00261
00268 void MGparm_setCenterZ(MGparm *thee, double z);
00269
00276 double MGparm_getCenterX(MGparm *thee);
00277
00284 double MGparm_getCenterY(MGparm *thee);
00285
00292 double MGparm_getCenterZ(MGparm *thee);
00293
00300 MGparm* MGparm_ctor(MGparm_CalcType type);
00301
00309 Vrc_Codes MGparm_ctor2(MGparm *thee, MGparm_CalcType type);
00310
00316 void MGparm_dtor(MGparm **thee);
00317
00323 void MGparm_dtor2(MGparm *thee);
00324
00331 Vrc_Codes MGparm_check(MGparm *thee);
00332
00339 void MGparm_copy(MGparm *thee, MGparm *parm);
00340
00350 Vrc_Codes MGparm_parseToken(MGparm *thee, char tok[VMAX_BUFSIZE],
00351 Vio *sock);
00352
00353 #endif
00354
00355