make Force::special_lj and Force::special_coul accessible through the library interface

This commit is contained in:
Axel Kohlmeyer
2023-03-15 18:39:32 -04:00
parent 88c8781396
commit fa9062a87e
4 changed files with 41 additions and 1 deletions

View File

@ -297,6 +297,7 @@ TEST_F(LibraryProperties, global)
std::string input = path_join(INPUT_DIR, "in.fourmol");
if (!verbose) ::testing::internal::CaptureStdout();
lammps_command(lmp, "special_bonds lj 0.0 0.5 0.8 coul 0.1 0.5 1.0");
lammps_file(lmp, input.c_str());
lammps_command(lmp, "run 2 post no");
if (!verbose) ::testing::internal::GetCapturedStdout();
@ -321,6 +322,26 @@ TEST_F(LibraryProperties, global)
EXPECT_EQ(lammps_extract_global_datatype(lmp, "dt"), LAMMPS_DOUBLE);
double *d_ptr = (double *)lammps_extract_global(lmp, "dt");
EXPECT_DOUBLE_EQ((*d_ptr), 0.1);
EXPECT_EQ(lammps_extract_global_datatype(lmp, "special_lj"), LAMMPS_DOUBLE);
EXPECT_EQ(lammps_extract_global_datatype(lmp, "special_coul"), LAMMPS_DOUBLE);
double *special_lj = (double *)lammps_extract_global(lmp, "special_lj");
double *special_coul= (double *)lammps_extract_global(lmp, "special_coul");
EXPECT_DOUBLE_EQ(special_lj[0], 1.0);
EXPECT_DOUBLE_EQ(special_lj[1], 0.0);
EXPECT_DOUBLE_EQ(special_lj[2], 0.5);
EXPECT_DOUBLE_EQ(special_lj[3], 0.8);
EXPECT_DOUBLE_EQ(special_coul[0], 1.0);
EXPECT_DOUBLE_EQ(special_coul[1], 0.1);
EXPECT_DOUBLE_EQ(special_coul[2], 0.5);
EXPECT_DOUBLE_EQ(special_coul[3], 1.0);
lammps_command(lmp, "special_bonds lj/coul 1.0 1.0 1.0");
EXPECT_DOUBLE_EQ(special_lj[1], 1.0);
EXPECT_DOUBLE_EQ(special_lj[2], 1.0);
EXPECT_DOUBLE_EQ(special_lj[3], 1.0);
EXPECT_DOUBLE_EQ(special_coul[1], 1.0);
EXPECT_DOUBLE_EQ(special_coul[2], 1.0);
EXPECT_DOUBLE_EQ(special_coul[3], 1.0);
};
TEST_F(LibraryProperties, neighlist)

View File

@ -536,6 +536,7 @@ create_atoms 1 single &
def test_extract_global(self):
self.lmp.command("region box block -1 1 -2 2 -3 3")
self.lmp.command("create_box 1 box")
self.lmp.command("special_bonds lj 0.0 0.5 0.8 coul 0.1 0.5 1.0")
self.assertEqual(self.lmp.extract_global("units"), "lj")
self.assertEqual(self.lmp.extract_global("ntimestep"), 0)
self.assertEqual(self.lmp.extract_global("dt"), 0.005)
@ -552,10 +553,15 @@ create_atoms 1 single &
self.assertEqual(self.lmp.extract_global("subhi"), [1.0, 2.0, 3.0])
self.assertEqual(self.lmp.extract_global("periodicity"), [1,1,1])
self.assertEqual(self.lmp.extract_global("triclinic"), 0)
self.assertEqual(self.lmp.extract_global("special_lj"), [1.0, 0.0, 0.5, 0.8])
self.assertEqual(self.lmp.extract_global("special_coul"), [1.0, 0.1, 0.5, 1.0])
self.assertEqual(self.lmp.extract_global("sublo_lambda"), None)
self.assertEqual(self.lmp.extract_global("subhi_lambda"), None)
self.assertEqual(self.lmp.extract_global("respa_levels"), None)
self.assertEqual(self.lmp.extract_global("respa_dt"), None)
self.lmp.command("special_bonds lj/coul 0.0 1.0 1.0")
self.assertEqual(self.lmp.extract_global("special_lj"), [1.0, 0.0, 1.0, 1.0])
self.assertEqual(self.lmp.extract_global("special_coul"), [1.0, 0.0, 1.0, 1.0])
# set and initialize r-RESPA
self.lmp.command("run_style respa 3 5 2 pair 2 kspace 3")