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.potential.groovy;
39
40 import static org.junit.Assert.assertEquals;
41
42 import ffx.potential.groovy.test.LambdaGradient;
43 import ffx.potential.utils.PotentialTest;
44 import org.junit.Test;
45
46
47
48
49
50
51
52
53 public class LambdaGradientTest extends PotentialTest {
54
55
56 @Test
57 public void testLambdaGradient() {
58
59 String xyzpath = getResourcePath("phenacetin.xyz");
60 String[] args = {"--ac", "1-26", xyzpath};
61 binding.setVariable("args", args);
62
63
64 LambdaGradient lambdaGradient = new LambdaGradient(binding).run();
65 potentialScript = lambdaGradient;
66
67 double expectedPotentialEnergyVac = -7.70864934;
68 double expectedPotentialEnergyXtal = -36.227069280713586;
69 double actualPotentialEnergyVac = lambdaGradient.e0;
70 double actualPotentialEnergyXtal = lambdaGradient.e1;
71
72 assertEquals(expectedPotentialEnergyVac, actualPotentialEnergyVac, 1E-6);
73 assertEquals(expectedPotentialEnergyXtal, actualPotentialEnergyXtal, 1E-6);
74 assertEquals(0, lambdaGradient.ndEdLFailures);
75 assertEquals(0, lambdaGradient.nd2EdL2Failures);
76 assertEquals(0, lambdaGradient.ndEdXdLFailures);
77 assertEquals(0, lambdaGradient.ndEdXFailures);
78 }
79
80 @Test
81 public void testLambdaGradientHelp() {
82
83 String[] args = {"-h"};
84 binding.setVariable("args", args);
85
86
87 LambdaGradient lambdaGradient = new LambdaGradient(binding).run();
88 potentialScript = lambdaGradient;
89 }
90
91
92 @Test
93 public void testLambdaGradientIntermolecularSoftcore() {
94
95 String xyzpath = getResourcePath("ethylparaben.xyz");
96 String[] args = {"--ac", "1-44", xyzpath};
97 binding.setVariable("args", args);
98
99
100 LambdaGradient lambdaGradient = new LambdaGradient(binding).run();
101 potentialScript = lambdaGradient;
102
103 double expectedPotentialEnergyVac = -6.67890842;
104 double expectedPotentialEnergyXtal = -57.410945848200896;
105 double actualPotentialEnergyVac = lambdaGradient.e0;
106 double actualPotentialEnergyXtal = lambdaGradient.e1;
107
108 assertEquals(expectedPotentialEnergyVac, actualPotentialEnergyVac, 1E-6);
109 assertEquals(expectedPotentialEnergyXtal, actualPotentialEnergyXtal, 1E-6);
110 assertEquals(0, lambdaGradient.ndEdLFailures);
111 assertEquals(0, lambdaGradient.nd2EdL2Failures);
112 assertEquals(0, lambdaGradient.ndEdXdLFailures);
113 assertEquals(0, lambdaGradient.ndEdXFailures);
114 }
115
116
117 @Test
118 public void testLambdaGradientSymOp() {
119
120 String roy02path = getResourcePath("roy02_P1.xyz");
121 String roy31path = getResourcePath("roy31.xyz");
122 String[] args = {"--sf", "TRIG", "--ls", "-l", "0.5", roy02path, roy31path};
123 binding.setVariable("args", args);
124
125
126 LambdaGradient lambdaGradient = new LambdaGradient(binding).run();
127 potentialScript = lambdaGradient;
128
129 double expectedPotentialEnergyVac = -32.31574626689126;
130 double expectedPotentialEnergyXtal = -43.95639068837232;
131 double actualPotentialEnergyVac = lambdaGradient.e0;
132 double actualPotentialEnergyXtal = lambdaGradient.e1;
133
134 assertEquals(expectedPotentialEnergyVac, actualPotentialEnergyVac, 1E-6);
135 assertEquals(expectedPotentialEnergyXtal, actualPotentialEnergyXtal, 1E-6);
136 assertEquals(0, lambdaGradient.ndEdLFailures);
137 assertEquals(0, lambdaGradient.nd2EdL2Failures);
138 assertEquals(0, lambdaGradient.ndEdXdLFailures);
139 assertEquals(0, lambdaGradient.ndEdXFailures);
140 }
141 }