add support for restarting extra/XXX/per/atom settings in binary restarts

This commit is contained in:
Axel Kohlmeyer 2018-07-16 15:21:52 -04:00
parent c589029219
commit 783839e985
2 changed files with 23 additions and 2 deletions

View File

@ -62,7 +62,9 @@ enum{VERSION,SMALLINT,TAGINT,BIGINT,
MULTIPROC,MPIIO,PROCSPERFILE,PERPROC,
IMAGEINT,BOUNDMIN,TIMESTEP,
ATOM_ID,ATOM_MAP_STYLE,ATOM_MAP_USER,ATOM_SORTFREQ,ATOM_SORTBIN,
COMM_MODE,COMM_CUTOFF,COMM_VEL,NO_PAIR};
COMM_MODE,COMM_CUTOFF,COMM_VEL,NO_PAIR,
EXTRA_BOND_PER_ATOM,EXTRA_ANGLE_PER_ATOM,EXTRA_DIHEDRAL_PER_ATOM,
EXTRA_IMPROPER_PER_ATOM,EXTRA_SPECIAL_PER_ATOM};
#define LB_FACTOR 1.1
@ -914,6 +916,17 @@ void ReadRestart::header(int incompatible)
} else if (flag == COMM_VEL) {
comm->ghost_velocity = read_int();
} else if (flag == EXTRA_BOND_PER_ATOM) {
atom->extra_bond_per_atom = read_int();
} else if (flag == EXTRA_ANGLE_PER_ATOM) {
atom->extra_angle_per_atom = read_int();
} else if (flag == EXTRA_DIHEDRAL_PER_ATOM) {
atom->extra_dihedral_per_atom = read_int();
} else if (flag == EXTRA_IMPROPER_PER_ATOM) {
atom->extra_improper_per_atom = read_int();
} else if (flag == EXTRA_SPECIAL_PER_ATOM) {
force->special_extra = read_int();
} else error->all(FLERR,"Invalid flag in header section of restart file");
flag = read_int();

View File

@ -61,7 +61,9 @@ enum{VERSION,SMALLINT,TAGINT,BIGINT,
MULTIPROC,MPIIO,PROCSPERFILE,PERPROC,
IMAGEINT,BOUNDMIN,TIMESTEP,
ATOM_ID,ATOM_MAP_STYLE,ATOM_MAP_USER,ATOM_SORTFREQ,ATOM_SORTBIN,
COMM_MODE,COMM_CUTOFF,COMM_VEL,NO_PAIR};
COMM_MODE,COMM_CUTOFF,COMM_VEL,NO_PAIR,
EXTRA_BOND_PER_ATOM,EXTRA_ANGLE_PER_ATOM,EXTRA_DIHEDRAL_PER_ATOM,
EXTRA_IMPROPER_PER_ATOM,EXTRA_SPECIAL_PER_ATOM};
/* ---------------------------------------------------------------------- */
@ -527,6 +529,12 @@ void WriteRestart::header()
write_double(COMM_CUTOFF,comm->cutghostuser);
write_int(COMM_VEL,comm->ghost_velocity);
write_int(EXTRA_BOND_PER_ATOM,atom->extra_bond_per_atom);
write_int(EXTRA_ANGLE_PER_ATOM,atom->extra_angle_per_atom);
write_int(EXTRA_DIHEDRAL_PER_ATOM,atom->extra_dihedral_per_atom);
write_int(EXTRA_IMPROPER_PER_ATOM,atom->extra_improper_per_atom);
write_int(EXTRA_SPECIAL_PER_ATOM,force->special_extra);
// -1 flag signals end of header
int flag = -1;