strip style suffixes when writing restart files if suffixes are enabled
This commit is contained in:
@ -925,8 +925,8 @@ Fix *Modify::add_fix(int narg, char **arg, int trysuffix)
|
|||||||
// if yes, pass state info to the Fix so it can reset itself
|
// if yes, pass state info to the Fix so it can reset itself
|
||||||
|
|
||||||
for (int i = 0; i < nfix_restart_global; i++)
|
for (int i = 0; i < nfix_restart_global; i++)
|
||||||
if (strcmp(id_restart_global[i], fix[ifix]->id) == 0 &&
|
if ((strcmp(id_restart_global[i], fix[ifix]->id) == 0) &&
|
||||||
strcmp(style_restart_global[i], fix[ifix]->style) == 0) {
|
(utils::strip_style_suffix(fix[ifix]->style, lmp) == style_restart_global[i])) {
|
||||||
fix[ifix]->restart(state_restart_global[i]);
|
fix[ifix]->restart(state_restart_global[i]);
|
||||||
used_restart_global[i] = 1;
|
used_restart_global[i] = 1;
|
||||||
fix[ifix]->restart_reset = 1;
|
fix[ifix]->restart_reset = 1;
|
||||||
@ -1448,9 +1448,10 @@ void Modify::write_restart(FILE *fp)
|
|||||||
n = strlen(fix[i]->id) + 1;
|
n = strlen(fix[i]->id) + 1;
|
||||||
fwrite(&n, sizeof(int), 1, fp);
|
fwrite(&n, sizeof(int), 1, fp);
|
||||||
fwrite(fix[i]->id, sizeof(char), n, fp);
|
fwrite(fix[i]->id, sizeof(char), n, fp);
|
||||||
n = strlen(fix[i]->style) + 1;
|
auto fix_style = utils::strip_style_suffix(fix[i]->style, lmp);
|
||||||
|
n = fix_style.size() + 1;
|
||||||
fwrite(&n, sizeof(int), 1, fp);
|
fwrite(&n, sizeof(int), 1, fp);
|
||||||
fwrite(fix[i]->style, sizeof(char), n, fp);
|
fwrite(fix_style.c_str(), sizeof(char), n, fp);
|
||||||
}
|
}
|
||||||
fix[i]->write_restart(fp);
|
fix[i]->write_restart(fp);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -769,7 +769,7 @@ void ReadRestart::header()
|
|||||||
argcopy[i] = read_string();
|
argcopy[i] = read_string();
|
||||||
atom->create_avec(style,nargcopy,argcopy,1);
|
atom->create_avec(style,nargcopy,argcopy,1);
|
||||||
if (comm->me ==0)
|
if (comm->me ==0)
|
||||||
utils::logmesg(lmp," restoring atom style {} from restart\n",style);
|
utils::logmesg(lmp," restoring atom style {} from restart\n",atom->atom_style);
|
||||||
for (int i = 0; i < nargcopy; i++) delete[] argcopy[i];
|
for (int i = 0; i < nargcopy; i++) delete[] argcopy[i];
|
||||||
delete[] argcopy;
|
delete[] argcopy;
|
||||||
delete[] style;
|
delete[] style;
|
||||||
|
|||||||
@ -449,7 +449,7 @@ void WriteRestart::header()
|
|||||||
|
|
||||||
// write atom_style and its args
|
// write atom_style and its args
|
||||||
|
|
||||||
write_string(ATOM_STYLE,atom->atom_style);
|
write_string(ATOM_STYLE,utils::strip_style_suffix(atom->atom_style,lmp));
|
||||||
fwrite(&atom->avec->nargcopy,sizeof(int),1,fp);
|
fwrite(&atom->avec->nargcopy,sizeof(int),1,fp);
|
||||||
for (int i = 0; i < atom->avec->nargcopy; i++) {
|
for (int i = 0; i < atom->avec->nargcopy; i++) {
|
||||||
int n = strlen(atom->avec->argcopy[i]) + 1;
|
int n = strlen(atom->avec->argcopy[i]) + 1;
|
||||||
@ -542,26 +542,26 @@ void WriteRestart::force_fields()
|
|||||||
{
|
{
|
||||||
if (force->pair) {
|
if (force->pair) {
|
||||||
if (force->pair->restartinfo) {
|
if (force->pair->restartinfo) {
|
||||||
write_string(PAIR,force->pair_style);
|
write_string(PAIR,utils::strip_style_suffix(force->pair_style,lmp));
|
||||||
force->pair->write_restart(fp);
|
force->pair->write_restart(fp);
|
||||||
} else {
|
} else {
|
||||||
write_string(NO_PAIR,force->pair_style);
|
write_string(NO_PAIR,utils::strip_style_suffix(force->pair_style,lmp));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (atom->avec->bonds_allow && force->bond) {
|
if (atom->avec->bonds_allow && force->bond) {
|
||||||
write_string(BOND,force->bond_style);
|
write_string(BOND,utils::strip_style_suffix(force->bond_style,lmp));
|
||||||
force->bond->write_restart(fp);
|
force->bond->write_restart(fp);
|
||||||
}
|
}
|
||||||
if (atom->avec->angles_allow && force->angle) {
|
if (atom->avec->angles_allow && force->angle) {
|
||||||
write_string(ANGLE,force->angle_style);
|
write_string(ANGLE,utils::strip_style_suffix(force->angle_style,lmp));
|
||||||
force->angle->write_restart(fp);
|
force->angle->write_restart(fp);
|
||||||
}
|
}
|
||||||
if (atom->avec->dihedrals_allow && force->dihedral) {
|
if (atom->avec->dihedrals_allow && force->dihedral) {
|
||||||
write_string(DIHEDRAL,force->dihedral_style);
|
write_string(DIHEDRAL,utils::strip_style_suffix(force->dihedral_style,lmp));
|
||||||
force->dihedral->write_restart(fp);
|
force->dihedral->write_restart(fp);
|
||||||
}
|
}
|
||||||
if (atom->avec->impropers_allow && force->improper) {
|
if (atom->avec->impropers_allow && force->improper) {
|
||||||
write_string(IMPROPER,force->improper_style);
|
write_string(IMPROPER,utils::strip_style_suffix(force->improper_style,lmp));
|
||||||
force->improper->write_restart(fp);
|
force->improper->write_restart(fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -672,12 +672,12 @@ void WriteRestart::write_double(int flag, double value)
|
|||||||
byte) into the restart file
|
byte) into the restart file
|
||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
void WriteRestart::write_string(int flag, const char *value)
|
void WriteRestart::write_string(int flag, const std::string &value)
|
||||||
{
|
{
|
||||||
int n = strlen(value) + 1;
|
int n = value.size() + 1;
|
||||||
fwrite(&flag,sizeof(int),1,fp);
|
fwrite(&flag,sizeof(int),1,fp);
|
||||||
fwrite(&n,sizeof(int),1,fp);
|
fwrite(&n,sizeof(int),1,fp);
|
||||||
fwrite(value,sizeof(char),n,fp);
|
fwrite(value.c_str(),sizeof(char),n,fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
|
|||||||
@ -62,7 +62,7 @@ class WriteRestart : public Command {
|
|||||||
void write_int(int, int);
|
void write_int(int, int);
|
||||||
void write_bigint(int, bigint);
|
void write_bigint(int, bigint);
|
||||||
void write_double(int, double);
|
void write_double(int, double);
|
||||||
void write_string(int, const char *);
|
void write_string(int, const std::string &);
|
||||||
void write_int_vec(int, int, int *);
|
void write_int_vec(int, int, int *);
|
||||||
void write_double_vec(int, int, double *);
|
void write_double_vec(int, int, double *);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user