APBS  1.5
routines.h
Go to the documentation of this file.
1 
61 #ifndef _APBSROUTINES_H_
62 #define _APBSROUTINES_H_
63 
64 #include "apbs.h"
65 
66 #ifdef HAVE_MC_H
67 # include "mc/mc.h"
68 # include "fem/vfetk.h"
69 #endif
70 #ifdef HAVE_MCX_H
71 # include "mcx/mcx.h"
72 #endif
73 
74 #ifdef ENABLE_BEM
75  #include "TABIPBstruct.h"
76 #endif
77 
78 #ifdef ENABLE_GEOFLOW
79  #include "GeometricFlowWrap.h"
80 #endif
81 
82 #if defined(ENABLE_PBAM) || defined(ENABLE_PBSAM)
83  #include "PBAMWrap.h"
84 #endif
85 
86 #ifdef ENABLE_PBSAM
87  #include "PBSAMWrap.h"
88 #endif
89 
93 #define APBSRC 13
94 
99 struct AtomForce {
100  double ibForce[3];
101  double qfForce[3];
102  double dbForce[3];
103  double sasaForce[3];
104  double savForce[3];
105  double wcaForce[3];
106 };
107 
111 typedef struct AtomForce AtomForce;
112 
118 VEXTERNC Vparam* loadParameter(
119  NOsh *nosh
121  );
122 
128 VEXTERNC int loadMolecules(
129  NOsh *nosh,
130  Vparam *param,
132  Valist *alist[NOSH_MAXMOL]
134  );
135 
142 VEXTERNC void killMolecules(NOsh *nosh, Valist *alist[NOSH_MAXMOL]);
143 
153 VEXTERNC int loadDielMaps(NOsh *nosh,
154  Vgrid *dielXMap[NOSH_MAXMOL],
155  Vgrid *dielYMap[NOSH_MAXMOL],
156  Vgrid *dielZMap[NOSH_MAXMOL]
157  );
158 
167 VEXTERNC void killDielMaps(NOsh *nosh, Vgrid *dielXMap[NOSH_MAXMOL],
168  Vgrid *dielYMap[NOSH_MAXMOL], Vgrid *dielZMap[NOSH_MAXMOL]);
169 
177 VEXTERNC int loadKappaMaps(NOsh *nosh, Vgrid *kappa[NOSH_MAXMOL]);
178 
185 VEXTERNC void killKappaMaps(NOsh *nosh, Vgrid *kappa[NOSH_MAXMOL]);
186 
194 VEXTERNC int loadPotMaps(NOsh *nosh, Vgrid *pot[NOSH_MAXMOL]);
195 
202 VEXTERNC void killPotMaps(NOsh *nosh, Vgrid *pot[NOSH_MAXMOL]);
203 
211 VEXTERNC int loadChargeMaps(NOsh *nosh, Vgrid *charge[NOSH_MAXMOL]);
212 
219 VEXTERNC void killChargeMaps(NOsh *nosh, Vgrid *charge[NOSH_MAXMOL]);
220 
226 VEXTERNC void printPBEPARM(PBEparm *pbeparm);
227 
234 VEXTERNC void printMGPARM(MGparm *mgparm, double realCenter[3]);
235 
241 VEXTERNC int initMG(
242  int icalc,
243  NOsh *nosh,
244  MGparm *mgparm,
245  PBEparm *pbeparm,
246  double realCenter[3],
247  Vpbe *pbe[NOSH_MAXCALC],
248  Valist *alist[NOSH_MAXMOL],
249  Vgrid *dielXMap[NOSH_MAXMOL],
250  Vgrid *dielYMap[NOSH_MAXMOL],
251  Vgrid *dielZMap[NOSH_MAXMOL],
252  Vgrid *kappaMap[NOSH_MAXMOL],
253  Vgrid *chargeMap[NOSH_MAXMOL],
254  Vpmgp *pmgp[NOSH_MAXCALC],
255  Vpmg *pmg[NOSH_MAXCALC],
256  Vgrid *potMap[NOSH_MAXMOL]
257  );
258 
264 VEXTERNC void killMG(
265  NOsh *nosh,
266  Vpbe *pbe[NOSH_MAXCALC],
267  Vpmgp *pmgp[NOSH_MAXCALC],
268  Vpmg *pmg[NOSH_MAXCALC]
269 );
270 
279 VEXTERNC int solveMG(NOsh *nosh, Vpmg *pmg, MGparm_CalcType type);
280 
289 VEXTERNC int setPartMG(NOsh *nosh, MGparm *mgparm, Vpmg *pmg);
290 
304 VEXTERNC int energyMG(NOsh* nosh, int icalc, Vpmg *pmg,
305  int *nenergy, double *totEnergy, double *qfEnergy, double *qmEnergy,
306  double *dielEnergy);
307 
312 VEXTERNC void killEnergy();
313 
327 VEXTERNC int forceMG(Vmem *mem, NOsh *nosh, PBEparm *pbeparm, MGparm *mgparm,
328  Vpmg *pmg, int *nforce, AtomForce **atomForce, Valist *alist[NOSH_MAXMOL]);
329 
338 VEXTERNC void killForce(Vmem *mem, NOsh *nosh, int nforce[NOSH_MAXCALC],
339  AtomForce *atomForce[NOSH_MAXCALC]);
340 
345 VEXTERNC void storeAtomEnergy(
346  Vpmg *pmg,
347  int icalc,
348  double **atomEnergy,
349  int *nenergy
350  );
351 
368 VEXTERNC int writedataFlat(NOsh *nosh, Vcom *com, const char *fname,
369  double totEnergy[NOSH_MAXCALC], double qfEnergy[NOSH_MAXCALC],
370  double qmEnergy[NOSH_MAXCALC], double dielEnergy[NOSH_MAXCALC],
371  int nenergy[NOSH_MAXCALC], double *atomEnergy[NOSH_MAXCALC],
372  int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC]);
373 
390 VEXTERNC int writedataXML(NOsh *nosh, Vcom *com, const char *fname,
391  double totEnergy[NOSH_MAXCALC], double qfEnergy[NOSH_MAXCALC],
392  double qmEnergy[NOSH_MAXCALC], double dielEnergy[NOSH_MAXCALC],
393  int nenergy[NOSH_MAXCALC], double *atomEnergy[NOSH_MAXCALC],
394  int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC]);
395 
405 VEXTERNC int writedataMG(int rank, NOsh *nosh, PBEparm *pbeparm, Vpmg *pmg);
406 
416 VEXTERNC int writematMG(int rank, NOsh *nosh, PBEparm *pbeparm, Vpmg *pmg);
417 
427 VEXTERNC double returnEnergy(Vcom *com, NOsh *nosh, double totEnergy[NOSH_MAXCALC], int iprint);
428 
434 VEXTERNC int printEnergy(
435  Vcom *com,
436  NOsh *nosh,
437  double totEnergy[NOSH_MAXCALC],
439  int iprint
440  );
441 
447 VEXTERNC int printElecEnergy(
448  Vcom *com,
449  NOsh *nosh,
450  double totEnergy[NOSH_MAXCALC],
452  int iprint
453  );
454 
460 VEXTERNC int printApolEnergy(
461  NOsh *nosh,
462  int iprint
463  );
464 
470 VEXTERNC int printForce(
471  Vcom *com,
472  NOsh *nosh,
473  int nforce[NOSH_MAXCALC],
474  AtomForce *atomForce[NOSH_MAXCALC],
475  int i
476  );
477 
483 VEXTERNC int printElecForce(
484  Vcom *com,
485  NOsh *nosh,
486  int nforce[NOSH_MAXCALC],
487  AtomForce *atomForce[NOSH_MAXCALC],
488  int i
489  );
490 
496 VEXTERNC int printApolForce(
497  Vcom *com,
498  NOsh *nosh,
499  int nforce[NOSH_MAXCALC],
500  AtomForce *atomForce[NOSH_MAXCALC],
501  int i
502  );
503 
508 VEXTERNC void startVio();
509 
515 VEXTERNC int energyAPOL(
516  APOLparm *apolparm,
517  double sasa,
518  double sav,
519  double atomsasa[],
520  double atomwcaEnergy[],
521  int numatoms
522  );
523 
529 VEXTERNC int forceAPOL(
530  Vacc *acc,
531  Vmem *mem,
532  APOLparm *apolparm,
534  int *nforce,
536  AtomForce **atomForce,
538  Valist *alist,
539  Vclist *clist
540  );
541 
547 VEXTERNC int initAPOL(
548  NOsh *nosh,
549  Vmem *mem,
550  Vparam *param,
551  APOLparm *apolparm,
552  int *nforce,
553  AtomForce **atomForce,
554  Valist *alist
555  );
556 
557 
558 #ifdef HAVE_MC_H
559 #include "fem/vfetk.h"
560 
569 VEXTERNC void printFEPARM(int icalc, NOsh *nosh, FEMparm *feparm,
570  Vfetk *fetk[NOSH_MAXCALC]);
571 
586 VEXTERNC int energyFE(NOsh* nosh, int icalc, Vfetk *fetk[NOSH_MAXCALC],
587  int *nenergy, double *totEnergy, double *qfEnergy, double *qmEnergy,
588  double *dielEnergy);
589 
597 VEXTERNC Vrc_Codes initFE(
598  int icalc,
599  NOsh *nosh,
600  FEMparm *feparm,
601  PBEparm *pbeparm,
602  Vpbe *pbe[NOSH_MAXCALC],
603  Valist *alist[NOSH_MAXMOL],
604  Vfetk *fetk[NOSH_MAXCALC]
605 );
606 
612 VEXTERNC void killFE(
613  NOsh *nosh,
614  Vpbe *pbe[NOSH_MAXCALC],
615  Vfetk *fetk[NOSH_MAXCALC],
616  Gem *gem[NOSH_MAXMOL]
617 );
618 
628 VEXTERNC int preRefineFE(int i,
629  FEMparm *feparm,
630  Vfetk *fetk[NOSH_MAXCALC]
631 );
632 
642 VEXTERNC int partFE(int i, NOsh *nosh, FEMparm *feparm,
643  Vfetk *fetk[NOSH_MAXCALC]);
644 
654 VEXTERNC int solveFE(int i,
655  PBEparm *pbeparm,
656  FEMparm *feparm,
657  Vfetk *fetk[NOSH_MAXCALC]
658 );
659 
671 VEXTERNC int postRefineFE(int icalc,
672  FEMparm *feparm,
673  Vfetk *fetk[NOSH_MAXCALC]
674 );
675 
685 VEXTERNC int writedataFE(int rank, NOsh *nosh, PBEparm *pbeparm, Vfetk *fetk);
686 
692 VEXTERNC Vrc_Codes loadMeshes(
693  NOsh *nosh,
694  Gem *gm[NOSH_MAXMOL]
696  );
697 
702 VEXTERNC void killMeshes(
703  NOsh *nosh,
704  Gem *alist[NOSH_MAXMOL]
705  );
706 #endif
707 
708 #endif
709 
710 
711 
712 VEXTERNC void printMGPARM(MGparm *mgparm, double realCenter[3]);
713 
714 #ifdef ENABLE_BEM
715 
720 VEXTERNC int initBEM(
721  int icalc,
722  NOsh *nosh,
723  BEMparm *bemparm,
724  PBEparm *pbeparm,
725  Vpbe *pbe[NOSH_MAXCALC]
726  );
727 
733 VEXTERNC void killBEM(
734  NOsh *nosh,
735  Vpbe *pbe[NOSH_MAXCALC]
736 );
737 
746 VEXTERNC int solveBEM(Valist* molecules[NOSH_MAXMOL],NOsh *nosh, PBEparm *pbeparm, BEMparm *bemparm, BEMparm_CalcType type);
747 
756 VEXTERNC int setPartBEM(NOsh *nosh, BEMparm *bemparm);
757 
771 VEXTERNC int energyBEM(NOsh* nosh, int icalc,
772  int *nenergy, double *totEnergy, double *qfEnergy, double *qmEnergy,
773  double *dielEnergy);
774 
788 VEXTERNC int forceBEM(NOsh *nosh, PBEparm *pbeparm, BEMparm *bemparm,
789  int *nforce, AtomForce **atomForce, Valist *alist[NOSH_MAXMOL]);
790 
797 VEXTERNC void printBEMPARM(BEMparm *bemparm);
798 
808 VEXTERNC int writedataBEM(int rank, NOsh *nosh, PBEparm *pbeparm);
809 
819 VEXTERNC int writematBEM(int rank, NOsh *nosh, PBEparm *pbeparm);
820 #endif
821 
822 #ifdef ENABLE_GEOFLOW
823 
830 VEXTERNC int solveGeometricFlow(
831  Valist* molecules[NOSH_MAXMOL],
832  NOsh *nosh,
833  PBEparm *pbeparm,
834  APOLparm *apolparm,
835  GEOFLOWparm *parm
836 );
837 #endif
838 
839 #ifdef ENABLE_PBAM
840 
847 VEXTERNC int solvePBAM(
848  Valist* molecules[NOSH_MAXMOL],
849  NOsh *nosh,
850  PBEparm *pbeparm,
851  PBAMparm *parm
852 );
853 #endif
854 
855 #ifdef ENABLE_PBSAM
856 
863 VEXTERNC int solvePBSAM(
864  Valist* molecules[NOSH_MAXMOL],
865  NOsh *nosh,
866  PBEparm *pbeparm,
867  PBAMparm *parm,
868  PBSAMparm *samparm
869 );
870 #endif
Parameter structure for GEOFLOW-specific variables from input files.
Definition: geoflowparm.h:98
VEXTERNC Vparam * loadParameter(NOsh *nosh)
Loads and returns parameter object.
Definition: routines.c:60
#define NOSH_MAXMOL
Maximum number of molecules in a run.
Definition: nosh.h:83
Contains public data members for Vpbe class/module.
Definition: vpbe.h:84
Oracle for solvent- and ion-accessibility around a biomolecule.
Definition: vacc.h:108
VEXTERNC int loadChargeMaps(NOsh *nosh, Vgrid *charge[NOSH_MAXMOL])
Load the charge maps given in NOsh into grid objects.
Definition: routines.c:884
enum eBEMparm_CalcType BEMparm_CalcType
Declare BEMparm_CalcType type.
Definition: bemparm.h:86
Parameter structure for PBAM-specific variables from input files.
Definition: pbamparm.h:105
VEXTERNC int energyAPOL(APOLparm *apolparm, double sasa, double sav, double atomsasa[], double atomwcaEnergy[], int numatoms)
Calculate non-polar energies.
Definition: routines.c:4666
Electrostatic potential oracle for Cartesian mesh data.
Definition: vgrid.h:81
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.
Definition: routines.c:1879
VEXTERNC Vrc_Codes loadMeshes(NOsh *nosh, Gem *gm[NOSH_MAXMOL])
Load the meshes given in NOsh into geometry objects.
double ibForce[3]
Definition: routines.h:100
VEXTERNC int postRefineFE(int icalc, FEMparm *feparm, Vfetk *fetk[NOSH_MAXCALC])
Estimate error, mark mesh, and refine mesh after solve.
Definition: routines.c:4231
Contains public data members for Vpmg class/module.
Definition: vpmg.h:116
VEXTERNC int solveMG(NOsh *nosh, Vpmg *pmg, MGparm_CalcType type)
Solve the PBE with MG.
Definition: routines.c:1479
VEXTERNC int writematMG(int rank, NOsh *nosh, PBEparm *pbeparm, Vpmg *pmg)
Write out operator matrix from MG calculation to file.
Definition: routines.c:1791
VEXTERNC int setPartMG(NOsh *nosh, MGparm *mgparm, Vpmg *pmg)
Set MG partitions for calculating observables and performing I/O.
Definition: routines.c:1515
VEXTERNC void killChargeMaps(NOsh *nosh, Vgrid *charge[NOSH_MAXMOL])
Destroy the loaded charge maps.
Definition: routines.c:984
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.
Definition: routines.c:1774
double savForce[3]
Definition: routines.h:104
VEXTERNC int loadKappaMaps(NOsh *nosh, Vgrid *kappa[NOSH_MAXMOL])
Load the kappa maps given in NOsh into grid objects.
Definition: routines.c:664
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.
Definition: routines.c:250
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.
Definition: routines.c:1212
VEXTERNC void storeAtomEnergy(Vpmg *pmg, int icalc, double **atomEnergy, int *nenergy)
Store energy in arrays for future use.
Definition: routines.c:1862
VEXTERNC void killMG(NOsh *nosh, Vpbe *pbe[NOSH_MAXCALC], Vpmgp *pmgp[NOSH_MAXCALC], Vpmg *pmg[NOSH_MAXCALC])
Kill structures initialized during an MG calculation.
Definition: routines.c:1453
VEXTERNC int printApolForce(Vcom *com, NOsh *nosh, int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC], int i)
Combine and pretty-print force data.
Definition: routines.c:3463
VEXTERNC void printFEPARM(int icalc, NOsh *nosh, FEMparm *feparm, Vfetk *fetk[NOSH_MAXCALC])
Print out FE-specific params loaded from input.
Definition: routines.c:3895
VEXTERNC void killPotMaps(NOsh *nosh, Vgrid *pot[NOSH_MAXMOL])
Destroy the loaded potential maps.
Definition: routines.c:865
VEXTERNC void killFE(NOsh *nosh, Vpbe *pbe[NOSH_MAXCALC], Vfetk *fetk[NOSH_MAXCALC], Gem *gem[NOSH_MAXMOL])
Kill structures initialized during an FE calculation.
Definition: routines.c:3675
VEXTERNC int printElecEnergy(Vcom *com, NOsh *nosh, double totEnergy[NOSH_MAXCALC], int iprint)
Combine and pretty-print energy data.
Definition: routines.c:2845
double dbForce[3]
Definition: routines.h:102
VEXTERNC int partFE(int i, NOsh *nosh, FEMparm *feparm, Vfetk *fetk[NOSH_MAXCALC])
Partition mesh (if applicable)
Definition: routines.c:4031
Parameter structure for PBSAM-specific variables from input files.
Definition: pbsamparm.h:105
VEXTERNC void killKappaMaps(NOsh *nosh, Vgrid *kappa[NOSH_MAXMOL])
Destroy the loaded kappa maps.
Definition: routines.c:776
enum eMGparm_CalcType MGparm_CalcType
Declare MGparm_CalcType type.
Definition: mgparm.h:89
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.
Definition: routines.c:4171
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)
Definition: routines.c:2972
VEXTERNC void printPBEPARM(PBEparm *pbeparm)
Print out generic PBE params loaded from input.
Definition: routines.c:1002
Contains declarations for class Vfetk.
VEXTERNC int writedataMG(int rank, NOsh *nosh, PBEparm *pbeparm, Vpmg *pmg)
Write out observables from MG calculation to file.
Definition: routines.c:2375
Parameter structure for BEM-specific variables from input files.
Definition: bemparm.h:96
Parameter structure for FEM-specific variables from input files.
Definition: femparm.h:133
Structure to hold atomic forces.
Definition: routines.h:99
Reads and assigns charge/radii parameters.
Definition: vparam.h:135
Contains public data members for Vpmgp class/module.
Definition: vpmgp.h:80
VEXTERNC int printEnergy(Vcom *com, NOsh *nosh, double totEnergy[NOSH_MAXCALC], int iprint)
Combine and pretty-print energy data (deprecated...see printElecEnergy)
Definition: routines.c:2777
VEXTERNC double returnEnergy(Vcom *com, NOsh *nosh, double totEnergy[NOSH_MAXCALC], int iprint)
Access net local energy.
Definition: routines.c:2745
VEXTERNC int loadPotMaps(NOsh *nosh, Vgrid *pot[NOSH_MAXMOL])
Load the potential maps given in NOsh into grid objects.
Definition: routines.c:793
Parameter structure for PBE variables from input files.
Definition: pbeparm.h:117
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.
Definition: routines.c:233
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.
Definition: routines.c:1628
Parameter structure for MG-specific variables from input files.
Definition: mgparm.h:114
VEXTERNC void killDielMaps(NOsh *nosh, Vgrid *dielXMap[NOSH_MAXMOL], Vgrid *dielYMap[NOSH_MAXMOL], Vgrid *dielZMap[NOSH_MAXMOL])
Destroy the loaded dielectric.
Definition: routines.c:639
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.
Definition: routines.c:3703
VEXTERNC int printElecForce(Vcom *com, NOsh *nosh, int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC], int i)
Combine and pretty-print force data.
Definition: routines.c:3220
VEXTERNC void printMGPARM(MGparm *mgparm, double realCenter[3])
Print out MG-specific params loaded from input.
Definition: routines.c:1179
VEXTERNC int printApolEnergy(NOsh *nosh, int iprint)
Combine and pretty-print energy data.
Definition: routines.c:2910
Container class for list of atom objects.
Definition: valist.h:78
Class for parsing fixed format input files.
Definition: nosh.h:195
double sasaForce[3]
Definition: routines.h:103
Contains public data members for Vfetk class/module.
Definition: vfetk.h:176
VEXTERNC int loadMolecules(NOsh *nosh, Vparam *param, Valist *alist[NOSH_MAXMOL])
Load the molecules given in NOsh into atom lists.
Definition: routines.c:95
#define NOSH_MAXCALC
Maximum number of calculations in a run.
Definition: nosh.h:87
VEXTERNC int forceAPOL(Vacc *acc, Vmem *mem, APOLparm *apolparm, int *nforce, AtomForce **atomForce, Valist *alist, Vclist *clist)
Calculate non-polar forces.
Definition: routines.c:4721
VEXTERNC int solveFE(int i, PBEparm *pbeparm, FEMparm *feparm, Vfetk *fetk[NOSH_MAXCALC])
Solve-estimate-refine.
Definition: routines.c:4108
Atom cell list.
Definition: vclist.h:117
VEXTERNC void startVio()
Wrapper to start MALOC Vio layer.
Definition: routines.c:58
double wcaForce[3]
Definition: routines.h:105
double qfForce[3]
Definition: routines.h:101
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.
Definition: routines.c:4467
Parameter structure for APOL-specific variables from input files.
Definition: apolparm.h:129
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.
Definition: routines.c:2115
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.
Definition: routines.c:1561
VEXTERNC int preRefineFE(int i, FEMparm *feparm, Vfetk *fetk[NOSH_MAXCALC])
Pre-refine mesh before solve.
Definition: routines.c:4038
VEXTERNC int writedataFE(int rank, NOsh *nosh, PBEparm *pbeparm, Vfetk *fetk)
Write FEM data to files.
Definition: routines.c:4292
VEXTERNC void killEnergy()
Kill arrays allocated for energies.
Definition: routines.c:1766