00001
00060 #ifndef _NOSH_H_
00061 #define _NOSH_H_
00062
00063
00064 #include "maloc/maloc.h"
00065 #include "apbs/vhal.h"
00066
00067
00068 #include "apbs/pbeparm.h"
00069 #include "apbs/mgparm.h"
00070 #include "apbs/femparm.h"
00071 #include "apbs/apolparm.h"
00072 #include "apbs/valist.h"
00073
00076 #define NOSH_MAXMOL 20
00077
00080 #define NOSH_MAXCALC 20
00081
00084 #define NOSH_MAXPRINT 20
00085
00088 #define NOSH_MAXPOP 20
00089
00094 enum eNOsh_MolFormat {
00095 NMF_PQR=0,
00096 NMF_PDB=1,
00097 NMF_XML=2
00098 };
00099
00104 typedef enum eNOsh_MolFormat NOsh_MolFormat;
00105
00110 enum eNOsh_CalcType {
00111 NCT_MG=0,
00112 NCT_FEM=1,
00113 NCT_APOL=2
00114 };
00115
00120 typedef enum eNOsh_CalcType NOsh_CalcType;
00121
00126 enum eNOsh_ParmFormat {
00127 NPF_FLAT=0,
00128 NPF_XML=1
00129 };
00130
00135 typedef enum eNOsh_ParmFormat NOsh_ParmFormat;
00136
00141 enum eNOsh_PrintType {
00142 NPT_ENERGY=0,
00143 NPT_FORCE=1,
00144 NPT_ELECENERGY,
00145 NPT_ELECFORCE,
00146 NPT_APOLENERGY,
00147 NPT_APOLFORCE
00148 };
00149
00154 typedef enum eNOsh_PrintType NOsh_PrintType;
00155
00161 struct sNOsh_calc {
00162 MGparm *mgparm;
00163 FEMparm *femparm;
00164 PBEparm *pbeparm;
00165 APOLparm *apolparm;
00166 NOsh_CalcType calctype;
00167 };
00168
00173 typedef struct sNOsh_calc NOsh_calc;
00174
00180 struct sNOsh {
00181
00182 NOsh_calc *calc[NOSH_MAXCALC];
00185 int ncalc;
00187 NOsh_calc *elec[NOSH_MAXCALC];
00190 int nelec;
00193 NOsh_calc *apol[NOSH_MAXCALC];
00196 int napol;
00199 int ispara;
00200 int proc_rank;
00201 int proc_size;
00202 int bogus;
00206 int elec2calc[NOSH_MAXCALC];
00214 int apol2calc[NOSH_MAXCALC];
00216 int nmol;
00217 char molpath[NOSH_MAXMOL][VMAX_ARGLEN];
00218 NOsh_MolFormat molfmt[NOSH_MAXMOL];
00219 Valist *alist[NOSH_MAXMOL];
00221 int gotparm;
00222 char parmpath[VMAX_ARGLEN];
00223 NOsh_ParmFormat parmfmt;
00224 int ndiel;
00225 char dielXpath[NOSH_MAXMOL][VMAX_ARGLEN];
00227 char dielYpath[NOSH_MAXMOL][VMAX_ARGLEN];
00229 char dielZpath[NOSH_MAXMOL][VMAX_ARGLEN];
00231 Vdata_Format dielfmt[NOSH_MAXMOL];
00232 int nkappa;
00233 char kappapath[NOSH_MAXMOL][VMAX_ARGLEN];
00234 Vdata_Format kappafmt[NOSH_MAXMOL];
00235 int ncharge;
00236 char chargepath[NOSH_MAXMOL][VMAX_ARGLEN];
00237 Vdata_Format chargefmt[NOSH_MAXMOL];
00238 int nmesh;
00239 char meshpath[NOSH_MAXMOL][VMAX_ARGLEN];
00240 Vdata_Format meshfmt[NOSH_MAXMOL];
00241 int nprint;
00242 NOsh_PrintType printwhat[NOSH_MAXPRINT];
00244 int printnarg[NOSH_MAXPRINT];
00245 int printcalc[NOSH_MAXPRINT][NOSH_MAXPOP];
00246 int printop[NOSH_MAXPRINT][NOSH_MAXPOP];
00248 int parsed;
00249 char elecname[NOSH_MAXCALC][VMAX_ARGLEN];
00251 char apolname[NOSH_MAXCALC][VMAX_ARGLEN];
00253 };
00254
00259 typedef struct sNOsh NOsh;
00260
00261
00262
00264
00272
00273
00281
00282
00290
00291
00299
00300
00308
00309
00317
00318
00326
00327
00335
00336
00344
00345
00353
00354
00355
00356
00357
00358
00359
00360
00361
00362
00363
00364
00365
00366
00367
00368
00369
00370
00371
00372
00374
00382
00383
00393
00394
00402
00403
00411
00412
00420
00421
00430
00431
00442
00443
00453
00454
00461
00462
00463
00464
00471
00472
00473
00474
00475
00481
00482
00493
00494
00500
00501
00507
00508
00517
00518
00528
00529
00539
00540
00541
00542
00543
00553
00554
00555
00556
00557
00558
00559
00560