00001 00054 #ifndef _PBEPARM_H_ 00055 #define _PBEPARM_H_ 00056 00057 /* Generic headers */ 00058 #include "maloc/maloc.h" 00059 00060 /* Headers specific to this file */ 00061 #include "apbs/vhal.h" 00062 00066 #define PBEPARM_MAXWRITE 20 00067 00072 enum ePBEparm_calcEnergy { 00073 PCE_NO=0, 00074 PCE_TOTAL=1, 00075 PCE_COMPS=2 00076 }; 00077 00082 typedef enum ePBEparm_calcEnergy PBEparm_calcEnergy; 00083 00088 enum ePBEparm_calcForce { 00089 PCF_NO=0, 00090 PCF_TOTAL=1, 00091 PCF_COMPS=2 00092 }; 00093 00098 typedef enum ePBEparm_calcForce PBEparm_calcForce; 00099 00108 struct sPBEparm { 00109 00110 int molid; 00111 int setmolid; 00112 int useDielMap; 00114 int dielMapID; 00115 int useKappaMap; 00117 int kappaMapID; 00118 int usePotMap; 00120 int potMapID; 00122 int useChargeMap; 00124 int chargeMapID; 00125 Vhal_PBEType pbetype; 00126 int setpbetype; 00127 Vbcfl bcfl; 00128 int setbcfl; 00129 int nion; 00130 int setnion; 00131 double ionq[MAXION]; 00132 double ionc[MAXION]; 00133 double ionr[MAXION]; 00134 int setion[MAXION]; 00135 double pdie; 00136 int setpdie; 00137 double sdens; 00138 int setsdens; 00139 double sdie; 00140 int setsdie; 00141 Vsurf_Meth srfm; 00142 int setsrfm; 00143 double srad; 00144 int setsrad; 00145 double swin; 00146 int setswin; 00147 double temp; 00148 int settemp; 00150 double smsize; 00151 int setsmsize; 00153 double smvolume; 00154 int setsmvolume; 00156 PBEparm_calcEnergy calcenergy; 00157 int setcalcenergy; 00158 PBEparm_calcForce calcforce; 00159 int setcalcforce; 00161 /*----------------------------------------------------------------*/ 00162 /* Added by Michael Grabe */ 00163 /*----------------------------------------------------------------*/ 00164 00165 double zmem; 00166 int setzmem; 00167 double Lmem; 00168 int setLmem; 00169 double mdie; 00170 int setmdie; 00171 double memv; 00172 int setmemv; 00174 /*----------------------------------------------------------------*/ 00175 00176 int numwrite; 00177 char writestem[PBEPARM_MAXWRITE][VMAX_ARGLEN]; 00179 Vdata_Type writetype[PBEPARM_MAXWRITE]; 00180 Vdata_Format writefmt[PBEPARM_MAXWRITE]; 00182 int writemat; 00185 int setwritemat; 00186 char writematstem[VMAX_ARGLEN]; 00187 int writematflag; 00192 int parsed; 00194 }; 00195 00200 typedef struct sPBEparm PBEparm; 00201 00202 /* /////////////////////////////////////////////////////////////////////////// 00203 // Class NOsh: Non-inlineable methods (mcsh.c) 00205 00211 VEXTERNC double PBEparm_getIonCharge( 00212 PBEparm *thee, 00213 int iion 00214 ); 00215 00221 VEXTERNC double PBEparm_getIonConc( 00222 PBEparm *thee, 00223 int iion 00224 ); 00225 00231 VEXTERNC double PBEparm_getIonRadius( 00232 PBEparm *thee, 00233 int iion 00234 ); 00235 00236 00242 VEXTERNC PBEparm* PBEparm_ctor(); 00243 00249 VEXTERNC int PBEparm_ctor2( 00250 PBEparm *thee 00251 ); 00252 00257 VEXTERNC void PBEparm_dtor( 00258 PBEparm **thee 00259 ); 00260 00265 VEXTERNC void PBEparm_dtor2( 00266 PBEparm *thee 00267 ); 00268 00274 VEXTERNC int PBEparm_check( 00275 PBEparm *thee 00276 ); 00277 00282 VEXTERNC void PBEparm_copy( 00283 PBEparm *thee, 00284 PBEparm *parm 00285 ); 00286 00293 VEXTERNC int PBEparm_parseToken( 00294 PBEparm *thee, 00295 char tok[VMAX_BUFSIZE], 00296 Vio *sock 00297 ); 00298 00299 00300 #endif 00301