Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

routines.h

Go to the documentation of this file.
00001 
00048 #ifndef _APBSROUTINES_H_
00049 #define _APBSROUTINES_H_
00050 
00051 #include "apbscfg.h"
00052 #include "apbs/apbs.h"  
00053 #include "apbs/nosh.h"  
00054 #include "apbs/mgparm.h"  
00055 #include "apbs/pbeparm.h"  
00056 #include "apbs/femparm.h"  
00057 
00061 #define APBSRC 13
00062 
00066 #define USEHB 1
00067 
00072 struct AtomForce {
00073    double ibForce[3];  
00074    double qfForce[3];  
00075    double dbForce[3];  
00076    double npForce[3];  
00077 };
00078 
00082 typedef struct AtomForce AtomForce;
00083 
00091 int loadMolecules(NOsh *nosh, Valist *alist[NOSH_MAXMOL]);
00092 
00099 void killMolecules(NOsh *nosh, Valist *alist[NOSH_MAXMOL]);
00100 
00110 int loadDielMaps(NOsh *nosh, Vgrid *dielXMap[NOSH_MAXMOL],
00111   Vgrid *dielYMap[NOSH_MAXMOL], Vgrid *dielZMap[NOSH_MAXMOL]);
00112 
00121 void killDielMaps(NOsh *nosh, Vgrid *dielXMap[NOSH_MAXMOL],
00122   Vgrid *dielYMap[NOSH_MAXMOL], Vgrid *dielZMap[NOSH_MAXMOL]);
00123 
00131 int loadKappaMaps(NOsh *nosh, Vgrid *kappa[NOSH_MAXMOL]);
00132 
00139 void killKappaMaps(NOsh *nosh, Vgrid *kappa[NOSH_MAXMOL]);
00140 
00148 int loadChargeMaps(NOsh *nosh, Vgrid *charge[NOSH_MAXMOL]);
00149 
00156 void killChargeMaps(NOsh *nosh, Vgrid *charge[NOSH_MAXMOL]);
00157 
00163 void printPBEPARM(PBEparm *pbeparm);
00164 
00171 void printMGPARM(MGparm *mgparm, double realCenter[3]);
00172 
00192 int initMG(int icalc, NOsh *nosh, MGparm *mgparm,
00193   PBEparm *pbeparm, double realCenter[3], Vpbe *pbe[NOSH_MAXCALC],
00194   Valist *alist[NOSH_MAXMOL], Vgrid *dielXMap[NOSH_MAXMOL], 
00195   Vgrid *dielYMap[NOSH_MAXMOL], Vgrid *dielZMap[NOSH_MAXMOL], 
00196   Vgrid *kappaMap[NOSH_MAXMOL], Vgrid *chargeMap[NOSH_MAXMOL], 
00197   Vpmgp *pmgp[NOSH_MAXCALC], Vpmg *pmg[NOSH_MAXCALC]);
00198 
00207 void killMG(NOsh *nosh, Vpbe *pbe[NOSH_MAXCALC],
00208   Vpmgp *pmgp[NOSH_MAXCALC], Vpmg *pmg[NOSH_MAXCALC]);
00209 
00218 int solveMG(NOsh *nosh, Vpmg *pmg, MGparm_CalcType type);
00219 
00228 int setPartMG(NOsh *nosh, MGparm *mgparm, Vpmg *pmg);
00229 
00243 int energyMG(NOsh* nosh, int icalc, Vpmg *pmg,
00244   int *nenergy, double *totEnergy, double *qfEnergy, double *qmEnergy,
00245   double *dielEnergy);
00246 
00257 int npenergyMG(NOsh* nosh, int icalc, Vpmg *pmg, int *nenergy, 
00258   double *npEnergy);
00259 
00264 void killEnergy();
00265 
00279 int forceMG(Vmem *mem, NOsh *nosh, PBEparm *pbeparm,  MGparm *mgparm,
00280   Vpmg *pmg, int *nforce, AtomForce **atomForce, Valist *alist[NOSH_MAXMOL]);
00281 
00290 void killForce(Vmem *mem, NOsh *nosh, int nforce[NOSH_MAXCALC],
00291   AtomForce *atomForce[NOSH_MAXCALC]);
00292 
00302 int writedataMG(int rank, NOsh *nosh, PBEparm *pbeparm, Vpmg *pmg);
00303 
00313 int writematMG(int rank, NOsh *nosh, PBEparm *pbeparm, Vpmg *pmg);
00314 
00324 int printEnergy(Vcom *com, NOsh *nosh, double totEnergy[NOSH_MAXCALC],
00325   int i);
00326 
00337 int printForce(Vcom *com, NOsh *nosh, int nforce[NOSH_MAXCALC],
00338   AtomForce *atomForce[NOSH_MAXCALC], int i);
00339 
00344 void startVio();
00345 
00346 #ifdef HAVE_MC_H
00347 
00355 void printFEPARM(int icalc, NOsh *nosh, FEMparm *feparm,
00356   Vfetk *fetk[NOSH_MAXCALC]);
00357 
00372 int energyFE(NOsh* nosh, int icalc, Vfetk *fetk[NOSH_MAXCALC],
00373   int *nenergy, double *totEnergy, double *qfEnergy, double *qmEnergy,
00374   double *dielEnergy);
00375 
00390 int initFE(int icalc, NOsh *nosh, FEMparm *feparm, PBEparm *pbeparm,
00391   Vpbe *pbe[NOSH_MAXCALC], Valist *alist[NOSH_MAXMOL], 
00392   Vfetk *fetk[NOSH_MAXCALC]);
00393 
00403 int preRefineFE(int i, NOsh *nosh, FEMparm *feparm,
00404   Vfetk *fetk[NOSH_MAXCALC]);
00405 
00415 int partFE(int i, NOsh *nosh, FEMparm *feparm,
00416   Vfetk *fetk[NOSH_MAXCALC]);
00417 
00428 int solveFE(int i, NOsh *nosh, PBEparm *pbeparm, FEMparm *feparm,
00429   Vfetk *fetk[NOSH_MAXCALC]);
00430 
00443 int postRefineFE(int icalc, NOsh *nosh, FEMparm *feparm,
00444   Vfetk *fetk[NOSH_MAXCALC]);
00445 
00455 int writedataFE(int rank, NOsh *nosh, PBEparm *pbeparm, Vfetk *fetk);
00456 #endif
00457 
00458 #endif
00459 

Generated on Tue Dec 6 10:05:31 2005 for APBS by doxygen 1.3.5