1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 package ffx.openmm.amoeba;
39
40 import ffx.openmm.Context;
41 import ffx.openmm.Force;
42
43 import static edu.uiowa.jopenmm.OpenMMAmoebaLibrary.OpenMM_AmoebaWcaDispersionForce_addParticle;
44 import static edu.uiowa.jopenmm.OpenMMAmoebaLibrary.OpenMM_AmoebaWcaDispersionForce_create;
45 import static edu.uiowa.jopenmm.OpenMMAmoebaLibrary.OpenMM_AmoebaWcaDispersionForce_destroy;
46 import static edu.uiowa.jopenmm.OpenMMAmoebaLibrary.OpenMM_AmoebaWcaDispersionForce_setAwater;
47 import static edu.uiowa.jopenmm.OpenMMAmoebaLibrary.OpenMM_AmoebaWcaDispersionForce_setDispoff;
48 import static edu.uiowa.jopenmm.OpenMMAmoebaLibrary.OpenMM_AmoebaWcaDispersionForce_setEpsh;
49 import static edu.uiowa.jopenmm.OpenMMAmoebaLibrary.OpenMM_AmoebaWcaDispersionForce_setEpso;
50 import static edu.uiowa.jopenmm.OpenMMAmoebaLibrary.OpenMM_AmoebaWcaDispersionForce_setParticleParameters;
51 import static edu.uiowa.jopenmm.OpenMMAmoebaLibrary.OpenMM_AmoebaWcaDispersionForce_setRminh;
52 import static edu.uiowa.jopenmm.OpenMMAmoebaLibrary.OpenMM_AmoebaWcaDispersionForce_setRmino;
53 import static edu.uiowa.jopenmm.OpenMMAmoebaLibrary.OpenMM_AmoebaWcaDispersionForce_setShctd;
54 import static edu.uiowa.jopenmm.OpenMMAmoebaLibrary.OpenMM_AmoebaWcaDispersionForce_setSlevy;
55 import static edu.uiowa.jopenmm.OpenMMAmoebaLibrary.OpenMM_AmoebaWcaDispersionForce_updateParametersInContext;
56 import static edu.uiowa.jopenmm.OpenMMAmoebaLibrary.OpenMM_KJPerKcal;
57 import static edu.uiowa.jopenmm.OpenMMAmoebaLibrary.OpenMM_NmPerAngstrom;
58
59
60
61
62 public class WcaDispersionForce extends Force {
63
64
65
66
67 public WcaDispersionForce() {
68 pointer = OpenMM_AmoebaWcaDispersionForce_create();
69 }
70
71
72
73
74
75
76
77 public void addParticle(double radius, double epsilon) {
78 OpenMM_AmoebaWcaDispersionForce_addParticle(pointer, radius, epsilon);
79 }
80
81
82
83
84
85
86
87
88 public void setParticleParameters(int index, double radius, double epsilon) {
89 OpenMM_AmoebaWcaDispersionForce_setParticleParameters(pointer, index, radius, epsilon);
90 }
91
92
93
94
95
96
97
98 public void setEpso(double epso) {
99 OpenMM_AmoebaWcaDispersionForce_setEpso(pointer, epso * OpenMM_KJPerKcal);
100 }
101
102
103
104
105
106
107 public void setEpsh(double epsh) {
108 OpenMM_AmoebaWcaDispersionForce_setEpsh(pointer, epsh * OpenMM_KJPerKcal);
109 }
110
111
112
113
114
115
116 public void setRmino(double rmino) {
117 OpenMM_AmoebaWcaDispersionForce_setRmino(pointer, rmino * OpenMM_NmPerAngstrom);
118 }
119
120
121
122
123
124
125 public void setRminh(double rminh) {
126 OpenMM_AmoebaWcaDispersionForce_setRminh(pointer, rminh * OpenMM_NmPerAngstrom);
127 }
128
129
130
131
132
133
134 public void setDispoff(double dispoff) {
135 OpenMM_AmoebaWcaDispersionForce_setDispoff(pointer, dispoff * OpenMM_NmPerAngstrom);
136 }
137
138
139
140
141
142
143 public void setAwater(double awater) {
144 OpenMM_AmoebaWcaDispersionForce_setAwater(pointer, awater / (OpenMM_NmPerAngstrom * OpenMM_NmPerAngstrom * OpenMM_NmPerAngstrom));
145 }
146
147
148
149
150
151
152 public void setSlevy(double slevy) {
153 OpenMM_AmoebaWcaDispersionForce_setSlevy(pointer, slevy);
154 }
155
156
157
158
159
160
161 public void setShctd(double shctd) {
162 OpenMM_AmoebaWcaDispersionForce_setShctd(pointer, shctd);
163 }
164
165
166
167
168
169
170 public void updateParametersInContext(Context context) {
171 if (context.hasContextPointer()) {
172 OpenMM_AmoebaWcaDispersionForce_updateParametersInContext(pointer, context.getPointer());
173 }
174 }
175
176
177
178
179 public void destroy() {
180 if (pointer != null) {
181 OpenMM_AmoebaWcaDispersionForce_destroy(pointer);
182 pointer = null;
183 }
184 }
185 }