00001 00060 #ifndef _PBEPARM_H_ 00061 #define _PBEPARM_H_ 00062 00063 /* Generic headers */ 00064 #include "maloc/maloc.h" 00065 00066 /* Headers specific to this file */ 00067 #include "apbs/vhal.h" 00068 00072 #define PBEPARM_MAXWRITE 20 00073 00078 enum ePBEparm_calcEnergy { 00079 PCE_NO=0, 00080 PCE_TOTAL=1, 00081 PCE_COMPS=2 00082 }; 00083 00088 typedef enum ePBEparm_calcEnergy PBEparm_calcEnergy; 00089 00094 enum ePBEparm_calcForce { 00095 PCF_NO=0, 00096 PCF_TOTAL=1, 00097 PCF_COMPS=2 00098 }; 00099 00104 typedef enum ePBEparm_calcForce PBEparm_calcForce; 00105 00114 struct sPBEparm { 00115 00116 int molid; 00117 int setmolid; 00118 int useDielMap; 00120 int dielMapID; 00121 int useKappaMap; 00123 int kappaMapID; 00124 int useChargeMap; 00126 int chargeMapID; 00127 Vhal_PBEType pbetype; 00128 int setpbetype; 00129 Vbcfl bcfl; 00130 int setbcfl; 00131 int nion; 00132 int setnion; 00133 double ionq[MAXION]; 00134 double ionc[MAXION]; 00135 double ionr[MAXION]; 00136 int setion[MAXION]; 00137 double pdie; 00138 int setpdie; 00139 double sdens; 00140 int setsdens; 00141 double sdie; 00142 int setsdie; 00143 Vsurf_Meth srfm; 00144 int setsrfm; 00145 double srad; 00146 int setsrad; 00147 double swin; 00148 int setswin; 00149 double temp; 00150 int settemp; 00152 double smsize; 00153 int setsmsize; 00155 double smvolume; 00156 int setsmvolume; 00158 PBEparm_calcEnergy calcenergy; 00159 int setcalcenergy; 00160 PBEparm_calcForce calcforce; 00161 int setcalcforce; 00163 /*----------------------------------------------------------------*/ 00164 /* Added by Michael Grabe */ 00165 /*----------------------------------------------------------------*/ 00166 00167 double zmem; 00168 int setzmem; 00169 double Lmem; 00170 int setLmem; 00171 double mdie; 00172 int setmdie; 00173 double memv; 00174 int setmemv; 00176 /*----------------------------------------------------------------*/ 00177 00178 int numwrite; 00179 char writestem[PBEPARM_MAXWRITE][VMAX_ARGLEN]; 00181 Vdata_Type writetype[PBEPARM_MAXWRITE]; 00182 Vdata_Format writefmt[PBEPARM_MAXWRITE]; 00184 int writemat; 00187 int setwritemat; 00188 char writematstem[VMAX_ARGLEN]; 00189 int writematflag; 00194 int parsed; 00196 }; 00197 00202 typedef struct sPBEparm PBEparm; 00203 00204 /* /////////////////////////////////////////////////////////////////////////// 00205 // Class NOsh: Non-inlineable methods (mcsh.c) 00207 00213 double PBEparm_getIonCharge( 00214 PBEparm *thee, 00215 int iion 00216 ); 00217 00223 double PBEparm_getIonConc( 00224 PBEparm *thee, 00225 int iion 00226 ); 00227 00233 double PBEparm_getIonRadius( 00234 PBEparm *thee, 00235 int iion 00236 ); 00237 00238 00244 PBEparm* PBEparm_ctor(); 00245 00251 int PBEparm_ctor2( 00252 PBEparm *thee 00253 ); 00254 00259 void PBEparm_dtor( 00260 PBEparm **thee 00261 ); 00262 00267 void PBEparm_dtor2( 00268 PBEparm *thee 00269 ); 00270 00276 int PBEparm_check( 00277 PBEparm *thee 00278 ); 00279 00284 void PBEparm_copy( 00285 PBEparm *thee, 00286 PBEparm *parm 00287 ); 00288 00295 int PBEparm_parseToken( 00296 PBEparm *thee, 00297 char tok[VMAX_BUFSIZE], 00298 Vio *sock 00299 ); 00300 00301 00302 #endif 00303 00304