• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

bin/routines.h

Go to the documentation of this file.
00001 
00059 #ifndef _APBSROUTINES_H_
00060 #define _APBSROUTINES_H_
00061 
00062 #include "apbs/apbs.h"  
00063 #include "apbs/nosh.h"  
00064 #include "apbs/mgparm.h"  
00065 #include "apbs/pbeparm.h"  
00066 #include "apbs/femparm.h"  
00067 #include "apbs/vparam.h"  
00068 #include "apbs/vgrid.h"
00069 #include "apbs/vacc.h"
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 VEXTERNC Vparam* loadParameter(
00100                                                                                 NOsh *nosh  
00102                                                                                 );
00103 
00109 VEXTERNC int loadMolecules(
00110                                                                      NOsh *nosh, 
00111                                                                      Vparam *param,  
00113                                                                      Valist *alist[NOSH_MAXMOL]  
00115                                                                      );
00116 
00123 VEXTERNC void killMolecules(NOsh *nosh, Valist *alist[NOSH_MAXMOL]);
00124 
00134 VEXTERNC int loadDielMaps(NOsh *nosh, Vgrid *dielXMap[NOSH_MAXMOL],
00135   Vgrid *dielYMap[NOSH_MAXMOL], Vgrid *dielZMap[NOSH_MAXMOL]);
00136 
00145 VEXTERNC void killDielMaps(NOsh *nosh, Vgrid *dielXMap[NOSH_MAXMOL],
00146   Vgrid *dielYMap[NOSH_MAXMOL], Vgrid *dielZMap[NOSH_MAXMOL]);
00147 
00155 VEXTERNC int loadKappaMaps(NOsh *nosh, Vgrid *kappa[NOSH_MAXMOL]);
00156 
00163 VEXTERNC void killKappaMaps(NOsh *nosh, Vgrid *kappa[NOSH_MAXMOL]);
00164 
00172 VEXTERNC int loadPotMaps(NOsh *nosh, Vgrid *pot[NOSH_MAXMOL]);
00173 
00180 VEXTERNC void killPotMaps(NOsh *nosh, Vgrid *pot[NOSH_MAXMOL]);
00181 
00189 VEXTERNC int loadChargeMaps(NOsh *nosh, Vgrid *charge[NOSH_MAXMOL]);
00190 
00197 VEXTERNC void killChargeMaps(NOsh *nosh, Vgrid *charge[NOSH_MAXMOL]);
00198 
00204 VEXTERNC void printPBEPARM(PBEparm *pbeparm);
00205 
00212 VEXTERNC void printMGPARM(MGparm *mgparm, double realCenter[3]);
00213 
00219 VEXTERNC int initMG(
00220                                                        int icalc,  
00221                                                        NOsh *nosh,  
00222                                                        MGparm *mgparm,  
00223                                                        PBEparm *pbeparm,  
00224                                                        double realCenter[3],  
00225                                                        Vpbe *pbe[NOSH_MAXCALC],  
00226                                                        Valist *alist[NOSH_MAXMOL],  
00227                                                        Vgrid *dielXMap[NOSH_MAXMOL],  
00228                                                        Vgrid *dielYMap[NOSH_MAXMOL],  
00229                                                        Vgrid *dielZMap[NOSH_MAXMOL],  
00230                                                        Vgrid *kappaMap[NOSH_MAXMOL],  
00231                                                        Vgrid *chargeMap[NOSH_MAXMOL],  
00232                                                        Vpmgp *pmgp[NOSH_MAXCALC],  
00233                                                        Vpmg *pmg[NOSH_MAXCALC],  
00234                                                        Vgrid *potMap[NOSH_MAXMOL]  
00235                                                        );
00236 
00242 VEXTERNC void killMG(
00243                                                         NOsh *nosh,  
00244                                                         Vpbe *pbe[NOSH_MAXCALC],  
00245                                                         Vpmgp *pmgp[NOSH_MAXCALC],  
00246                                                         Vpmg *pmg[NOSH_MAXCALC]  
00247 );
00248 
00257 VEXTERNC int solveMG(NOsh *nosh, Vpmg *pmg, MGparm_CalcType type);
00258 
00267 VEXTERNC int setPartMG(NOsh *nosh, MGparm *mgparm, Vpmg *pmg);
00268 
00282 VEXTERNC int energyMG(NOsh* nosh, int icalc, Vpmg *pmg,
00283   int *nenergy, double *totEnergy, double *qfEnergy, double *qmEnergy,
00284   double *dielEnergy);
00285 
00290 VEXTERNC void killEnergy();
00291 
00305 VEXTERNC int forceMG(Vmem *mem, NOsh *nosh, PBEparm *pbeparm,  MGparm *mgparm,
00306   Vpmg *pmg, int *nforce, AtomForce **atomForce, Valist *alist[NOSH_MAXMOL]);
00307 
00316 VEXTERNC void killForce(Vmem *mem, NOsh *nosh, int nforce[NOSH_MAXCALC],
00317   AtomForce *atomForce[NOSH_MAXCALC]);
00318 
00323 VEXTERNC void storeAtomEnergy(
00324                       Vpmg *pmg, 
00325                       int icalc, 
00326                       double **atomEnergy, 
00327                       int *nenergy 
00328                       );
00329 
00346 VEXTERNC int writedataFlat(NOsh *nosh, Vcom *com, const char *fname, 
00347   double totEnergy[NOSH_MAXCALC], double qfEnergy[NOSH_MAXCALC], 
00348   double qmEnergy[NOSH_MAXCALC], double dielEnergy[NOSH_MAXCALC],
00349   int nenergy[NOSH_MAXCALC], double *atomEnergy[NOSH_MAXCALC],
00350   int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC]);
00351 
00368 VEXTERNC int writedataXML(NOsh *nosh, Vcom *com, const char *fname, 
00369   double totEnergy[NOSH_MAXCALC], double qfEnergy[NOSH_MAXCALC], 
00370   double qmEnergy[NOSH_MAXCALC], double dielEnergy[NOSH_MAXCALC],
00371   int nenergy[NOSH_MAXCALC], double *atomEnergy[NOSH_MAXCALC],
00372   int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC]);
00373 
00383 VEXTERNC int writedataMG(int rank, NOsh *nosh, PBEparm *pbeparm, Vpmg *pmg);
00384 
00394 VEXTERNC int writematMG(int rank, NOsh *nosh, PBEparm *pbeparm, Vpmg *pmg);
00395 
00405 VEXTERNC double returnEnergy(Vcom *com, NOsh *nosh, double totEnergy[NOSH_MAXCALC], int iprint);
00406 
00412 VEXTERNC int printEnergy(
00413                                                                    Vcom *com, 
00414                                                                    NOsh *nosh, 
00415                                                                    double totEnergy[NOSH_MAXCALC], 
00417                                                                    int iprint 
00418                                                                    );
00419 
00425 VEXTERNC int printElecEnergy(
00426                                                                    Vcom *com, 
00427                                                                    NOsh *nosh, 
00428                                                                    double totEnergy[NOSH_MAXCALC], 
00430                                                                    int iprint 
00431                                                                    );
00432 
00438 VEXTERNC int printApolEnergy(
00439                                                                    NOsh *nosh,  
00440                                                                    int iprint  
00441                                                                    );
00442 
00448 VEXTERNC int printForce(
00449                                                                   Vcom *com, 
00450                                                                   NOsh *nosh, 
00451                                                                   int nforce[NOSH_MAXCALC], 
00452                                                                   AtomForce *atomForce[NOSH_MAXCALC], 
00453                                                                   int i 
00454                                                                   );
00455 
00461 VEXTERNC int printElecForce(
00462                                                                              Vcom *com, 
00463                                                                              NOsh *nosh, 
00464                                                                              int nforce[NOSH_MAXCALC], 
00465                                                                              AtomForce *atomForce[NOSH_MAXCALC], 
00466                                                                              int i 
00467                                                                              );
00468 
00474 VEXTERNC int printApolForce(
00475                                                                              Vcom *com, 
00476                                                                              NOsh *nosh, 
00477                                                                              int nforce[NOSH_MAXCALC], 
00478                                                                              AtomForce *atomForce[NOSH_MAXCALC], 
00479                                                                              int i 
00480                                                                              );
00481 
00486 VEXTERNC void startVio();
00487 
00493 VEXTERNC int energyAPOL(
00494                                                                   APOLparm *apolparm, 
00495                                                                   double sasa, 
00496                                                                   double sav, 
00497                                                                   double atomsasa[], 
00498                                                                   double atomwcaEnergy[], 
00499                                                                   int numatoms 
00500                                                                   );
00501 
00507 VEXTERNC int forceAPOL(
00508                                                           Vacc *acc,  
00509                                                           Vmem *mem,  
00510                                                           APOLparm *apolparm,  
00512                                                           int *nforce,  
00514                                                           AtomForce **atomForce,  
00516                                                           Valist *alist,  
00517                                                           Vclist *clist  
00518                                                           );
00519 
00525 VEXTERNC int initAPOL(
00526                                                          NOsh *nosh,  
00527                                                          Vmem *mem,  
00528                                                          Vparam *param,  
00529                                                          APOLparm *apolparm,  
00530                                                          int *nforce,  
00531                                                          AtomForce **atomForce,  
00532                                                          Valist *alist  
00533                                                          );
00534 
00535 
00536 #ifdef HAVE_MC_H
00537 #include "apbs/vfetk.h"
00538 
00547 VEXTERNC void printFEPARM(int icalc, NOsh *nosh, FEMparm *feparm,
00548   Vfetk *fetk[NOSH_MAXCALC]);
00549 
00564 VEXTERNC int energyFE(NOsh* nosh, int icalc, Vfetk *fetk[NOSH_MAXCALC],
00565   int *nenergy, double *totEnergy, double *qfEnergy, double *qmEnergy,
00566   double *dielEnergy);
00567 
00575 VEXTERNC Vrc_Codes initFE(
00576                                                        int icalc, 
00578                                                        NOsh *nosh,  
00579                                                        FEMparm *feparm,  
00580                                                        PBEparm *pbeparm,  
00581                                                        Vpbe *pbe[NOSH_MAXCALC],  
00582                                                        Valist *alist[NOSH_MAXMOL],  
00583                                                        Vfetk *fetk[NOSH_MAXCALC],  
00584                                                        Gem *gm[NOSH_MAXCALC]  
00585 );
00586 
00592 VEXTERNC void killFE(
00593                                                         NOsh *nosh,  
00594                                                         Vpbe *pbe[NOSH_MAXCALC],  
00595                                                         Vfetk *fetk[NOSH_MAXCALC],  
00596                                                         Gem *gem[NOSH_MAXMOL]  
00597 );
00598 
00608 VEXTERNC int preRefineFE(int i, NOsh *nosh, FEMparm *feparm,
00609   Vfetk *fetk[NOSH_MAXCALC]);
00610 
00620 VEXTERNC int partFE(int i, NOsh *nosh, FEMparm *feparm,
00621   Vfetk *fetk[NOSH_MAXCALC]);
00622 
00633 VEXTERNC int solveFE(int i, NOsh *nosh, PBEparm *pbeparm, FEMparm *feparm,
00634   Vfetk *fetk[NOSH_MAXCALC]);
00635 
00648 VEXTERNC int postRefineFE(int icalc, NOsh *nosh, FEMparm *feparm,
00649   Vfetk *fetk[NOSH_MAXCALC]);
00650 
00660 VEXTERNC int writedataFE(int rank, NOsh *nosh, PBEparm *pbeparm, Vfetk *fetk);
00661 
00667 VEXTERNC Vrc_Codes loadMeshes(
00668                                                                              NOsh *nosh, 
00669                                                                              Gem *gm[NOSH_MAXMOL]  
00671                                                                      );
00672                                                                   
00677 VEXTERNC void killMeshes(
00678                                                                              NOsh *nosh, 
00679                                                                              Gem *alist[NOSH_MAXMOL]  
00680                                                                              );
00681 #endif
00682 
00683 #endif

Generated on Wed Oct 20 2010 11:12:14 for APBS by  doxygen 1.7.2