Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

mgparm.h

Go to the documentation of this file.
00001 
00051 #ifndef _MGPARM_H_
00052 #define _MGPARM_H_
00053 
00054 #include "maloc/maloc.h"
00055 #include "apbs/vhal.h"
00056 
00061 enum eMGparm_CalcType {
00062     MCT_MAN=0,  
00063     MCT_AUT=1,  
00064     MCT_PAR=2,  
00065     MCT_DUM=3  
00066 };
00067 
00072 typedef enum eMGparm_CalcType MGparm_CalcType;
00073 
00078 enum eMGparm_CentMeth {
00079     MCM_PNT=0, 
00080     MCM_MOL=1  
00081 };
00082 
00087 typedef enum eMGparm_CentMeth MGparm_CentMeth;
00096 struct sMGparm {
00097 
00098     MGparm_CalcType type;  
00099     int parsed;  
00101     /* *** GENERIC PARAMETERS *** */
00102     int dime[3];  
00103     int setdime;  
00104     Vchrg_Meth chgm;  
00105     int setchgm;  
00107     /* *** TYPE 0 PARAMETERS (SEQUENTIAL MANUAL) *** */
00108     int nlev;  
00110     int setnlev;  
00111     double grid[3];  
00112     int setgrid;  
00113     double glen[3];  
00114     int setglen;  
00115     MGparm_CentMeth cmeth;  
00116     double center[3];  
00124     int centmol;  
00126     int setgcent;  
00128     /* ******** TYPE 1 & 2 PARAMETERS (SEQUENTIAL & PARALLEL AUTO-FOCUS) *** */
00129     double cglen[3];  
00130     int setcglen;  
00131     double fglen[3];  
00132     int setfglen;  
00133     MGparm_CentMeth ccmeth;  
00134     double ccenter[3];  
00135     int ccentmol;  
00137     int setcgcent;  
00138     MGparm_CentMeth fcmeth;  
00139     double fcenter[3];  
00140     int fcentmol;  
00142     int setfgcent;  
00145     /* ********* TYPE 2 PARAMETERS (PARALLEL AUTO-FOCUS) ******** */
00146     double partDisjCenterShift[3];  
00149     double partDisjLength[3];  
00151     int partDisjOwnSide[6];  
00153     double partOlapCenterShift[3];  
00156     double partOlapLength[3];  
00159     int pdime[3];  
00160     int setpdime;  
00161     int proc_rank;  
00162     int setrank;  
00163     int proc_size;  
00164     int setsize;  
00165     double ofrac;  
00166     int setofrac;  
00167     int async; 
00168     int setasync; 
00169 };
00170 
00175 typedef struct sMGparm MGparm;
00176 
00183 int MGparm_getNx(MGparm *thee);
00184 
00191 int MGparm_getNy(MGparm *thee);
00192 
00199 int MGparm_getNz(MGparm *thee);
00200 
00207 double MGparm_getHx(MGparm *thee);
00208 
00215 double MGparm_getHy(MGparm *thee);
00216 
00223 double MGparm_getHz(MGparm *thee);
00224 
00231 void MGparm_setCenterX(MGparm *thee, double x);
00232 
00239 void MGparm_setCenterY(MGparm *thee, double y);
00240 
00247 void MGparm_setCenterZ(MGparm *thee, double z);
00248 
00255 double MGparm_getCenterX(MGparm *thee);
00256 
00263 double MGparm_getCenterY(MGparm *thee);
00264 
00271 double MGparm_getCenterZ(MGparm *thee);
00272 
00279 double MGparm_getPartOlapCenterShiftX(MGparm *thee);
00280 
00287 double MGparm_getPartOlapCenterShiftY(MGparm *thee);
00288 
00295 double MGparm_getPartOlapCenterShiftZ(MGparm *thee);
00296 
00303 MGparm*  MGparm_ctor(MGparm_CalcType type);
00304 
00312 int      MGparm_ctor2(MGparm *thee, MGparm_CalcType type);
00313 
00319 void     MGparm_dtor(MGparm **thee);
00320 
00326 void     MGparm_dtor2(MGparm *thee);
00327 
00334 int      MGparm_check(MGparm *thee);
00335 
00342 void     MGparm_copy(MGparm *thee, MGparm *parm);
00343 
00353 int      MGparm_parseToken(MGparm *thee, char tok[VMAX_BUFSIZE], 
00354                     Vio *sock);
00355 
00356 #endif 
00357 
00358 

Generated on Tue Dec 6 10:05:31 2005 for APBS by doxygen 1.3.5