diff --git a/src/library.cpp b/src/library.cpp index e6b14dafd3..a8acbade52 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -1622,6 +1622,11 @@ int lammps_extract_global_datatype(void * /*handle*/, const char *name) if (strcmp(name,"neigh_dihedrallist") == 0) return LAMMPS_INT_2D; if (strcmp(name,"neigh_improperlist") == 0) return LAMMPS_INT_2D; + if (strcmp(name,"eflag_global") == 0) return LAMMPS_BIGINT; + if (strcmp(name,"eflag_atom") == 0) return LAMMPS_BIGINT; + if (strcmp(name,"vflag_global") == 0) return LAMMPS_BIGINT; + if (strcmp(name,"vflag_atom") == 0) return LAMMPS_BIGINT; + if (strcmp(name,"map_style") == 0) return LAMMPS_INT; #if defined(LAMMPS_BIGBIG) if (strcmp(name,"map_tag_max") == 0) return LAMMPS_BIGINT; @@ -1707,6 +1712,7 @@ report the "native" data type. The following tables are provided: * :ref:`Simulation box settings ` * :ref:`System property settings ` * :ref:`Neighbor topology data ` +* :ref:`Energy and virial tally settings ` * :ref:`Git revision and version settings ` * :ref:`Unit settings ` @@ -1984,6 +1990,35 @@ Get length of lists with :ref:`lammps_extract_setting() atom->q_flag; - if (strcmp(name,"neigh_bondlist") == 0) return lmp->neighbor->bondlist; - if (strcmp(name,"neigh_anglelist") == 0) return lmp->neighbor->anglelist; - if (strcmp(name,"neigh_dihedrallist") == 0) return lmp->neighbor->dihedrallist; - if (strcmp(name,"neigh_improperlist") == 0) return lmp->neighbor->improperlist; + if (strcmp(name,"neigh_bondlist") == 0) return (void *) lmp->neighbor->bondlist; + if (strcmp(name,"neigh_anglelist") == 0) return (void *) lmp->neighbor->anglelist; + if (strcmp(name,"neigh_dihedrallist") == 0) return (void *) lmp->neighbor->dihedrallist; + if (strcmp(name,"neigh_improperlist") == 0) return (void *) lmp->neighbor->improperlist; + + if (strcmp(name,"eflag_global") == 0) return (void *) &lmp->update->eflag_global; + if (strcmp(name,"eflag_atom") == 0) return (void *) &lmp->update->eflag_atom; + if (strcmp(name,"vflag_global") == 0) return (void *) &lmp->update->vflag_global; + if (strcmp(name,"vflag_atom") == 0) return (void *) &lmp->update->vflag_atom; if (strcmp(name,"map_style") == 0) return (void *) &lmp->atom->map_style; if (strcmp(name,"map_tag_max") == 0) return (void *) &lmp->atom->map_tag_max; diff --git a/unittest/c-library/test_library_properties.cpp b/unittest/c-library/test_library_properties.cpp index e2149d98e6..033e9c041e 100644 --- a/unittest/c-library/test_library_properties.cpp +++ b/unittest/c-library/test_library_properties.cpp @@ -387,6 +387,19 @@ TEST_F(LibraryProperties, global) auto *b_ptr = (int64_t *)lammps_extract_global(lmp, "ntimestep"); EXPECT_EQ((*b_ptr), 2); + EXPECT_EQ(lammps_extract_global_datatype(lmp, "eflag_global"), LAMMPS_BIGINT); + b_ptr = (bigint *)lammps_extract_global(lmp, "eflag_global"); + EXPECT_EQ((*b_ptr), 2); + EXPECT_EQ(lammps_extract_global_datatype(lmp, "eflag_atom"), LAMMPS_BIGINT); + b_ptr = (bigint *)lammps_extract_global(lmp, "eflag_atom"); + EXPECT_EQ((*b_ptr), 0); + EXPECT_EQ(lammps_extract_global_datatype(lmp, "vflag_global"), LAMMPS_BIGINT); + b_ptr = (bigint *)lammps_extract_global(lmp, "vflag_global"); + EXPECT_EQ((*b_ptr), 2); + EXPECT_EQ(lammps_extract_global_datatype(lmp, "vflag_atom"), LAMMPS_BIGINT); + b_ptr = (bigint *)lammps_extract_global(lmp, "vflag_atom"); + EXPECT_EQ((*b_ptr), 0); + EXPECT_EQ(lammps_extract_global_datatype(lmp, "dt"), LAMMPS_DOUBLE); auto *d_ptr = (double *)lammps_extract_global(lmp, "dt"); EXPECT_DOUBLE_EQ((*d_ptr), 0.1);