use atom id instead of local index to test per-atom data

This commit is contained in:
Axel Kohlmeyer
2020-06-22 22:19:55 -04:00
parent 13d56f3cad
commit ae0957bd61

View File

@ -36,6 +36,8 @@
#endif
#endif
#define GETIDX(i) lmp->atom->map(i)
// whether to print verbose output (i.e. not capturing LAMMPS screen output).
bool verbose = false;
@ -332,32 +334,33 @@ TEST_F(AtomStyleTest, atomic)
ASSERT_EQ(lmp->atom->molecular, 0);
ASSERT_EQ(lmp->atom->ntypes, 2);
double **x = lmp->atom->x;
double **v = lmp->atom->v;
ASSERT_DOUBLE_EQ(x[0][0], -2.0);
ASSERT_DOUBLE_EQ(x[0][1], 2.0);
ASSERT_DOUBLE_EQ(x[0][2], 0.1);
ASSERT_DOUBLE_EQ(x[1][0], -2.0);
ASSERT_DOUBLE_EQ(x[1][1], -2.0);
ASSERT_DOUBLE_EQ(x[1][2], -0.1);
ASSERT_DOUBLE_EQ(x[2][0], 2.0);
ASSERT_DOUBLE_EQ(x[2][1], 2.0);
ASSERT_DOUBLE_EQ(x[2][2], -0.1);
ASSERT_DOUBLE_EQ(x[3][0], 2.0);
ASSERT_DOUBLE_EQ(x[3][1], -2.0);
ASSERT_DOUBLE_EQ(x[3][2], 0.1);
ASSERT_DOUBLE_EQ(v[0][0], 0.0);
ASSERT_DOUBLE_EQ(v[0][1], 0.0);
ASSERT_DOUBLE_EQ(v[0][2], 0.0);
ASSERT_DOUBLE_EQ(v[1][0], 0.0);
ASSERT_DOUBLE_EQ(v[1][1], 0.0);
ASSERT_DOUBLE_EQ(v[1][2], 0.0);
ASSERT_DOUBLE_EQ(v[2][0], 0.0);
ASSERT_DOUBLE_EQ(v[2][1], 0.0);
ASSERT_DOUBLE_EQ(v[2][2], 0.0);
ASSERT_DOUBLE_EQ(v[3][0], 0.0);
ASSERT_DOUBLE_EQ(v[3][1], 0.0);
ASSERT_DOUBLE_EQ(v[3][2], 0.0);
double **x = lmp->atom->x;
double **v = lmp->atom->v;
tagint *tag = lmp->atom->tag;
ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(2)][0], -2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(2)][1], -2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(2)][2], -0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], -0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(4)][0], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(4)][1], -2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(4)][2], 0.1);
ASSERT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(2)][0], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(2)][1], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(2)][2], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(4)][0], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(4)][1], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(4)][2], 0.0);
ASSERT_DOUBLE_EQ(lmp->atom->mass[1], 4.0);
ASSERT_DOUBLE_EQ(lmp->atom->mass[2], 2.4);
@ -389,18 +392,18 @@ TEST_F(AtomStyleTest, atomic)
x = lmp->atom->x;
v = lmp->atom->v;
ASSERT_DOUBLE_EQ(x[0][0], -2.0);
ASSERT_DOUBLE_EQ(x[0][1], 2.0);
ASSERT_DOUBLE_EQ(x[0][2], 0.1);
ASSERT_DOUBLE_EQ(x[1][0], 2.0);
ASSERT_DOUBLE_EQ(x[1][1], 2.0);
ASSERT_DOUBLE_EQ(x[1][2], -0.1);
ASSERT_DOUBLE_EQ(v[0][0], 0.0);
ASSERT_DOUBLE_EQ(v[0][1], 0.0);
ASSERT_DOUBLE_EQ(v[0][2], 0.0);
ASSERT_DOUBLE_EQ(v[1][0], 0.0);
ASSERT_DOUBLE_EQ(v[1][1], 0.0);
ASSERT_DOUBLE_EQ(v[1][2], 0.0);
ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], -0.1);
ASSERT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0);
ASSERT_DOUBLE_EQ(lmp->atom->mass[1], 4.0);
ASSERT_DOUBLE_EQ(lmp->atom->mass[2], 2.4);
@ -414,6 +417,60 @@ TEST_F(AtomStyleTest, atomic)
if (!verbose) ::testing::internal::GetCapturedStdout();
ASSERT_EQ(lmp->atom->map_tag_max, 2);
ASSERT_EQ(lmp->atom->tag_consecutive(), 1);
if (!verbose) ::testing::internal::CaptureStdout();
lmp->input->one("replicate 2 2 2");
if (!verbose) ::testing::internal::GetCapturedStdout();
ASSERT_EQ(lmp->atom->map_tag_max, 16);
x = lmp->atom->x;
tag = lmp->atom->tag;
ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(2)][0], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(2)][1], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(2)][2], -0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 6.0);
ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], 0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(4)][0], 10.0);
ASSERT_DOUBLE_EQ(x[GETIDX(4)][1], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(4)][2], -0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(5)][0], -2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(5)][1], 10.0);
ASSERT_DOUBLE_EQ(x[GETIDX(5)][2], 0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(6)][0], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(6)][1], 10.0);
ASSERT_DOUBLE_EQ(x[GETIDX(6)][2], -0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(7)][0], 6.0);
ASSERT_DOUBLE_EQ(x[GETIDX(7)][1], 10.0);
ASSERT_DOUBLE_EQ(x[GETIDX(7)][2], 0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(8)][0], 10.0);
ASSERT_DOUBLE_EQ(x[GETIDX(8)][1], 10.0);
ASSERT_DOUBLE_EQ(x[GETIDX(8)][2], -0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(9)][0], -2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(9)][1], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(9)][2], 8.1);
ASSERT_DOUBLE_EQ(x[GETIDX(10)][0], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(10)][1], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(10)][2], 7.9);
ASSERT_DOUBLE_EQ(x[GETIDX(11)][0], 6.0);
ASSERT_DOUBLE_EQ(x[GETIDX(11)][1], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(11)][2], 8.1);
ASSERT_DOUBLE_EQ(x[GETIDX(12)][0], 10.0);
ASSERT_DOUBLE_EQ(x[GETIDX(12)][1], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(12)][2], 7.9);
ASSERT_DOUBLE_EQ(x[GETIDX(13)][0], -2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(13)][1], 10.0);
ASSERT_DOUBLE_EQ(x[GETIDX(13)][2], 8.1);
ASSERT_DOUBLE_EQ(x[GETIDX(14)][0], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(14)][1], 10.0);
ASSERT_DOUBLE_EQ(x[GETIDX(14)][2], 7.9);
ASSERT_DOUBLE_EQ(x[GETIDX(15)][0], 6.0);
ASSERT_DOUBLE_EQ(x[GETIDX(15)][1], 10.0);
ASSERT_DOUBLE_EQ(x[GETIDX(15)][2], 8.1);
ASSERT_DOUBLE_EQ(x[GETIDX(16)][0], 10.0);
ASSERT_DOUBLE_EQ(x[GETIDX(16)][1], 10.0);
ASSERT_DOUBLE_EQ(x[GETIDX(16)][2], 7.9);
}
TEST_F(AtomStyleTest, charge)
@ -664,34 +721,34 @@ TEST_F(AtomStyleTest, charge)
double **x = lmp->atom->x;
double **v = lmp->atom->v;
double *q = lmp->atom->q;
ASSERT_DOUBLE_EQ(x[0][0], -2.0);
ASSERT_DOUBLE_EQ(x[0][1], 2.0);
ASSERT_DOUBLE_EQ(x[0][2], 0.1);
ASSERT_DOUBLE_EQ(x[1][0], -2.0);
ASSERT_DOUBLE_EQ(x[1][1], -2.0);
ASSERT_DOUBLE_EQ(x[1][2], -0.1);
ASSERT_DOUBLE_EQ(x[2][0], 2.0);
ASSERT_DOUBLE_EQ(x[2][1], 2.0);
ASSERT_DOUBLE_EQ(x[2][2], -0.1);
ASSERT_DOUBLE_EQ(x[3][0], 2.0);
ASSERT_DOUBLE_EQ(x[3][1], -2.0);
ASSERT_DOUBLE_EQ(x[3][2], 0.1);
ASSERT_DOUBLE_EQ(v[0][0], 0.0);
ASSERT_DOUBLE_EQ(v[0][1], 0.0);
ASSERT_DOUBLE_EQ(v[0][2], 0.0);
ASSERT_DOUBLE_EQ(v[1][0], 0.0);
ASSERT_DOUBLE_EQ(v[1][1], 0.0);
ASSERT_DOUBLE_EQ(v[1][2], 0.0);
ASSERT_DOUBLE_EQ(v[2][0], 0.0);
ASSERT_DOUBLE_EQ(v[2][1], 0.0);
ASSERT_DOUBLE_EQ(v[2][2], 0.0);
ASSERT_DOUBLE_EQ(v[3][0], 0.0);
ASSERT_DOUBLE_EQ(v[3][1], 0.0);
ASSERT_DOUBLE_EQ(v[3][2], 0.0);
ASSERT_DOUBLE_EQ(q[0], -0.5);
ASSERT_DOUBLE_EQ(q[1], 0.5);
ASSERT_DOUBLE_EQ(q[2], -1.0);
ASSERT_DOUBLE_EQ(q[3], 1.0);
ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(2)][0], -2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(2)][1], -2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(2)][2], -0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], -0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(4)][0], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(4)][1], -2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(4)][2], 0.1);
ASSERT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(2)][0], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(2)][1], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(2)][2], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(4)][0], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(4)][1], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(4)][2], 0.0);
ASSERT_DOUBLE_EQ(q[GETIDX(1)], -0.5);
ASSERT_DOUBLE_EQ(q[GETIDX(2)], 0.5);
ASSERT_DOUBLE_EQ(q[GETIDX(3)], -1.0);
ASSERT_DOUBLE_EQ(q[GETIDX(4)], 1.0);
ASSERT_DOUBLE_EQ(lmp->atom->mass[1], 4.0);
ASSERT_DOUBLE_EQ(lmp->atom->mass[2], 2.4);
@ -704,7 +761,7 @@ TEST_F(AtomStyleTest, charge)
lmp->input->one("delete_atoms group two compress no");
lmp->input->one("write_restart test_atom_styles.restart");
lmp->input->one("clear");
ASSERT_THAT(std::string(lmp->atom->atom_style), Eq("atomic"));
EXPECT_THAT(std::string(lmp->atom->atom_style), Eq("atomic"));
lmp->input->one("read_restart test_atom_styles.restart");
if (!verbose) ::testing::internal::GetCapturedStdout();
ASSERT_THAT(std::string(lmp->atom->atom_style), Eq("charge"));
@ -722,25 +779,48 @@ TEST_F(AtomStyleTest, charge)
x = lmp->atom->x;
v = lmp->atom->v;
q = lmp->atom->q;
ASSERT_DOUBLE_EQ(x[0][0], -2.0);
ASSERT_DOUBLE_EQ(x[0][1], 2.0);
ASSERT_DOUBLE_EQ(x[0][2], 0.1);
ASSERT_DOUBLE_EQ(x[1][0], 2.0);
ASSERT_DOUBLE_EQ(x[1][1], 2.0);
ASSERT_DOUBLE_EQ(x[1][2], -0.1);
ASSERT_DOUBLE_EQ(v[0][0], 0.0);
ASSERT_DOUBLE_EQ(v[0][1], 0.0);
ASSERT_DOUBLE_EQ(v[0][2], 0.0);
ASSERT_DOUBLE_EQ(v[1][0], 0.0);
ASSERT_DOUBLE_EQ(v[1][1], 0.0);
ASSERT_DOUBLE_EQ(v[1][2], 0.0);
ASSERT_DOUBLE_EQ(q[0], -0.5);
ASSERT_DOUBLE_EQ(q[1], -1.0);
ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], -0.1);
ASSERT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0);
ASSERT_DOUBLE_EQ(q[GETIDX(1)], -0.5);
ASSERT_DOUBLE_EQ(q[GETIDX(3)], -1.0);
ASSERT_DOUBLE_EQ(lmp->atom->mass[1], 4.0);
ASSERT_DOUBLE_EQ(lmp->atom->mass[2], 2.4);
ASSERT_EQ(lmp->atom->mass_setflag[1], 1);
ASSERT_EQ(lmp->atom->mass_setflag[2], 1);
if (!verbose) ::testing::internal::CaptureStdout();
lmp->input->one("reset_ids");
lmp->input->one("replicate 2 2 2");
if (!verbose) ::testing::internal::GetCapturedStdout();
ASSERT_EQ(lmp->atom->map_tag_max, 16);
q = lmp->atom->q;
ASSERT_DOUBLE_EQ(q[GETIDX(1)], -0.5);
ASSERT_DOUBLE_EQ(q[GETIDX(2)], -1.0);
ASSERT_DOUBLE_EQ(q[GETIDX(3)], -0.5);
ASSERT_DOUBLE_EQ(q[GETIDX(4)], -1.0);
ASSERT_DOUBLE_EQ(q[GETIDX(5)], -0.5);
ASSERT_DOUBLE_EQ(q[GETIDX(6)], -1.0);
ASSERT_DOUBLE_EQ(q[GETIDX(7)], -0.5);
ASSERT_DOUBLE_EQ(q[GETIDX(8)], -1.0);
ASSERT_DOUBLE_EQ(q[GETIDX(9)], -0.5);
ASSERT_DOUBLE_EQ(q[GETIDX(10)], -1.0);
ASSERT_DOUBLE_EQ(q[GETIDX(11)], -0.5);
ASSERT_DOUBLE_EQ(q[GETIDX(12)], -1.0);
ASSERT_DOUBLE_EQ(q[GETIDX(13)], -0.5);
ASSERT_DOUBLE_EQ(q[GETIDX(14)], -1.0);
ASSERT_DOUBLE_EQ(q[GETIDX(15)], -0.5);
ASSERT_DOUBLE_EQ(q[GETIDX(16)], -1.0);
}
TEST_F(AtomStyleTest, sphere)
@ -993,50 +1073,50 @@ TEST_F(AtomStyleTest, sphere)
ASSERT_EQ(lmp->atom->map_user, 1);
ASSERT_EQ(lmp->atom->map_tag_max, 4);
double **x = lmp->atom->x;
double **v = lmp->atom->v;
double *rmass = lmp->atom->rmass;
double **x = lmp->atom->x;
double **v = lmp->atom->v;
double *rmass = lmp->atom->rmass;
double **omega = lmp->atom->omega;
ASSERT_DOUBLE_EQ(x[0][0], -2.0);
ASSERT_DOUBLE_EQ(x[0][1], 2.0);
ASSERT_DOUBLE_EQ(x[0][2], 0.1);
ASSERT_DOUBLE_EQ(x[1][0], -2.0);
ASSERT_DOUBLE_EQ(x[1][1], -2.0);
ASSERT_DOUBLE_EQ(x[1][2], -0.1);
ASSERT_DOUBLE_EQ(x[2][0], 2.0);
ASSERT_DOUBLE_EQ(x[2][1], 2.0);
ASSERT_DOUBLE_EQ(x[2][2], -0.1);
ASSERT_DOUBLE_EQ(x[3][0], 2.0);
ASSERT_DOUBLE_EQ(x[3][1], -2.0);
ASSERT_DOUBLE_EQ(x[3][2], 0.1);
ASSERT_DOUBLE_EQ(v[0][0], 0.0);
ASSERT_DOUBLE_EQ(v[0][1], 0.0);
ASSERT_DOUBLE_EQ(v[0][2], 0.0);
ASSERT_DOUBLE_EQ(v[1][0], 0.0);
ASSERT_DOUBLE_EQ(v[1][1], 0.0);
ASSERT_DOUBLE_EQ(v[1][2], 0.0);
ASSERT_DOUBLE_EQ(v[2][0], 0.0);
ASSERT_DOUBLE_EQ(v[2][1], 0.0);
ASSERT_DOUBLE_EQ(v[2][2], 0.0);
ASSERT_DOUBLE_EQ(v[3][0], 0.0);
ASSERT_DOUBLE_EQ(v[3][1], 0.0);
ASSERT_DOUBLE_EQ(v[3][2], 0.0);
ASSERT_DOUBLE_EQ(rmass[0], 4.0);
ASSERT_DOUBLE_EQ(rmass[1], 4.0);
ASSERT_DOUBLE_EQ(rmass[2], 2.4);
ASSERT_DOUBLE_EQ(rmass[3], 2.4);
ASSERT_DOUBLE_EQ(omega[0][0], -0.5);
ASSERT_DOUBLE_EQ(omega[0][1], 0.1);
ASSERT_DOUBLE_EQ(omega[0][2], 0.1);
ASSERT_DOUBLE_EQ(omega[1][0], 0.5);
ASSERT_DOUBLE_EQ(omega[1][1], -0.1);
ASSERT_DOUBLE_EQ(omega[1][2], -0.1);
ASSERT_DOUBLE_EQ(omega[2][0], -1.0);
ASSERT_DOUBLE_EQ(omega[2][1], 0.0);
ASSERT_DOUBLE_EQ(omega[2][2], 0.0);
ASSERT_DOUBLE_EQ(omega[3][0], 0.0);
ASSERT_DOUBLE_EQ(omega[3][1], 1.0);
ASSERT_DOUBLE_EQ(omega[3][2], 0.0);
ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(2)][0], -2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(2)][1], -2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(2)][2], -0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], -0.1);
ASSERT_DOUBLE_EQ(x[GETIDX(4)][0], 2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(4)][1], -2.0);
ASSERT_DOUBLE_EQ(x[GETIDX(4)][2], 0.1);
ASSERT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(2)][0], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(2)][1], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(2)][2], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(4)][0], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(4)][1], 0.0);
ASSERT_DOUBLE_EQ(v[GETIDX(4)][2], 0.0);
ASSERT_DOUBLE_EQ(rmass[GETIDX(1)], 4.0);
ASSERT_DOUBLE_EQ(rmass[GETIDX(2)], 4.0);
ASSERT_DOUBLE_EQ(rmass[GETIDX(3)], 2.4);
ASSERT_DOUBLE_EQ(rmass[GETIDX(4)], 2.4);
ASSERT_DOUBLE_EQ(omega[GETIDX(1)][0], -0.5);
ASSERT_DOUBLE_EQ(omega[GETIDX(1)][1], 0.1);
ASSERT_DOUBLE_EQ(omega[GETIDX(1)][2], 0.1);
ASSERT_DOUBLE_EQ(omega[GETIDX(2)][0], 0.5);
ASSERT_DOUBLE_EQ(omega[GETIDX(2)][1], -0.1);
ASSERT_DOUBLE_EQ(omega[GETIDX(2)][2], -0.1);
ASSERT_DOUBLE_EQ(omega[GETIDX(3)][0], -1.0);
ASSERT_DOUBLE_EQ(omega[GETIDX(3)][1], 0.0);
ASSERT_DOUBLE_EQ(omega[GETIDX(3)][2], 0.0);
ASSERT_DOUBLE_EQ(omega[GETIDX(4)][0], 0.0);
ASSERT_DOUBLE_EQ(omega[GETIDX(4)][1], 1.0);
ASSERT_DOUBLE_EQ(omega[GETIDX(4)][2], 0.0);
if (!verbose) ::testing::internal::CaptureStdout();
lmp->input->one("pair_coeff * *");
@ -1044,45 +1124,41 @@ TEST_F(AtomStyleTest, sphere)
lmp->input->one("delete_atoms group two compress no");
lmp->input->one("write_restart test_atom_styles.restart");
lmp->input->one("clear");
ASSERT_THAT(std::string(lmp->atom->atom_style), Eq("atomic"));
EXPECT_THAT(std::string(lmp->atom->atom_style), Eq("atomic"));
lmp->input->one("read_restart test_atom_styles.restart");
lmp->input->one("replicate 1 1 2");
lmp->input->one("reset_ids");
if (!verbose) ::testing::internal::GetCapturedStdout();
ASSERT_THAT(std::string(lmp->atom->atom_style), Eq("sphere"));
ASSERT_NE(lmp->atom->avec, nullptr);
ASSERT_EQ(lmp->atom->natoms, 2);
ASSERT_EQ(lmp->atom->nlocal, 2);
ASSERT_EQ(lmp->atom->natoms, 4);
ASSERT_EQ(lmp->atom->nlocal, 4);
ASSERT_EQ(lmp->atom->nghost, 0);
ASSERT_NE(lmp->atom->nmax, -1);
ASSERT_EQ(lmp->atom->tag_enable, 1);
ASSERT_EQ(lmp->atom->molecular, 0);
ASSERT_EQ(lmp->atom->ntypes, 2);
ASSERT_EQ(lmp->atom->tag_consecutive(), 0);
ASSERT_EQ(lmp->atom->map_tag_max, 3);
ASSERT_EQ(lmp->atom->tag_consecutive(), 1);
ASSERT_EQ(lmp->atom->map_tag_max, 4);
x = lmp->atom->x;
v = lmp->atom->v;
rmass = lmp->atom->rmass;
omega = lmp->atom->omega;
ASSERT_DOUBLE_EQ(x[0][0], -2.0);
ASSERT_DOUBLE_EQ(x[0][1], 2.0);
ASSERT_DOUBLE_EQ(x[0][2], 0.1);
ASSERT_DOUBLE_EQ(x[1][0], 2.0);
ASSERT_DOUBLE_EQ(x[1][1], 2.0);
ASSERT_DOUBLE_EQ(x[1][2], -0.1);
ASSERT_DOUBLE_EQ(v[0][0], 0.0);
ASSERT_DOUBLE_EQ(v[0][1], 0.0);
ASSERT_DOUBLE_EQ(v[0][2], 0.0);
ASSERT_DOUBLE_EQ(v[1][0], 0.0);
ASSERT_DOUBLE_EQ(v[1][1], 0.0);
ASSERT_DOUBLE_EQ(v[1][2], 0.0);
ASSERT_DOUBLE_EQ(rmass[0], 4.0);
ASSERT_DOUBLE_EQ(rmass[1], 2.4);
ASSERT_DOUBLE_EQ(omega[0][0], -0.5);
ASSERT_DOUBLE_EQ(omega[0][1], 0.1);
ASSERT_DOUBLE_EQ(omega[0][2], 0.1);
ASSERT_DOUBLE_EQ(omega[1][0], -1.0);
ASSERT_DOUBLE_EQ(omega[1][1], 0.0);
ASSERT_DOUBLE_EQ(omega[1][2], 0.0);
ASSERT_DOUBLE_EQ(rmass[GETIDX(1)], 4.0);
ASSERT_DOUBLE_EQ(rmass[GETIDX(2)], 2.4);
ASSERT_DOUBLE_EQ(rmass[GETIDX(3)], 4.0);
ASSERT_DOUBLE_EQ(rmass[GETIDX(4)], 2.4);
ASSERT_DOUBLE_EQ(omega[GETIDX(1)][0], -0.5);
ASSERT_DOUBLE_EQ(omega[GETIDX(1)][1], 0.1);
ASSERT_DOUBLE_EQ(omega[GETIDX(1)][2], 0.1);
ASSERT_DOUBLE_EQ(omega[GETIDX(2)][0], -1.0);
ASSERT_DOUBLE_EQ(omega[GETIDX(2)][1], 0.0);
ASSERT_DOUBLE_EQ(omega[GETIDX(2)][2], 0.0);
ASSERT_DOUBLE_EQ(omega[GETIDX(3)][0], -0.5);
ASSERT_DOUBLE_EQ(omega[GETIDX(3)][1], 0.1);
ASSERT_DOUBLE_EQ(omega[GETIDX(3)][2], 0.1);
ASSERT_DOUBLE_EQ(omega[GETIDX(4)][0], -1.0);
ASSERT_DOUBLE_EQ(omega[GETIDX(4)][1], 0.0);
ASSERT_DOUBLE_EQ(omega[GETIDX(4)][2], 0.0);
}
} // namespace LAMMPS_NS