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

routines.h

Go to the documentation of this file.
00001 
00059 #ifndef _APBSROUTINES_H_
00060 #define _APBSROUTINES_H_
00061 
00062 #include "apbscfg.h"
00063 #include "apbs/apbs.h"  
00064 #include "apbs/nosh.h"  
00065 #include "apbs/mgparm.h"  
00066 #include "apbs/pbeparm.h"  
00067 #include "apbs/femparm.h"  
00068 #include "apbs/vparam.h"  
00069 
00070 
00074 #define APBSRC 13
00075 
00080 struct AtomForce {
00081    double ibForce[3];  
00082    double qfForce[3];  
00083    double dbForce[3];  
00084    double sasaForce[3];  
00085    double savForce[3];  
00086    double wcaForce[3];  
00087 };
00088 
00092 typedef struct AtomForce AtomForce;
00093 
00099 Vparam* loadParameter(
00100                                                            NOsh *nosh  
00102                                                            );
00103 
00109 int loadMolecules(
00110                                                    NOsh *nosh, 
00111                                                    Vparam *param,  
00113                                                    Valist *alist[NOSH_MAXMOL]  
00115                                                    );
00116 
00123 void killMolecules(NOsh *nosh, Valist *alist[NOSH_MAXMOL]);
00124 
00134 int loadDielMaps(NOsh *nosh, Vgrid *dielXMap[NOSH_MAXMOL],
00135   Vgrid *dielYMap[NOSH_MAXMOL], Vgrid *dielZMap[NOSH_MAXMOL]);
00136 
00145 void killDielMaps(NOsh *nosh, Vgrid *dielXMap[NOSH_MAXMOL],
00146   Vgrid *dielYMap[NOSH_MAXMOL], Vgrid *dielZMap[NOSH_MAXMOL]);
00147 
00155 int loadKappaMaps(NOsh *nosh, Vgrid *kappa[NOSH_MAXMOL]);
00156 
00163 void killKappaMaps(NOsh *nosh, Vgrid *kappa[NOSH_MAXMOL]);
00164 
00172 int loadChargeMaps(NOsh *nosh, Vgrid *charge[NOSH_MAXMOL]);
00173 
00180 void killChargeMaps(NOsh *nosh, Vgrid *charge[NOSH_MAXMOL]);
00181 
00187 void printPBEPARM(PBEparm *pbeparm);
00188 
00195 void printMGPARM(MGparm *mgparm, double realCenter[3]);
00196 
00202 int initMG(
00203                                         int icalc,  
00204                                         NOsh *nosh,  
00205                                         MGparm *mgparm,  
00206                                         PBEparm *pbeparm,  
00207                                         double realCenter[3],  
00208                                         Vpbe *pbe[NOSH_MAXCALC],  
00209                                         Valist *alist[NOSH_MAXMOL],  
00210                                         Vgrid *dielXMap[NOSH_MAXMOL],  
00211                                         Vgrid *dielYMap[NOSH_MAXMOL],  
00212                                         Vgrid *dielZMap[NOSH_MAXMOL],  
00213                                         Vgrid *kappaMap[NOSH_MAXMOL],  
00214                                         Vgrid *chargeMap[NOSH_MAXMOL],  
00215                                         Vpmgp *pmgp[NOSH_MAXCALC],  
00216                                         Vpmg *pmg[NOSH_MAXCALC]  
00217                                         );
00218 
00224 void killMG(
00225                                          NOsh *nosh,  
00226                                          Vpbe *pbe[NOSH_MAXCALC],  
00227                                          Vpmgp *pmgp[NOSH_MAXCALC],  
00228                                          Vpmg *pmg[NOSH_MAXCALC]  
00229 );
00230 
00239 int solveMG(NOsh *nosh, Vpmg *pmg, MGparm_CalcType type);
00240 
00249 int setPartMG(NOsh *nosh, MGparm *mgparm, Vpmg *pmg);
00250 
00264 int energyMG(NOsh* nosh, int icalc, Vpmg *pmg,
00265   int *nenergy, double *totEnergy, double *qfEnergy, double *qmEnergy,
00266   double *dielEnergy);
00267 
00272 void killEnergy();
00273 
00287 int forceMG(Vmem *mem, NOsh *nosh, PBEparm *pbeparm,  MGparm *mgparm,
00288   Vpmg *pmg, int *nforce, AtomForce **atomForce, Valist *alist[NOSH_MAXMOL]);
00289 
00298 void killForce(Vmem *mem, NOsh *nosh, int nforce[NOSH_MAXCALC],
00299   AtomForce *atomForce[NOSH_MAXCALC]);
00300 
00305 void storeAtomEnergy(
00306                 Vpmg *pmg, 
00307                 int icalc, 
00308                 double **atomEnergy, 
00309                 int *nenergy 
00310                 );
00311 
00328 int writedataFlat(NOsh *nosh, Vcom *com, const char *fname, 
00329   double totEnergy[NOSH_MAXCALC], double qfEnergy[NOSH_MAXCALC], 
00330   double qmEnergy[NOSH_MAXCALC], double dielEnergy[NOSH_MAXCALC],
00331   int nenergy[NOSH_MAXCALC], double *atomEnergy[NOSH_MAXCALC],
00332   int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC]);
00333 
00350 int writedataXML(NOsh *nosh, Vcom *com, const char *fname, 
00351   double totEnergy[NOSH_MAXCALC], double qfEnergy[NOSH_MAXCALC], 
00352   double qmEnergy[NOSH_MAXCALC], double dielEnergy[NOSH_MAXCALC],
00353   int nenergy[NOSH_MAXCALC], double *atomEnergy[NOSH_MAXCALC],
00354   int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC]);
00355 
00365 int writedataMG(int rank, NOsh *nosh, PBEparm *pbeparm, Vpmg *pmg);
00366 
00376 int writematMG(int rank, NOsh *nosh, PBEparm *pbeparm, Vpmg *pmg);
00377 
00387 double returnEnergy(Vcom *com, NOsh *nosh, double totEnergy[NOSH_MAXCALC], int iprint);
00388 
00394 int printEnergy(
00395                                                  Vcom *com, 
00396                                                  NOsh *nosh, 
00397                                                  double totEnergy[NOSH_MAXCALC], 
00399                                                  int iprint 
00400                                                  );
00401 
00407 int printElecEnergy(
00408                                                  Vcom *com, 
00409                                                  NOsh *nosh, 
00410                                                  double totEnergy[NOSH_MAXCALC], 
00412                                                  int iprint 
00413                                                  );
00414 
00420 int printApolEnergy(
00421                                                  NOsh *nosh,  
00422                                                  int iprint  
00423                                                  );
00424 
00430 int printForce(
00431                                                 Vcom *com, 
00432                                                 NOsh *nosh, 
00433                                                 int nforce[NOSH_MAXCALC], 
00434                                                 AtomForce *atomForce[NOSH_MAXCALC], 
00435                                                 int i 
00436                                                 );
00437 
00443 int printElecForce(
00444                                                         Vcom *com, 
00445                                                         NOsh *nosh, 
00446                                                         int nforce[NOSH_MAXCALC], 
00447                                                         AtomForce *atomForce[NOSH_MAXCALC], 
00448                                                         int i 
00449                                                         );
00450 
00456 int printApolForce(
00457                                                         Vcom *com, 
00458                                                         NOsh *nosh, 
00459                                                         int nforce[NOSH_MAXCALC], 
00460                                                         AtomForce *atomForce[NOSH_MAXCALC], 
00461                                                         int i 
00462                                                         );
00463 
00468 void startVio();
00469 
00470 #ifdef HAVE_MC_H
00471 #include "apbs/vfetk.h"
00472 
00481 void printFEPARM(int icalc, NOsh *nosh, FEMparm *feparm,
00482   Vfetk *fetk[NOSH_MAXCALC]);
00483 
00498 int energyFE(NOsh* nosh, int icalc, Vfetk *fetk[NOSH_MAXCALC],
00499   int *nenergy, double *totEnergy, double *qfEnergy, double *qmEnergy,
00500   double *dielEnergy);
00501 
00509 Vrc_Codes initFE(
00510                                         int icalc, 
00512                                         NOsh *nosh,  
00513                                         FEMparm *feparm,  
00514                                         PBEparm *pbeparm,  
00515                                         Vpbe *pbe[NOSH_MAXCALC],  
00516                                         Valist *alist[NOSH_MAXMOL],  
00517                                         Vfetk *fetk[NOSH_MAXCALC],  
00518                                         Gem *gm[NOSH_MAXCALC]  
00519 );
00520 
00526 void killFE(
00527                                          NOsh *nosh,  
00528                                          Vpbe *pbe[NOSH_MAXCALC],  
00529                                          Vfetk *fetk[NOSH_MAXCALC],  
00530                                          Gem *gem[NOSH_MAXMOL]  
00531 );
00532 
00542 int preRefineFE(int i, NOsh *nosh, FEMparm *feparm,
00543   Vfetk *fetk[NOSH_MAXCALC]);
00544 
00554 int partFE(int i, NOsh *nosh, FEMparm *feparm,
00555   Vfetk *fetk[NOSH_MAXCALC]);
00556 
00567 int solveFE(int i, NOsh *nosh, PBEparm *pbeparm, FEMparm *feparm,
00568   Vfetk *fetk[NOSH_MAXCALC]);
00569 
00582 int postRefineFE(int icalc, NOsh *nosh, FEMparm *feparm,
00583   Vfetk *fetk[NOSH_MAXCALC]);
00584 
00594 int writedataFE(int rank, NOsh *nosh, PBEparm *pbeparm, Vfetk *fetk);
00595 
00601 int energyAPOL(
00602                                                 APOLparm *apolparm, 
00603                                                 double sasa, 
00604                                                 double sav, 
00605                                                 double atomsasa[], 
00606                                                 double atomwcaEnergy[], 
00607                                                 int numatoms 
00608                                                 );
00609 
00615 int forceAPOL(
00616                                            Vacc *acc,  
00617                                            Vmem *mem,  
00618                                            APOLparm *apolparm,  
00620                                            int *nforce,  
00622                                            AtomForce **atomForce,  
00624                                            Valist *alist,  
00625                                            Vclist *clist  
00626                                            );
00627 
00633 int initAPOL(
00634                                           NOsh *nosh,  
00635                                           Vmem *mem,  
00636                                           Vparam *param,  
00637                                           APOLparm *apolparm,  
00638                                           int *nforce,  
00639                                           AtomForce **atomForce,  
00640                                           Valist *alist  
00641                                           );
00642 
00648 Vrc_Codes loadMeshes(
00649                                                         NOsh *nosh, 
00650                                                         Gem *gm[NOSH_MAXMOL]  
00652                                                    );
00653                                                 
00658 void killMeshes(
00659                                                         NOsh *nosh, 
00660                                                         Gem *alist[NOSH_MAXMOL]  
00661                                                         );
00662 #endif
00663 
00664 #endif
00665 

Generated on Tue Apr 15 13:53:14 2008 for APBS by doxygen 1.3.4