forked from lijiext/lammps
detect and error out when timestep was reset when restarting fixes atom/swap, gcmc, or deposit
This commit is contained in:
parent
4243af30d7
commit
f73c848ee4
|
@ -777,6 +777,7 @@ void FixAtomSwap::write_restart(FILE *fp)
|
|||
list[n++] = ubuf(next_reneighbor).d;
|
||||
list[n++] = nswap_attempts;
|
||||
list[n++] = nswap_successes;
|
||||
list[n++] = ubuf(update->ntimestep).d;
|
||||
|
||||
if (comm->me == 0) {
|
||||
int size = n * sizeof(double);
|
||||
|
@ -804,4 +805,8 @@ void FixAtomSwap::restart(char *buf)
|
|||
|
||||
nswap_attempts = static_cast<int>(list[n++]);
|
||||
nswap_successes = static_cast<int>(list[n++]);
|
||||
|
||||
bigint ntimestep_restart = (bigint) ubuf(list[n++]).i;
|
||||
if (ntimestep_restart != update->ntimestep)
|
||||
error->all(FLERR,"Must not reset timestep when restarting fix atom/swap");
|
||||
}
|
||||
|
|
|
@ -2543,7 +2543,7 @@ void FixGCMC::write_restart(FILE *fp)
|
|||
list[n++] = ndeletion_successes;
|
||||
list[n++] = ninsertion_attempts;
|
||||
list[n++] = ninsertion_successes;
|
||||
|
||||
list[n++] = ubuf(update->ntimestep).d;
|
||||
|
||||
if (comm->me == 0) {
|
||||
int size = n * sizeof(double);
|
||||
|
@ -2577,6 +2577,10 @@ void FixGCMC::restart(char *buf)
|
|||
ndeletion_successes = list[n++];
|
||||
ninsertion_attempts = list[n++];
|
||||
ninsertion_successes = list[n++];
|
||||
|
||||
bigint ntimestep_restart = (bigint) ubuf(list[n++]).i;
|
||||
if (ntimestep_restart != update->ntimestep)
|
||||
error->all(FLERR,"Must not reset timestep when restarting fix gcmc");
|
||||
}
|
||||
|
||||
void FixGCMC::grow_molecule_arrays(int nmolatoms) {
|
||||
|
|
|
@ -798,11 +798,12 @@ void FixDeposit::options(int narg, char **arg)
|
|||
void FixDeposit::write_restart(FILE *fp)
|
||||
{
|
||||
int n = 0;
|
||||
double list[4];
|
||||
double list[5];
|
||||
list[n++] = random->state();
|
||||
list[n++] = ninserted;
|
||||
list[n++] = nfirst;
|
||||
list[n++] = ubuf(next_reneighbor).d;
|
||||
list[n++] = ubuf(update->ntimestep).d;
|
||||
|
||||
if (comm->me == 0) {
|
||||
int size = n * sizeof(double);
|
||||
|
@ -825,6 +826,10 @@ void FixDeposit::restart(char *buf)
|
|||
nfirst = static_cast<int> (list[n++]);
|
||||
next_reneighbor = (bigint) ubuf(list[n++]).i;
|
||||
|
||||
bigint ntimestep_restart = (bigint) ubuf(list[n++]).i;
|
||||
if (ntimestep_restart != update->ntimestep)
|
||||
error->all(FLERR,"Must not reset timestep when restarting this fix");
|
||||
|
||||
random->reset(seed);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue