@@ -34,9 +34,28 @@ class TestInferDeepSpin : public ::testing::Test {
3434 -0.0041979452385972 , 0.0025775020220167 , 0.0316295420619988 ,
3535 0.0000000000000000 , 0.00000000000000000 , 0.00000000000000000 ,
3636 0.0000000000000000 , 0.00000000000000000 , 0.00000000000000000 };
37+ std::vector<VALUETYPE> expected_v = {
38+ 0.0070639867264982 , -0.0005923577001662 , -0.0015491268442953 ,
39+ -0.0005741900039506 , 0.0004072991754844 , 0.0005919446476345 ,
40+ -0.0013659665914274 , 0.0005245686552392 , 0.0011288634277803 ,
41+ 0.0074611996305919 , -0.0015158254500315 , -0.0030704181444311 ,
42+ -0.0015503527871207 , 0.0006417155838534 , 0.0010901024672963 ,
43+ -0.0032762727340245 , 0.0011481000769186 , 0.0022122852076016 ,
44+ -0.0049637269273085 , -0.0033079530214069 , 0.0048850199723435 ,
45+ -0.0032277537906931 , -0.0030526361938397 , 0.0044721003136312 ,
46+ 0.0053457625015160 , 0.0044600355962439 , -0.0065441506206723 ,
47+ -0.0044231868209291 , -0.0033953486551904 , 0.0050014995082810 ,
48+ -0.0035584060948890 , -0.0032308004485022 , 0.0047399657455500 ,
49+ 0.0056902937417672 , 0.0047696802946761 , -0.0070004831270587 ,
50+ 0.0034978220789713 , -0.0044217265408896 , -0.0075771507215158 ,
51+ -0.0043265981217727 , 0.0016344211766637 , 0.0031438764476946 ,
52+ -0.0069613658908443 , 0.0032277030414985 , 0.0055466693735168 ,
53+ -0.0182670501038624 , -0.0030197903610554 , 0.0012333318415169 ,
54+ -0.0030157009303137 , 0.0006787737562374 , 0.0017594542103399 ,
55+ 0.0025814653441594 , 0.0020137939338955 , 0.0014966802677115 };
3756 int natoms;
3857 double expected_tot_e;
39- // std::vector<VALUETYPE> expected_tot_v;
58+ std::vector<VALUETYPE> expected_tot_v;
4059
4160 deepmd::DeepSpin dp;
4261
@@ -53,18 +72,18 @@ class TestInferDeepSpin : public ::testing::Test {
5372 natoms = expected_e.size ();
5473 EXPECT_EQ (natoms * 3 , expected_f.size ());
5574 EXPECT_EQ (natoms * 3 , expected_fm.size ());
56- // EXPECT_EQ(natoms * 9, expected_v.size());
75+ EXPECT_EQ (( natoms + 2 ) * 9 , expected_v.size ());
5776 expected_tot_e = 0 .;
58- // expected_tot_v.resize(9);
59- // std::fill(expected_tot_v.begin(), expected_tot_v.end(), 0.);
77+ expected_tot_v.resize (9 );
78+ std::fill (expected_tot_v.begin (), expected_tot_v.end (), 0 .);
6079 for (int ii = 0 ; ii < natoms; ++ii) {
6180 expected_tot_e += expected_e[ii];
6281 }
63- // for (int ii = 0; ii < natoms; ++ii) {
64- // for (int dd = 0; dd < 9; ++dd) {
65- // expected_tot_v[dd] += expected_v[ii * 9 + dd];
66- // }
67- // }
82+ for (int ii = 0 ; ii < ( natoms + 2 ) ; ++ii) {
83+ for (int dd = 0 ; dd < 9 ; ++dd) {
84+ expected_tot_v[dd] += expected_v[ii * 9 + dd];
85+ }
86+ }
6887 };
6988
7089 void TearDown () override { remove (" deepspin_nlist.pb" ); };
@@ -81,26 +100,26 @@ TYPED_TEST(TestInferDeepSpin, cpu_build_nlist) {
81100 std::vector<VALUETYPE>& expected_e = this ->expected_e ;
82101 std::vector<VALUETYPE>& expected_f = this ->expected_f ;
83102 std::vector<VALUETYPE>& expected_fm = this ->expected_fm ;
84- // std::vector<VALUETYPE>& expected_v = this->expected_v;
103+ std::vector<VALUETYPE>& expected_v = this ->expected_v ;
85104 int & natoms = this ->natoms ;
86105 double & expected_tot_e = this ->expected_tot_e ;
87- // std::vector<VALUETYPE>& expected_tot_v = this->expected_tot_v;
106+ std::vector<VALUETYPE>& expected_tot_v = this ->expected_tot_v ;
88107 deepmd::DeepSpin& dp = this ->dp ;
89108 double ener;
90109 std::vector<VALUETYPE> force, force_mag, virial;
91110 dp.compute (ener, force, force_mag, virial, coord, spin, atype, box);
92111 EXPECT_EQ (force.size (), natoms * 3 );
93112 EXPECT_EQ (force_mag.size (), natoms * 3 );
94- // EXPECT_EQ(virial.size(), 9);
113+ EXPECT_EQ (virial.size (), 9 );
95114
96115 EXPECT_LT (fabs (ener - expected_tot_e), EPSILON);
97116 for (int ii = 0 ; ii < natoms * 3 ; ++ii) {
98117 EXPECT_LT (fabs (force[ii] - expected_f[ii]), EPSILON);
99118 EXPECT_LT (fabs (force_mag[ii] - expected_fm[ii]), EPSILON);
100119 }
101- // for (int ii = 0; ii < 3 * 3; ++ii) {
102- // EXPECT_LT(fabs(virial[ii] - expected_tot_v[ii]), EPSILON);
103- // }
120+ for (int ii = 0 ; ii < 3 * 3 ; ++ii) {
121+ EXPECT_LT (fabs (virial[ii] - expected_tot_v[ii]), EPSILON);
122+ }
104123}
105124
106125TYPED_TEST (TestInferDeepSpin, cpu_build_nlist_atomic) {
@@ -112,34 +131,34 @@ TYPED_TEST(TestInferDeepSpin, cpu_build_nlist_atomic) {
112131 std::vector<VALUETYPE>& expected_e = this ->expected_e ;
113132 std::vector<VALUETYPE>& expected_f = this ->expected_f ;
114133 std::vector<VALUETYPE>& expected_fm = this ->expected_fm ;
115- // std::vector<VALUETYPE>& expected_v = this->expected_v;
134+ std::vector<VALUETYPE>& expected_v = this ->expected_v ;
116135 int & natoms = this ->natoms ;
117136 double & expected_tot_e = this ->expected_tot_e ;
118- // std::vector<VALUETYPE>& expected_tot_v = this->expected_tot_v;
137+ std::vector<VALUETYPE>& expected_tot_v = this ->expected_tot_v ;
119138 deepmd::DeepSpin& dp = this ->dp ;
120139 double ener;
121140 std::vector<VALUETYPE> force, force_mag, virial, atom_ener, atom_vir;
122141 dp.compute (ener, force, force_mag, virial, atom_ener, atom_vir, coord, spin,
123142 atype, box);
124143 EXPECT_EQ (force.size (), natoms * 3 );
125144 EXPECT_EQ (force_mag.size (), natoms * 3 );
126- // EXPECT_EQ(virial.size(), 9);
145+ EXPECT_EQ (virial.size (), 9 );
127146 // EXPECT_EQ(atom_ener.size(), natoms);
128- // EXPECT_EQ(atom_vir.size(), natoms * 9);
147+ EXPECT_EQ (atom_vir.size (), ( natoms + 2 ) * 9 );
129148 EXPECT_LT (fabs (ener - expected_tot_e), EPSILON);
130149 for (int ii = 0 ; ii < natoms * 3 ; ++ii) {
131150 EXPECT_LT (fabs (force[ii] - expected_f[ii]), EPSILON);
132151 EXPECT_LT (fabs (force_mag[ii] - expected_fm[ii]), EPSILON);
133152 }
134- // for (int ii = 0; ii < 3 * 3; ++ii) {
135- // EXPECT_LT(fabs(virial[ii] - expected_tot_v[ii]), EPSILON);
136- // }
153+ for (int ii = 0 ; ii < 3 * 3 ; ++ii) {
154+ EXPECT_LT (fabs (virial[ii] - expected_tot_v[ii]), EPSILON);
155+ }
137156 for (int ii = 0 ; ii < natoms; ++ii) {
138157 EXPECT_LT (fabs (atom_ener[ii] - expected_e[ii]), EPSILON);
139158 }
140- // for (int ii = 0; ii < natoms * 9; ++ii) {
141- // EXPECT_LT(fabs(atom_vir[ii] - expected_v[ii]), EPSILON);
142- // }
159+ for (int ii = 0 ; ii < ( natoms + 2 ) * 9 ; ++ii) {
160+ EXPECT_LT (fabs (atom_vir[ii] - expected_v[ii]), EPSILON);
161+ }
143162}
144163
145164template <class VALUETYPE >
@@ -164,9 +183,28 @@ class TestInferDeepSpinNopbc : public ::testing::Test {
164183 -0.0060028470719556 , 0.0025147062058193 , 0.0321884178873188 ,
165184 0.0000000000000000 , 0.00000000000000000 , 0.00000000000000000 ,
166185 0.0000000000000000 , 0.00000000000000000 , 0.00000000000000000 };
186+ std::vector<VALUETYPE> expected_v = {
187+ 0.0021380771762615 , -0.0008956809792447 , -0.0016180043496033 ,
188+ -0.0008956809792447 , 0.0003752177075214 , 0.0006778126329419 ,
189+ -0.0014520530654550 , 0.0006082925003933 , 0.0010988509684524 ,
190+ 0.0034592108484302 , -0.0014491288689370 , -0.0026177811825959 ,
191+ -0.0014491288689370 , 0.0006070674991493 , 0.0010966380629793 ,
192+ -0.0027640824464858 , 0.0011579264302846 , 0.0020917380676109 ,
193+ -0.0037083572971367 , -0.0034643864223251 , 0.0050745941960818 ,
194+ -0.0034643864223251 , -0.0032364662629616 , 0.0047407393147607 ,
195+ 0.0050745941960818 , 0.0047407393147607 , -0.0069441815314804 ,
196+ -0.0037083572971367 , -0.0034643864223251 , 0.0050745941960818 ,
197+ -0.0034643864223251 , -0.0032364662629616 , 0.0047407393147607 ,
198+ 0.0050745941960818 , 0.0047407393147607 , -0.0069441815314804 ,
199+ 0.0103691205704445 , -0.0043438207795105 , -0.0078469020533093 ,
200+ -0.0043438207795105 , 0.0018197087049301 , 0.0032872157250350 ,
201+ -0.0076002352547860 , 0.0031838823364644 , 0.0057515293820002 ,
202+ 0.0045390015662654 , -0.0019014736291112 , -0.0034349201042009 ,
203+ -0.0019014736291112 , 0.0007965632770601 , 0.0014389530166247 ,
204+ -0.0038334654556754 , 0.0016059112044046 , 0.0029010008853761 };
167205 int natoms;
168206 double expected_tot_e;
169- // std::vector<VALUETYPE> expected_tot_v;
207+ std::vector<VALUETYPE> expected_tot_v;
170208
171209 deepmd::DeepSpin dp;
172210
@@ -183,18 +221,18 @@ class TestInferDeepSpinNopbc : public ::testing::Test {
183221 natoms = expected_e.size ();
184222 EXPECT_EQ (natoms * 3 , expected_f.size ());
185223 EXPECT_EQ (natoms * 3 , expected_fm.size ());
186- // EXPECT_EQ(natoms * 9, expected_v.size());
224+ EXPECT_EQ (( natoms + 2 ) * 9 , expected_v.size ());
187225 expected_tot_e = 0 .;
188- // expected_tot_v.resize(9);
189- // std::fill(expected_tot_v.begin(), expected_tot_v.end(), 0.);
226+ expected_tot_v.resize (9 );
227+ std::fill (expected_tot_v.begin (), expected_tot_v.end (), 0 .);
190228 for (int ii = 0 ; ii < natoms; ++ii) {
191229 expected_tot_e += expected_e[ii];
192230 }
193- // for (int ii = 0; ii < natoms; ++ii) {
194- // for (int dd = 0; dd < 9; ++dd) {
195- // expected_tot_v[dd] += expected_v[ii * 9 + dd];
196- // }
197- // }
231+ for (int ii = 0 ; ii < natoms + 2 ; ++ii) {
232+ for (int dd = 0 ; dd < 9 ; ++dd) {
233+ expected_tot_v[dd] += expected_v[ii * 9 + dd];
234+ }
235+ }
198236 };
199237
200238 void TearDown () override { remove (" deepspin_nlist.pb" ); };
@@ -211,27 +249,27 @@ TYPED_TEST(TestInferDeepSpinNopbc, cpu_build_nlist) {
211249 std::vector<VALUETYPE>& expected_e = this ->expected_e ;
212250 std::vector<VALUETYPE>& expected_f = this ->expected_f ;
213251 std::vector<VALUETYPE>& expected_fm = this ->expected_fm ;
214- // std::vector<VALUETYPE>& expected_v = this->expected_v;
252+ std::vector<VALUETYPE>& expected_v = this ->expected_v ;
215253 int & natoms = this ->natoms ;
216254 double & expected_tot_e = this ->expected_tot_e ;
217- // std::vector<VALUETYPE>& expected_tot_v = this->expected_tot_v;
255+ std::vector<VALUETYPE>& expected_tot_v = this ->expected_tot_v ;
218256 deepmd::DeepSpin& dp = this ->dp ;
219257 double ener;
220258 std::vector<VALUETYPE> force, force_mag, virial;
221259 dp.compute (ener, force, force_mag, virial, coord, spin, atype, box);
222260
223261 EXPECT_EQ (force.size (), natoms * 3 );
224262 EXPECT_EQ (force_mag.size (), natoms * 3 );
225- // EXPECT_EQ(virial.size(), 9);
263+ EXPECT_EQ (virial.size (), 9 );
226264
227265 EXPECT_LT (fabs (ener - expected_tot_e), EPSILON);
228266 for (int ii = 0 ; ii < natoms * 3 ; ++ii) {
229267 EXPECT_LT (fabs (force[ii] - expected_f[ii]), EPSILON);
230268 EXPECT_LT (fabs (force_mag[ii] - expected_fm[ii]), EPSILON);
231269 }
232- // for (int ii = 0; ii < 3 * 3; ++ii) {
233- // EXPECT_LT(fabs(virial[ii] - expected_tot_v[ii]), EPSILON);
234- // }
270+ for (int ii = 0 ; ii < 3 * 3 ; ++ii) {
271+ EXPECT_LT (fabs (virial[ii] - expected_tot_v[ii]), EPSILON);
272+ }
235273}
236274
237275TYPED_TEST (TestInferDeepSpinNopbc, cpu_build_nlist_atomic) {
@@ -243,10 +281,10 @@ TYPED_TEST(TestInferDeepSpinNopbc, cpu_build_nlist_atomic) {
243281 std::vector<VALUETYPE>& expected_e = this ->expected_e ;
244282 std::vector<VALUETYPE>& expected_f = this ->expected_f ;
245283 std::vector<VALUETYPE>& expected_fm = this ->expected_fm ;
246- // std::vector<VALUETYPE>& expected_v = this->expected_v;
284+ std::vector<VALUETYPE>& expected_v = this ->expected_v ;
247285 int & natoms = this ->natoms ;
248286 double & expected_tot_e = this ->expected_tot_e ;
249- // std::vector<VALUETYPE>& expected_tot_v = this->expected_tot_v;
287+ std::vector<VALUETYPE>& expected_tot_v = this ->expected_tot_v ;
250288 deepmd::DeepSpin& dp = this ->dp ;
251289 double ener;
252290 std::vector<VALUETYPE> force, force_mag, virial, atom_ener, atom_vir;
@@ -255,24 +293,24 @@ TYPED_TEST(TestInferDeepSpinNopbc, cpu_build_nlist_atomic) {
255293
256294 EXPECT_EQ (force.size (), natoms * 3 );
257295 EXPECT_EQ (force_mag.size (), natoms * 3 );
258- // EXPECT_EQ(virial.size(), 9);
296+ EXPECT_EQ (virial.size (), 9 );
259297 // EXPECT_EQ(atom_ener.size(), natoms);
260298 EXPECT_LT (fabs (ener - expected_tot_e), EPSILON);
261- // EXPECT_EQ(atom_vir.size(), natoms * 9);
299+ EXPECT_EQ (atom_vir.size (), ( natoms + 2 ) * 9 );
262300
263301 for (int ii = 0 ; ii < natoms * 3 ; ++ii) {
264302 EXPECT_LT (fabs (force[ii] - expected_f[ii]), EPSILON);
265303 EXPECT_LT (fabs (force_mag[ii] - expected_fm[ii]), EPSILON);
266304 }
267- // for (int ii = 0; ii < 3 * 3; ++ii) {
268- // EXPECT_LT(fabs(virial[ii] - expected_tot_v[ii]), EPSILON);
269- // }
305+ for (int ii = 0 ; ii < 3 * 3 ; ++ii) {
306+ EXPECT_LT (fabs (virial[ii] - expected_tot_v[ii]), EPSILON);
307+ }
270308 for (int ii = 0 ; ii < natoms; ++ii) {
271309 EXPECT_LT (fabs (atom_ener[ii] - expected_e[ii]), EPSILON);
272310 }
273- // for (int ii = 0; ii < natoms * 9; ++ii) {
274- // EXPECT_LT(fabs(atom_vir[ii] - expected_v[ii]), EPSILON);
275- // }
311+ for (int ii = 0 ; ii < ( natoms + 2 ) * 9 ; ++ii) {
312+ EXPECT_LT (fabs (atom_vir[ii] - expected_v[ii]), EPSILON);
313+ }
276314}
277315
278316TYPED_TEST (TestInferDeepSpinNopbc, cpu_lmp_nlist) {
@@ -284,10 +322,10 @@ TYPED_TEST(TestInferDeepSpinNopbc, cpu_lmp_nlist) {
284322 std::vector<VALUETYPE>& expected_e = this ->expected_e ;
285323 std::vector<VALUETYPE>& expected_f = this ->expected_f ;
286324 std::vector<VALUETYPE>& expected_fm = this ->expected_fm ;
287- // std::vector<VALUETYPE>& expected_v = this->expected_v;
325+ std::vector<VALUETYPE>& expected_v = this ->expected_v ;
288326 int & natoms = this ->natoms ;
289327 double & expected_tot_e = this ->expected_tot_e ;
290- // std::vector<VALUETYPE>& expected_tot_v = this->expected_tot_v;
328+ std::vector<VALUETYPE>& expected_tot_v = this ->expected_tot_v ;
291329 deepmd::DeepSpin& dp = this ->dp ;
292330 double ener;
293331 std::vector<VALUETYPE> force, force_mag, virial;
@@ -302,16 +340,16 @@ TYPED_TEST(TestInferDeepSpinNopbc, cpu_lmp_nlist) {
302340
303341 EXPECT_EQ (force.size (), natoms * 3 );
304342 EXPECT_EQ (force_mag.size (), natoms * 3 );
305- // EXPECT_EQ(virial.size(), 9);
343+ EXPECT_EQ (virial.size (), 9 );
306344
307345 EXPECT_LT (fabs (ener - expected_tot_e), EPSILON);
308346 for (int ii = 0 ; ii < natoms * 3 ; ++ii) {
309347 EXPECT_LT (fabs (force[ii] - expected_f[ii]), EPSILON);
310348 EXPECT_LT (fabs (force_mag[ii] - expected_fm[ii]), EPSILON);
311349 }
312- // for (int ii = 0; ii < 3 * 3; ++ii) {
313- // EXPECT_LT(fabs(virial[ii] - expected_tot_v[ii]), EPSILON);
314- // }
350+ for (int ii = 0 ; ii < 3 * 3 ; ++ii) {
351+ EXPECT_LT (fabs (virial[ii] - expected_tot_v[ii]), EPSILON);
352+ }
315353}
316354
317355TYPED_TEST (TestInferDeepSpinNopbc, cpu_lmp_nlist_atomic) {
@@ -323,10 +361,10 @@ TYPED_TEST(TestInferDeepSpinNopbc, cpu_lmp_nlist_atomic) {
323361 std::vector<VALUETYPE>& expected_e = this ->expected_e ;
324362 std::vector<VALUETYPE>& expected_f = this ->expected_f ;
325363 std::vector<VALUETYPE>& expected_fm = this ->expected_fm ;
326- // std::vector<VALUETYPE>& expected_v = this->expected_v;
364+ std::vector<VALUETYPE>& expected_v = this ->expected_v ;
327365 int & natoms = this ->natoms ;
328366 double & expected_tot_e = this ->expected_tot_e ;
329- // std::vector<VALUETYPE>& expected_tot_v = this->expected_tot_v;
367+ std::vector<VALUETYPE>& expected_tot_v = this ->expected_tot_v ;
330368 deepmd::DeepSpin& dp = this ->dp ;
331369 double ener;
332370 std::vector<VALUETYPE> force, force_mag, virial, atom_ener, atom_vir;
@@ -341,22 +379,22 @@ TYPED_TEST(TestInferDeepSpinNopbc, cpu_lmp_nlist_atomic) {
341379
342380 EXPECT_EQ (force.size (), natoms * 3 );
343381 EXPECT_EQ (force_mag.size (), natoms * 3 );
344- // EXPECT_EQ(virial.size(), 9);
382+ EXPECT_EQ (virial.size (), 9 );
345383 EXPECT_EQ (atom_ener.size (), natoms);
346- // EXPECT_EQ(atom_vir.size(), natoms * 9);
384+ EXPECT_EQ (atom_vir.size (), natoms * 9 );
347385
348386 EXPECT_LT (fabs (ener - expected_tot_e), EPSILON);
349387 for (int ii = 0 ; ii < natoms * 3 ; ++ii) {
350388 EXPECT_LT (fabs (force[ii] - expected_f[ii]), EPSILON);
351389 EXPECT_LT (fabs (force_mag[ii] - expected_fm[ii]), EPSILON);
352390 }
353- // for (int ii = 0; ii < 3 * 3; ++ii) {
354- // EXPECT_LT(fabs(virial[ii] - expected_tot_v[ii]), EPSILON);
355- // }
391+ for (int ii = 0 ; ii < 3 * 3 ; ++ii) {
392+ EXPECT_LT (fabs (virial[ii] - expected_tot_v[ii]), EPSILON);
393+ }
356394 for (int ii = 0 ; ii < natoms; ++ii) {
357395 EXPECT_LT (fabs (atom_ener[ii] - expected_e[ii]), EPSILON);
358396 }
359- // for (int ii = 0; ii < natoms * 9; ++ii) {
360- // EXPECT_LT(fabs(atom_vir[ii] - expected_v[ii]), EPSILON);
361- // }
397+ for (int ii = 0 ; ii < natoms * 9 ; ++ii) {
398+ EXPECT_LT (fabs (atom_vir[ii] - expected_v[ii]), EPSILON);
399+ }
362400}
0 commit comments