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