1 #ifndef __GEOMETRICFLOWSTRUCT_H
2 #define __GEOMETRICFLOWSTRUCT_H
3 
4 // Boundary element type
5 // TODO: "focus" (higher priority) and "sdh" should be added;  Only type
6 // implemented is MDH
7 //enum BoundaryType{ ZERO, SDH, MDH, FOCUS, MAP};
8 // these boundary types are copied from vhal.h in the apbs source
9 enum BoundaryType{
10 
11     ZERO=0,  /**< Zero Dirichlet boundary conditions */
12     SDH=1,  /**< Single-sphere Debye-Huckel Dirichlet boundary
13              * condition */
14     MDH=2,  /**< Multiple-sphere Debye-Huckel Dirichlet boundary
15              * condition */
16     UNUSED=3,  /**< Unused boundary condition method (placeholder) */
17     FOCUS=4,  /**< Focusing Dirichlet boundary condition */
18     MEM=5,  /**< Focusing membrane boundary condition */
19     MAP=6    /**< Skip first level of focusing use an external map */
20 };
21 
22 //
23 //  input
24 //
25 struct GeometricFlowInput {
26 
27   enum BoundaryType m_boundaryCondition;
28   int m_vdwdispersion;  // 1/0, on/off
29   double m_gamma;
30   double m_grid[3];
31   double m_etolSolvation;
32   double m_tol;
33   double m_pdie;
34   double m_sdie;
35   double m_press;
36   double m_bconc;
37 
38 #ifdef __cplusplus
GeometricFlowInputGeometricFlowInput39 GeometricFlowInput() :
40   // default boundary condition -- see seteqb for details
41   m_boundaryCondition(MDH),
42 
43   // VDWDISPERSION:  1(on) or 0 (off)- previously called REPULSIVE.
44   // This is the option to include the dispersion force between solvent
45   // and solute molecules in non-polar contribution of solvation energy.
46   // It is different from the surface definition (i.e., van der Waals
47   // surface) which is critical to define the simulation domain)
48     m_vdwdispersion(0),
49 
50     m_gamma(0.0001),
51 
52   // grid spacing; distance per cell
53     m_grid{0.25, 0.25, 0.25},
54 
55   // error tolerance for th esolvation difference values.  Formerly CREVALUE
56   // in the Fortran and C code.
57     m_etolSolvation(0.01),
58 
59   // Tolerance for the Eigen pbsolver
60     m_tol(1e-4),
61 
62   // Solute dielectric
63     m_pdie(1.5),
64 
65   // Solvent dielectric, from Thomas et. al.
66     m_sdie(80),
67 
68     m_press(0.008),
69 
70   // Bulk solvent density from Thomas et. al.
71     m_bconc(0.03347)
72 	   {}
73 #endif
74 
75 } ;
76 
77 //
78 //  output
79 //
80 struct GeometricFlowOutput {
81 
82 	double m_area,
83 		m_volume,
84 		m_attint,
85 		m_sumpot,
86 		m_totalSolvation,
87 		m_nonpolarSolvation,
88 		m_elecSolvation;
89 
90 } ;
91 
92 #endif
93