Merge pull request #1003 from akohlmey/restart_extra_flags

include support for 'extra/XXX/per/atom' info in restart files
This commit is contained in:
Steve Plimpton 2018-07-16 15:07:43 -06:00 committed by GitHub
commit a3b6f38a42
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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;