00001 00072 #ifndef _PBEPARM_H_ 00073 #define _PBEPARM_H_ 00074 00075 /* Generic headers */ 00076 #include "maloc/maloc.h" 00077 00078 /* Headers specific to this file */ 00079 #include "apbs/vhal.h" 00080 00084 #define PBEPARM_MAXWRITE 10 00085 00090 enum ePBEparm_calcEnergy { 00091 PCE_NO=0, 00092 PCE_TOTAL=1, 00093 PCE_COMPS=2 00094 }; 00095 00100 typedef enum ePBEparm_calcEnergy PBEparm_calcEnergy; 00101 00106 enum ePBEparm_calcForce { 00107 PCF_NO=0, 00108 PCF_TOTAL=1, 00109 PCF_COMPS=2 00110 }; 00111 00116 typedef enum ePBEparm_calcForce PBEparm_calcForce; 00117 00126 struct sPBEparm { 00127 00128 int molid; 00129 int setmolid; 00130 int useDielMap; 00132 int dielMapID; 00133 int useKappaMap; 00135 int kappaMapID; 00136 int useChargeMap; 00138 int chargeMapID; 00139 Vhal_PBEType pbetype; 00140 int setpbetype; 00141 Vbcfl bcfl; 00142 int setbcfl; 00143 int nion; 00144 int setnion; 00145 double ionq[MAXION]; 00146 double ionc[MAXION]; 00147 double ionr[MAXION]; 00148 int setion[MAXION]; 00149 double pdie; 00150 int setpdie; 00151 double sdens; 00152 int setsdens; 00153 double sdie; 00154 int setsdie; 00155 Vsurf_Meth srfm; 00156 int setsrfm; 00157 double srad; 00158 int setsrad; 00159 double swin; 00160 int setswin; 00161 double temp; 00162 int settemp; 00164 double smsize; 00165 int setsmsize; 00167 double smvolume; 00168 int setsmvolume; 00170 PBEparm_calcEnergy calcenergy; 00171 int setcalcenergy; 00172 PBEparm_calcForce calcforce; 00173 int setcalcforce; 00174 int numwrite; 00175 char writestem[PBEPARM_MAXWRITE][VMAX_ARGLEN]; 00177 Vdata_Type writetype[PBEPARM_MAXWRITE]; 00178 Vdata_Format writefmt[PBEPARM_MAXWRITE]; 00180 int writemat; 00183 int setwritemat; 00184 char writematstem[VMAX_ARGLEN]; 00185 int writematflag; 00190 int parsed; 00192 }; 00193 00198 typedef struct sPBEparm PBEparm; 00199 00200 /* /////////////////////////////////////////////////////////////////////////// 00201 // Class NOsh: Non-inlineable methods (mcsh.c) 00203 00209 double PBEparm_getIonCharge( 00210 PBEparm *thee, 00211 int iion 00212 ); 00213 00219 double PBEparm_getIonConc( 00220 PBEparm *thee, 00221 int iion 00222 ); 00223 00229 double PBEparm_getIonRadius( 00230 PBEparm *thee, 00231 int iion 00232 ); 00233 00234 00240 PBEparm* PBEparm_ctor(); 00241 00247 int PBEparm_ctor2( 00248 PBEparm *thee 00249 ); 00250 00255 void PBEparm_dtor( 00256 PBEparm **thee 00257 ); 00258 00263 void PBEparm_dtor2( 00264 PBEparm *thee 00265 ); 00266 00272 int PBEparm_check( 00273 PBEparm *thee 00274 ); 00275 00280 void PBEparm_copy( 00281 PBEparm *thee, 00282 PBEparm *parm 00283 ); 00284 00291 int PBEparm_parseToken( 00292 PBEparm *thee, 00293 char tok[VMAX_BUFSIZE], 00294 Vio *sock 00295 ); 00296 00297 00298 #endif 00299 00300