Go to the documentation of this file.00001
00054 #ifndef _NOSH_H_
00055 #define _NOSH_H_
00056
00057
00058 #include "maloc/maloc.h"
00059 #include "apbs/vhal.h"
00060
00061
00062 #include "apbs/pbeparm.h"
00063 #include "apbs/mgparm.h"
00064 #include "apbs/femparm.h"
00065 #include "apbs/apolparm.h"
00066 #include "apbs/valist.h"
00067
00070 #define NOSH_MAXMOL 20
00071
00074 #define NOSH_MAXCALC 20
00075
00078 #define NOSH_MAXPRINT 20
00079
00082 #define NOSH_MAXPOP 20
00083
00088 enum eNOsh_MolFormat {
00089 NMF_PQR=0,
00090 NMF_PDB=1,
00091 NMF_XML=2
00092 };
00093
00098 typedef enum eNOsh_MolFormat NOsh_MolFormat;
00099
00104 enum eNOsh_CalcType {
00105 NCT_MG=0,
00106 NCT_FEM=1,
00107 NCT_APOL=2
00108 };
00109
00114 typedef enum eNOsh_CalcType NOsh_CalcType;
00115
00120 enum eNOsh_ParmFormat {
00121 NPF_FLAT=0,
00122 NPF_XML=1
00123 };
00124
00129 typedef enum eNOsh_ParmFormat NOsh_ParmFormat;
00130
00135 enum eNOsh_PrintType {
00136 NPT_ENERGY=0,
00137 NPT_FORCE=1,
00138 NPT_ELECENERGY,
00139 NPT_ELECFORCE,
00140 NPT_APOLENERGY,
00141 NPT_APOLFORCE
00142 };
00143
00148 typedef enum eNOsh_PrintType NOsh_PrintType;
00149
00155 struct sNOsh_calc {
00156 MGparm *mgparm;
00157 FEMparm *femparm;
00158 PBEparm *pbeparm;
00159 APOLparm *apolparm;
00160 NOsh_CalcType calctype;
00161 };
00162
00167 typedef struct sNOsh_calc NOsh_calc;
00168
00174 struct sNOsh {
00175
00176 NOsh_calc *calc[NOSH_MAXCALC];
00179 int ncalc;
00181 NOsh_calc *elec[NOSH_MAXCALC];
00184 int nelec;
00187 NOsh_calc *apol[NOSH_MAXCALC];
00190 int napol;
00193 int ispara;
00194 int proc_rank;
00195 int proc_size;
00196 int bogus;
00200 int elec2calc[NOSH_MAXCALC];
00208 int apol2calc[NOSH_MAXCALC];
00210 int nmol;
00211 char molpath[NOSH_MAXMOL][VMAX_ARGLEN];
00212 NOsh_MolFormat molfmt[NOSH_MAXMOL];
00213 Valist *alist[NOSH_MAXMOL];
00215 int gotparm;
00216 char parmpath[VMAX_ARGLEN];
00217 NOsh_ParmFormat parmfmt;
00218 int ndiel;
00219 char dielXpath[NOSH_MAXMOL][VMAX_ARGLEN];
00221 char dielYpath[NOSH_MAXMOL][VMAX_ARGLEN];
00223 char dielZpath[NOSH_MAXMOL][VMAX_ARGLEN];
00225 Vdata_Format dielfmt[NOSH_MAXMOL];
00226 int nkappa;
00227 char kappapath[NOSH_MAXMOL][VMAX_ARGLEN];
00228 Vdata_Format kappafmt[NOSH_MAXMOL];
00229 int npot;
00230 char potpath[NOSH_MAXMOL][VMAX_ARGLEN];
00231 Vdata_Format potfmt[NOSH_MAXMOL];
00232 int ncharge;
00233 char chargepath[NOSH_MAXMOL][VMAX_ARGLEN];
00234 Vdata_Format chargefmt[NOSH_MAXMOL];
00235 int nmesh;
00236 char meshpath[NOSH_MAXMOL][VMAX_ARGLEN];
00237 Vdata_Format meshfmt[NOSH_MAXMOL];
00238 int nprint;
00239 NOsh_PrintType printwhat[NOSH_MAXPRINT];
00241 int printnarg[NOSH_MAXPRINT];
00242 int printcalc[NOSH_MAXPRINT][NOSH_MAXPOP];
00243 int printop[NOSH_MAXPRINT][NOSH_MAXPOP];
00245 int parsed;
00246 char elecname[NOSH_MAXCALC][VMAX_ARGLEN];
00248 char apolname[NOSH_MAXCALC][VMAX_ARGLEN];
00250 };
00251
00256 typedef struct sNOsh NOsh;
00257
00258
00259
00261
00269
00270
00278
00279
00287
00288
00296
00297
00305
00306
00314
00315
00323
00324
00332
00333
00341
00342
00350
00351
00359
00360
00368
00369
00370
00371
00372
00373
00374
00375
00376
00377
00378
00379
00380
00381
00382
00383
00384
00385
00386
00387
00388
00389
00391
00399
00400
00410
00411
00419
00420
00428
00429
00437
00438
00447
00448
00459
00460
00470
00471
00478
00479
00480
00481
00488
00489
00490
00491
00492
00498
00499
00510
00511
00517
00518
00524
00525
00534
00535
00545
00546
00556
00557
00558
00559
00560
00570
00571
00572
00573
00574
00575
00576