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

routines.h

Go to the documentation of this file.
00001 
00071 #ifndef _APBSROUTINES_H_
00072 #define _APBSROUTINES_H_
00073 
00074 #include "apbscfg.h"
00075 #include "apbs/apbs.h"  
00076 #include "apbs/nosh.h"  
00077 #include "apbs/mgparm.h"  
00078 #include "apbs/pbeparm.h"  
00079 #include "apbs/femparm.h"  
00080 #include "apbs/vparam.h"  
00081 
00082 
00086 #define APBSRC 13
00087 
00092 struct AtomForce {
00093    double ibForce[3];  
00094    double qfForce[3];  
00095    double dbForce[3];  
00096    double sasaForce[3];  
00097    double savForce[3];  
00098    double wcaForce[3];  
00099 };
00100 
00104 typedef struct AtomForce AtomForce;
00105 
00111 Vparam* loadParameter(
00112                                                            NOsh *nosh  
00114                                                            );
00115 
00121 int loadMolecules(
00122                                                    NOsh *nosh, 
00123                                                    Vparam *param,  
00125                                                    Valist *alist[NOSH_MAXMOL]  
00127                                                    );
00128 
00135 void killMolecules(NOsh *nosh, Valist *alist[NOSH_MAXMOL]);
00136 
00146 int loadDielMaps(NOsh *nosh, Vgrid *dielXMap[NOSH_MAXMOL],
00147   Vgrid *dielYMap[NOSH_MAXMOL], Vgrid *dielZMap[NOSH_MAXMOL]);
00148 
00157 void killDielMaps(NOsh *nosh, Vgrid *dielXMap[NOSH_MAXMOL],
00158   Vgrid *dielYMap[NOSH_MAXMOL], Vgrid *dielZMap[NOSH_MAXMOL]);
00159 
00167 int loadKappaMaps(NOsh *nosh, Vgrid *kappa[NOSH_MAXMOL]);
00168 
00175 void killKappaMaps(NOsh *nosh, Vgrid *kappa[NOSH_MAXMOL]);
00176 
00184 int loadChargeMaps(NOsh *nosh, Vgrid *charge[NOSH_MAXMOL]);
00185 
00192 void killChargeMaps(NOsh *nosh, Vgrid *charge[NOSH_MAXMOL]);
00193 
00199 void printPBEPARM(PBEparm *pbeparm);
00200 
00207 void printMGPARM(MGparm *mgparm, double realCenter[3]);
00208 
00214 int initMG(
00215                                         int icalc,  
00216                                         NOsh *nosh,  
00217                                         MGparm *mgparm,  
00218                                         PBEparm *pbeparm,  
00219                                         double realCenter[3],  
00220                                         Vpbe *pbe[NOSH_MAXCALC],  
00221                                         Valist *alist[NOSH_MAXMOL],  
00222                                         Vgrid *dielXMap[NOSH_MAXMOL],  
00223                                         Vgrid *dielYMap[NOSH_MAXMOL],  
00224                                         Vgrid *dielZMap[NOSH_MAXMOL],  
00225                                         Vgrid *kappaMap[NOSH_MAXMOL],  
00226                                         Vgrid *chargeMap[NOSH_MAXMOL],  
00227                                         Vpmgp *pmgp[NOSH_MAXCALC],  
00228                                         Vpmg *pmg[NOSH_MAXCALC]  
00229                                         );
00230 
00239 void killMG(NOsh *nosh, Vpbe *pbe[NOSH_MAXCALC],
00240   Vpmgp *pmgp[NOSH_MAXCALC], Vpmg *pmg[NOSH_MAXCALC]);
00241 
00250 int solveMG(NOsh *nosh, Vpmg *pmg, MGparm_CalcType type);
00251 
00260 int setPartMG(NOsh *nosh, MGparm *mgparm, Vpmg *pmg);
00261 
00275 int energyMG(NOsh* nosh, int icalc, Vpmg *pmg,
00276   int *nenergy, double *totEnergy, double *qfEnergy, double *qmEnergy,
00277   double *dielEnergy);
00278 
00283 void killEnergy();
00284 
00298 int forceMG(Vmem *mem, NOsh *nosh, PBEparm *pbeparm,  MGparm *mgparm,
00299   Vpmg *pmg, int *nforce, AtomForce **atomForce, Valist *alist[NOSH_MAXMOL]);
00300 
00309 void killForce(Vmem *mem, NOsh *nosh, int nforce[NOSH_MAXCALC],
00310   AtomForce *atomForce[NOSH_MAXCALC]);
00311 
00316 void storeAtomEnergy(
00317                 Vpmg *pmg, 
00318                 int icalc, 
00319                 double **atomEnergy, 
00320                 int *nenergy 
00321                 );
00322 
00339 int writedataFlat(NOsh *nosh, Vcom *com, const char *fname, 
00340   double totEnergy[NOSH_MAXCALC], double qfEnergy[NOSH_MAXCALC], 
00341   double qmEnergy[NOSH_MAXCALC], double dielEnergy[NOSH_MAXCALC],
00342   int nenergy[NOSH_MAXCALC], double *atomEnergy[NOSH_MAXCALC],
00343   int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC]);
00344 
00361 int writedataXML(NOsh *nosh, Vcom *com, const char *fname, 
00362   double totEnergy[NOSH_MAXCALC], double qfEnergy[NOSH_MAXCALC], 
00363   double qmEnergy[NOSH_MAXCALC], double dielEnergy[NOSH_MAXCALC],
00364   int nenergy[NOSH_MAXCALC], double *atomEnergy[NOSH_MAXCALC],
00365   int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC]);
00366 
00376 int writedataMG(int rank, NOsh *nosh, PBEparm *pbeparm, Vpmg *pmg);
00377 
00387 int writematMG(int rank, NOsh *nosh, PBEparm *pbeparm, Vpmg *pmg);
00388 
00398 double returnEnergy(Vcom *com, NOsh *nosh, double totEnergy[NOSH_MAXCALC], int iprint);
00399 
00405 int printEnergy(
00406                                                  Vcom *com, 
00407                                                  NOsh *nosh, 
00408                                                  double totEnergy[NOSH_MAXCALC], 
00410                                                  int iprint 
00411                                                  );
00412 
00418 int printElecEnergy(
00419                                                  Vcom *com, 
00420                                                  NOsh *nosh, 
00421                                                  double totEnergy[NOSH_MAXCALC], 
00423                                                  int iprint 
00424                                                  );
00425 
00431 int printApolEnergy(
00432                                                  NOsh *nosh,  
00433                                                  int iprint  
00434                                                  );
00435 
00441 int printForce(
00442                                                 Vcom *com, 
00443                                                 NOsh *nosh, 
00444                                                 int nforce[NOSH_MAXCALC], 
00445                                                 AtomForce *atomForce[NOSH_MAXCALC], 
00446                                                 int i 
00447                                                 );
00448 
00454 int printElecForce(
00455                                                         Vcom *com, 
00456                                                         NOsh *nosh, 
00457                                                         int nforce[NOSH_MAXCALC], 
00458                                                         AtomForce *atomForce[NOSH_MAXCALC], 
00459                                                         int i 
00460                                                         );
00461 
00467 int printApolForce(
00468                                                         Vcom *com, 
00469                                                         NOsh *nosh, 
00470                                                         int nforce[NOSH_MAXCALC], 
00471                                                         AtomForce *atomForce[NOSH_MAXCALC], 
00472                                                         int i 
00473                                                         );
00474 
00479 void startVio();
00480 
00481 #ifdef HAVE_MC_H
00482 
00490 void printFEPARM(int icalc, NOsh *nosh, FEMparm *feparm,
00491   Vfetk *fetk[NOSH_MAXCALC]);
00492 
00507 int energyFE(NOsh* nosh, int icalc, Vfetk *fetk[NOSH_MAXCALC],
00508   int *nenergy, double *totEnergy, double *qfEnergy, double *qmEnergy,
00509   double *dielEnergy);
00510 
00525 int initFE(int icalc, NOsh *nosh, FEMparm *feparm, PBEparm *pbeparm,
00526   Vpbe *pbe[NOSH_MAXCALC], Valist *alist[NOSH_MAXMOL], 
00527   Vfetk *fetk[NOSH_MAXCALC]);
00528 
00538 int preRefineFE(int i, NOsh *nosh, FEMparm *feparm,
00539   Vfetk *fetk[NOSH_MAXCALC]);
00540 
00550 int partFE(int i, NOsh *nosh, FEMparm *feparm,
00551   Vfetk *fetk[NOSH_MAXCALC]);
00552 
00563 int solveFE(int i, NOsh *nosh, PBEparm *pbeparm, FEMparm *feparm,
00564   Vfetk *fetk[NOSH_MAXCALC]);
00565 
00578 int postRefineFE(int icalc, NOsh *nosh, FEMparm *feparm,
00579   Vfetk *fetk[NOSH_MAXCALC]);
00580 
00590 int writedataFE(int rank, NOsh *nosh, PBEparm *pbeparm, Vfetk *fetk);
00591 
00597 int energyAPOL(
00598                                                 APOLparm *apolparm, 
00599                                                 double sasa, 
00600                                                 double sav 
00601                                                 );
00602 
00608 int forceAPOL(
00609                                            Vacc *acc,  
00610                                            Vmem *mem,  
00611                                            APOLparm *apolparm,  
00613                                            int *nforce,  
00615                                            AtomForce **atomForce,  
00617                                            Valist *alist,  
00618                                            Vclist *clist  
00619                                            );
00620 
00626 int initAPOL(
00627                                           NOsh *nosh,  
00628                                           Vmem *mem,  
00629                                           Vparam *param,  
00630                                           APOLparm *apolparm,  
00631                                           int *nforce,  
00632                                           AtomForce **atomForce,  
00633                                           Valist *alist  
00634                                           );
00635 
00636 #endif
00637 
00638 #endif
00639 

Generated on Thu Jul 12 11:49:46 2007 for APBS by doxygen 1.3.4