store LAMMPS version of restart, if initialized from restart file

This commit is contained in:
Axel Kohlmeyer
2022-11-10 02:24:35 -05:00
parent 1fa7308ade
commit 4392b9c8cb
4 changed files with 12 additions and 0 deletions

View File

@ -130,6 +130,7 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) :
version = (const char *) LAMMPS_VERSION;
num_ver = utils::date2num(version);
restart_ver = -1;
external_comm = 0;
mdicomm = nullptr;
@ -993,6 +994,8 @@ void LAMMPS::destroy()
delete python;
python = nullptr;
restart_ver = -1; // reset last restart version id
}
/* ----------------------------------------------------------------------

View File

@ -49,6 +49,8 @@ class LAMMPS {
// that is constructed so that will be greater
// for newer versions in numeric or string
// value comparisons
int restart_ver; // -1 or numeric version id of LAMMPS version in restart
// file, in case LAMMPS was initialized from a restart
//
MPI_Comm world; // MPI communicator
FILE *infile; // infile

View File

@ -599,6 +599,8 @@ void ReadRestart::header()
if (flag == VERSION) {
char *version = read_string();
lmp->restart_ver = utils::date2num(version);
if (me == 0)
utils::logmesg(lmp," restart file = {}, LAMMPS = {}\n", version, lmp->version);
delete[] version;

View File

@ -303,6 +303,7 @@ TEST_F(FileOperationsTest, error_all_one)
TEST_F(FileOperationsTest, write_restart)
{
ASSERT_EQ(lmp->restart_ver, -1);
BEGIN_HIDE_OUTPUT();
command("echo none");
END_HIDE_OUTPUT();
@ -356,6 +357,7 @@ TEST_F(FileOperationsTest, write_restart)
BEGIN_HIDE_OUTPUT();
command("clear");
END_HIDE_OUTPUT();
ASSERT_EQ(lmp->restart_ver, -1);
ASSERT_EQ(lmp->atom->natoms, 0);
ASSERT_EQ(lmp->update->ntimestep, 0);
ASSERT_EQ(lmp->domain->triclinic, 0);
@ -369,18 +371,21 @@ TEST_F(FileOperationsTest, write_restart)
command("change_box all triclinic");
command("write_restart triclinic.restart");
END_HIDE_OUTPUT();
ASSERT_EQ(lmp->restart_ver, lmp->num_ver);
ASSERT_EQ(lmp->atom->natoms, 1);
ASSERT_EQ(lmp->update->ntimestep, 333);
ASSERT_EQ(lmp->domain->triclinic, 1);
BEGIN_HIDE_OUTPUT();
command("clear");
END_HIDE_OUTPUT();
ASSERT_EQ(lmp->restart_ver, -1);
ASSERT_EQ(lmp->atom->natoms, 0);
ASSERT_EQ(lmp->update->ntimestep, 0);
ASSERT_EQ(lmp->domain->triclinic, 0);
BEGIN_HIDE_OUTPUT();
command("read_restart triclinic.restart");
END_HIDE_OUTPUT();
ASSERT_EQ(lmp->restart_ver, lmp->num_ver);
ASSERT_EQ(lmp->atom->natoms, 1);
ASSERT_EQ(lmp->update->ntimestep, 333);
ASSERT_EQ(lmp->domain->triclinic, 1);