61 #ifndef _APBSROUTINES_H_ 62 #define _APBSROUTINES_H_ 68 # include "apbs/vfetk.h" 139 Vgrid *dielYMap[NOSH_MAXMOL],
140 Vgrid *dielZMap[NOSH_MAXMOL]
152 Vgrid *dielYMap[NOSH_MAXMOL],
Vgrid *dielZMap[NOSH_MAXMOL]);
230 double realCenter[3],
233 Vgrid *dielXMap[NOSH_MAXMOL],
234 Vgrid *dielYMap[NOSH_MAXMOL],
235 Vgrid *dielZMap[NOSH_MAXMOL],
236 Vgrid *kappaMap[NOSH_MAXMOL],
237 Vgrid *chargeMap[NOSH_MAXMOL],
238 Vpmgp *pmgp[NOSH_MAXCALC],
239 Vpmg *pmg[NOSH_MAXCALC],
240 Vgrid *potMap[NOSH_MAXMOL]
251 Vpmgp *pmgp[NOSH_MAXCALC],
252 Vpmg *pmg[NOSH_MAXCALC]
289 int *nenergy,
double *totEnergy,
double *qfEnergy,
double *qmEnergy,
353 double totEnergy[
NOSH_MAXCALC],
double qfEnergy[NOSH_MAXCALC],
354 double qmEnergy[NOSH_MAXCALC],
double dielEnergy[NOSH_MAXCALC],
355 int nenergy[NOSH_MAXCALC],
double *atomEnergy[NOSH_MAXCALC],
356 int nforce[NOSH_MAXCALC],
AtomForce *atomForce[NOSH_MAXCALC]);
375 double totEnergy[
NOSH_MAXCALC],
double qfEnergy[NOSH_MAXCALC],
376 double qmEnergy[NOSH_MAXCALC],
double dielEnergy[NOSH_MAXCALC],
377 int nenergy[NOSH_MAXCALC],
double *atomEnergy[NOSH_MAXCALC],
378 int nforce[NOSH_MAXCALC],
AtomForce *atomForce[NOSH_MAXCALC]);
504 double atomwcaEnergy[],
543 #include "apbs/vfetk.h" 571 int *nenergy,
double *totEnergy,
double *qfEnergy,
double *qmEnergy,
581 VEXTERNC Vrc_Codes
initFE(
588 Vfetk *fetk[NOSH_MAXCALC]
599 Vfetk *fetk[NOSH_MAXCALC],
VEXTERNC Vparam * loadParameter(NOsh *nosh)
Loads and returns parameter object.
#define NOSH_MAXMOL
Maximum number of molecules in a run.
Contains public data members for Vpbe class/module.
Oracle for solvent- and ion-accessibility around a biomolecule.
VEXTERNC int loadChargeMaps(NOsh *nosh, Vgrid *charge[NOSH_MAXMOL])
Load the charge maps given in NOsh into grid objects.
VEXTERNC int energyAPOL(APOLparm *apolparm, double sasa, double sav, double atomsasa[], double atomwcaEnergy[], int numatoms)
Calculate non-polar energies.
Electrostatic potential oracle for Cartesian mesh data.
VEXTERNC int writedataFlat(NOsh *nosh, Vcom *com, const char *fname, double totEnergy[NOSH_MAXCALC], double qfEnergy[NOSH_MAXCALC], double qmEnergy[NOSH_MAXCALC], double dielEnergy[NOSH_MAXCALC], int nenergy[NOSH_MAXCALC], double *atomEnergy[NOSH_MAXCALC], int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC])
Write out information to a flat file.
VEXTERNC Vrc_Codes loadMeshes(NOsh *nosh, Gem *gm[NOSH_MAXMOL])
Load the meshes given in NOsh into geometry objects.
VEXTERNC int postRefineFE(int icalc, FEMparm *feparm, Vfetk *fetk[NOSH_MAXCALC])
Estimate error, mark mesh, and refine mesh after solve.
Contains public data members for Vpmg class/module.
VEXTERNC int solveMG(NOsh *nosh, Vpmg *pmg, MGparm_CalcType type)
Solve the PBE with MG.
VEXTERNC int writematMG(int rank, NOsh *nosh, PBEparm *pbeparm, Vpmg *pmg)
Write out operator matrix from MG calculation to file.
VEXTERNC int setPartMG(NOsh *nosh, MGparm *mgparm, Vpmg *pmg)
Set MG partitions for calculating observables and performing I/O.
VEXTERNC void killChargeMaps(NOsh *nosh, Vgrid *charge[NOSH_MAXMOL])
Destroy the loaded charge maps.
Header file for header dependencies.
VEXTERNC void killForce(Vmem *mem, NOsh *nosh, int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC])
Free memory from MG force calculation.
VEXTERNC int loadKappaMaps(NOsh *nosh, Vgrid *kappa[NOSH_MAXMOL])
Load the kappa maps given in NOsh into grid objects.
VEXTERNC int loadDielMaps(NOsh *nosh, Vgrid *dielXMap[NOSH_MAXMOL], Vgrid *dielYMap[NOSH_MAXMOL], Vgrid *dielZMap[NOSH_MAXMOL])
Load the dielectric maps given in NOsh into grid objects.
VEXTERNC int initMG(int icalc, NOsh *nosh, MGparm *mgparm, PBEparm *pbeparm, double realCenter[3], Vpbe *pbe[NOSH_MAXCALC], Valist *alist[NOSH_MAXMOL], Vgrid *dielXMap[NOSH_MAXMOL], Vgrid *dielYMap[NOSH_MAXMOL], Vgrid *dielZMap[NOSH_MAXMOL], Vgrid *kappaMap[NOSH_MAXMOL], Vgrid *chargeMap[NOSH_MAXMOL], Vpmgp *pmgp[NOSH_MAXCALC], Vpmg *pmg[NOSH_MAXCALC], Vgrid *potMap[NOSH_MAXMOL])
Initialize an MG calculation.
VEXTERNC void storeAtomEnergy(Vpmg *pmg, int icalc, double **atomEnergy, int *nenergy)
Store energy in arrays for future use.
VEXTERNC void killMG(NOsh *nosh, Vpbe *pbe[NOSH_MAXCALC], Vpmgp *pmgp[NOSH_MAXCALC], Vpmg *pmg[NOSH_MAXCALC])
Kill structures initialized during an MG calculation.
VEXTERNC int printApolForce(Vcom *com, NOsh *nosh, int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC], int i)
Combine and pretty-print force data.
VEXTERNC void printFEPARM(int icalc, NOsh *nosh, FEMparm *feparm, Vfetk *fetk[NOSH_MAXCALC])
Print out FE-specific params loaded from input.
VEXTERNC void killPotMaps(NOsh *nosh, Vgrid *pot[NOSH_MAXMOL])
Destroy the loaded potential maps.
VEXTERNC void killFE(NOsh *nosh, Vpbe *pbe[NOSH_MAXCALC], Vfetk *fetk[NOSH_MAXCALC], Gem *gem[NOSH_MAXMOL])
Kill structures initialized during an FE calculation.
VEXTERNC int printElecEnergy(Vcom *com, NOsh *nosh, double totEnergy[NOSH_MAXCALC], int iprint)
Combine and pretty-print energy data.
VEXTERNC int partFE(int i, NOsh *nosh, FEMparm *feparm, Vfetk *fetk[NOSH_MAXCALC])
Partition mesh (if applicable)
VEXTERNC void killKappaMaps(NOsh *nosh, Vgrid *kappa[NOSH_MAXMOL])
Destroy the loaded kappa maps.
enum eMGparm_CalcType MGparm_CalcType
Declare MGparm_CalcType type.
VEXTERNC int energyFE(NOsh *nosh, int icalc, Vfetk *fetk[NOSH_MAXCALC], int *nenergy, double *totEnergy, double *qfEnergy, double *qmEnergy, double *dielEnergy)
Calculate electrostatic energies from FE solution.
VEXTERNC int printForce(Vcom *com, NOsh *nosh, int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC], int i)
Combine and pretty-print force data (deprecated...see printElecForce)
VEXTERNC void printPBEPARM(PBEparm *pbeparm)
Print out generic PBE params loaded from input.
VEXTERNC int writedataMG(int rank, NOsh *nosh, PBEparm *pbeparm, Vpmg *pmg)
Write out observables from MG calculation to file.
Parameter structure for FEM-specific variables from input files.
Structure to hold atomic forces.
Reads and assigns charge/radii parameters.
Contains public data members for Vpmgp class/module.
VEXTERNC int printEnergy(Vcom *com, NOsh *nosh, double totEnergy[NOSH_MAXCALC], int iprint)
Combine and pretty-print energy data (deprecated...see printElecEnergy)
VEXTERNC double returnEnergy(Vcom *com, NOsh *nosh, double totEnergy[NOSH_MAXCALC], int iprint)
Access net local energy.
VEXTERNC int loadPotMaps(NOsh *nosh, Vgrid *pot[NOSH_MAXMOL])
Load the potential maps given in NOsh into grid objects.
Parameter structure for PBE variables from input files.
VEXTERNC void killMeshes(NOsh *nosh, Gem *alist[NOSH_MAXMOL])
Destroy the loaded meshes.
VEXTERNC void killMolecules(NOsh *nosh, Valist *alist[NOSH_MAXMOL])
Destroy the loaded molecules.
VEXTERNC int forceMG(Vmem *mem, NOsh *nosh, PBEparm *pbeparm, MGparm *mgparm, Vpmg *pmg, int *nforce, AtomForce **atomForce, Valist *alist[NOSH_MAXMOL])
Calculate forces from MG solution.
Parameter structure for MG-specific variables from input files.
VEXTERNC void killDielMaps(NOsh *nosh, Vgrid *dielXMap[NOSH_MAXMOL], Vgrid *dielYMap[NOSH_MAXMOL], Vgrid *dielZMap[NOSH_MAXMOL])
Destroy the loaded dielectric.
VPUBLIC Vrc_Codes initFE(int icalc, NOsh *nosh, FEMparm *feparm, PBEparm *pbeparm, Vpbe *pbe[NOSH_MAXCALC], Valist *alist[NOSH_MAXMOL], Vfetk *fetk[NOSH_MAXCALC])
Initialize FE solver objects.
VEXTERNC int printElecForce(Vcom *com, NOsh *nosh, int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC], int i)
Combine and pretty-print force data.
VEXTERNC void printMGPARM(MGparm *mgparm, double realCenter[3])
Print out MG-specific params loaded from input.
VEXTERNC int printApolEnergy(NOsh *nosh, int iprint)
Combine and pretty-print energy data.
Container class for list of atom objects.
Class for parsing fixed format input files.
Contains public data members for Vfetk class/module.
VEXTERNC int loadMolecules(NOsh *nosh, Vparam *param, Valist *alist[NOSH_MAXMOL])
Load the molecules given in NOsh into atom lists.
#define NOSH_MAXCALC
Maximum number of calculations in a run.
VEXTERNC int forceAPOL(Vacc *acc, Vmem *mem, APOLparm *apolparm, int *nforce, AtomForce **atomForce, Valist *alist, Vclist *clist)
Calculate non-polar forces.
VEXTERNC int solveFE(int i, PBEparm *pbeparm, FEMparm *feparm, Vfetk *fetk[NOSH_MAXCALC])
Solve-estimate-refine.
VEXTERNC void startVio()
Wrapper to start MALOC Vio layer.
VEXTERNC int initAPOL(NOsh *nosh, Vmem *mem, Vparam *param, APOLparm *apolparm, int *nforce, AtomForce **atomForce, Valist *alist)
Upperlevel routine to the non-polar energy and force routines.
Parameter structure for APOL-specific variables from input files.
VEXTERNC int writedataXML(NOsh *nosh, Vcom *com, const char *fname, double totEnergy[NOSH_MAXCALC], double qfEnergy[NOSH_MAXCALC], double qmEnergy[NOSH_MAXCALC], double dielEnergy[NOSH_MAXCALC], int nenergy[NOSH_MAXCALC], double *atomEnergy[NOSH_MAXCALC], int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC])
Write out information to an XML file.
VEXTERNC int energyMG(NOsh *nosh, int icalc, Vpmg *pmg, int *nenergy, double *totEnergy, double *qfEnergy, double *qmEnergy, double *dielEnergy)
Calculate electrostatic energies from MG solution.
VEXTERNC int preRefineFE(int i, FEMparm *feparm, Vfetk *fetk[NOSH_MAXCALC])
Pre-refine mesh before solve.
VEXTERNC int writedataFE(int rank, NOsh *nosh, PBEparm *pbeparm, Vfetk *fetk)
Write FEM data to files.
VEXTERNC void killEnergy()
Kill arrays allocated for energies.