improve / modernize more error messages in the read_data command
This commit is contained in:
@ -174,13 +174,13 @@ void ReadData::command(int narg, char **arg)
|
|||||||
addflag = VALUE;
|
addflag = VALUE;
|
||||||
bigint offset = utils::bnumeric(FLERR, arg[iarg + 1], false, lmp);
|
bigint offset = utils::bnumeric(FLERR, arg[iarg + 1], false, lmp);
|
||||||
if (offset > MAXTAGINT)
|
if (offset > MAXTAGINT)
|
||||||
error->all(FLERR, "Read data add IDoffset {} is too big", offset);
|
error->all(FLERR, iarg, "Read data add IDoffset {} is too big", offset);
|
||||||
id_offset = offset;
|
id_offset = offset;
|
||||||
|
|
||||||
if (atom->molecule_flag) {
|
if (atom->molecule_flag) {
|
||||||
offset = utils::bnumeric(FLERR, arg[iarg + 2], false, lmp);
|
offset = utils::bnumeric(FLERR, arg[iarg + 2], false, lmp);
|
||||||
if (offset > MAXTAGINT)
|
if (offset > MAXTAGINT)
|
||||||
error->all(FLERR, "Read data add MOLoffset {} is too big", offset);
|
error->all(FLERR, iarg, "Read data add MOLoffset {} is too big", offset);
|
||||||
mol_offset = offset;
|
mol_offset = offset;
|
||||||
iarg++;
|
iarg++;
|
||||||
}
|
}
|
||||||
@ -195,7 +195,7 @@ void ReadData::command(int narg, char **arg)
|
|||||||
doffset = utils::inumeric(FLERR, arg[iarg + 4], false, lmp);
|
doffset = utils::inumeric(FLERR, arg[iarg + 4], false, lmp);
|
||||||
ioffset = utils::inumeric(FLERR, arg[iarg + 5], false, lmp);
|
ioffset = utils::inumeric(FLERR, arg[iarg + 5], false, lmp);
|
||||||
if (toffset < 0 || boffset < 0 || aoffset < 0 || doffset < 0 || ioffset < 0)
|
if (toffset < 0 || boffset < 0 || aoffset < 0 || doffset < 0 || ioffset < 0)
|
||||||
error->all(FLERR, "Illegal read_data offset value(s)");
|
error->all(FLERR, iarg, "Illegal read_data offset value(s)");
|
||||||
iarg += 6;
|
iarg += 6;
|
||||||
} else if (strcmp(arg[iarg], "shift") == 0) {
|
} else if (strcmp(arg[iarg], "shift") == 0) {
|
||||||
if (iarg + 4 > narg) utils::missing_cmd_args(FLERR, "read_data shift", error);
|
if (iarg + 4 > narg) utils::missing_cmd_args(FLERR, "read_data shift", error);
|
||||||
@ -204,7 +204,8 @@ void ReadData::command(int narg, char **arg)
|
|||||||
shift[1] = utils::numeric(FLERR, arg[iarg + 2], false, lmp);
|
shift[1] = utils::numeric(FLERR, arg[iarg + 2], false, lmp);
|
||||||
shift[2] = utils::numeric(FLERR, arg[iarg + 3], false, lmp);
|
shift[2] = utils::numeric(FLERR, arg[iarg + 3], false, lmp);
|
||||||
if (domain->dimension == 2 && shift[2] != 0.0)
|
if (domain->dimension == 2 && shift[2] != 0.0)
|
||||||
error->all(FLERR, "Non-zero read_data shift z value for 2d simulation not allowed");
|
error->all(FLERR, iarg + 2,
|
||||||
|
"Non-zero read_data shift z value for 2d simulation not allowed");
|
||||||
iarg += 4;
|
iarg += 4;
|
||||||
} else if (strcmp(arg[iarg], "nocoeff") == 0) {
|
} else if (strcmp(arg[iarg], "nocoeff") == 0) {
|
||||||
coeffflag = 0;
|
coeffflag = 0;
|
||||||
@ -213,86 +214,92 @@ void ReadData::command(int narg, char **arg)
|
|||||||
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "read_data extra/atom/types", error);
|
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "read_data extra/atom/types", error);
|
||||||
extra_atom_types = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
extra_atom_types = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
||||||
if (extra_atom_types < 0)
|
if (extra_atom_types < 0)
|
||||||
error->all(FLERR, "Illegal read_data extra/atom/types value {}", extra_atom_types);
|
error->all(FLERR, iarg + 1, "Illegal read_data extra/atom/types value {}",
|
||||||
|
extra_atom_types);
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg], "extra/bond/types") == 0) {
|
} else if (strcmp(arg[iarg], "extra/bond/types") == 0) {
|
||||||
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "read_data extra/bond/types", error);
|
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "read_data extra/bond/types", error);
|
||||||
if (!atom->avec->bonds_allow)
|
if (!atom->avec->bonds_allow)
|
||||||
error->all(FLERR, "No bonds allowed with atom style {}", atom->get_style());
|
error->all(FLERR, iarg + 1, "No bonds allowed with atom style {}", atom->get_style());
|
||||||
extra_bond_types = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
extra_bond_types = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
||||||
if (extra_bond_types < 0)
|
if (extra_bond_types < 0)
|
||||||
error->all(FLERR, "Illegal read_data extra/bond/types value {}", extra_bond_types);
|
error->all(FLERR, iarg + 1, "Illegal read_data extra/bond/types value {}",
|
||||||
|
extra_bond_types);
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg], "extra/angle/types") == 0) {
|
} else if (strcmp(arg[iarg], "extra/angle/types") == 0) {
|
||||||
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "read_data extra/angle/types", error);
|
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "read_data extra/angle/types", error);
|
||||||
if (!atom->avec->angles_allow)
|
if (!atom->avec->angles_allow)
|
||||||
error->all(FLERR, "No angles allowed with atom style {}", atom->get_style());
|
error->all(FLERR, iarg + 1, "No angles allowed with atom style {}", atom->get_style());
|
||||||
extra_angle_types = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
extra_angle_types = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
||||||
if (extra_angle_types < 0)
|
if (extra_angle_types < 0)
|
||||||
error->all(FLERR, "Illegal read_data extra/angle/types value {}", extra_angle_types);
|
error->all(FLERR, iarg + 1, "Illegal read_data extra/angle/types value {}",
|
||||||
|
extra_angle_types);
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg], "extra/dihedral/types") == 0) {
|
} else if (strcmp(arg[iarg], "extra/dihedral/types") == 0) {
|
||||||
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "read_data extra/dihedral/types", error);
|
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "read_data extra/dihedral/types", error);
|
||||||
if (!atom->avec->dihedrals_allow)
|
if (!atom->avec->dihedrals_allow)
|
||||||
error->all(FLERR, "No dihedrals allowed with atom style {}", atom->get_style());
|
error->all(FLERR, iarg + 1, "No dihedrals allowed with atom style {}", atom->get_style());
|
||||||
extra_dihedral_types = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
extra_dihedral_types = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
||||||
if (extra_dihedral_types < 0)
|
if (extra_dihedral_types < 0)
|
||||||
error->all(FLERR, "Illegal read_data extra/dihedral/types value {}", extra_dihedral_types);
|
error->all(FLERR, iarg + 1, "Illegal read_data extra/dihedral/types value {}",
|
||||||
|
extra_dihedral_types);
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg], "extra/improper/types") == 0) {
|
} else if (strcmp(arg[iarg], "extra/improper/types") == 0) {
|
||||||
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "read_data extra/improper/types", error);
|
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "read_data extra/improper/types", error);
|
||||||
if (!atom->avec->impropers_allow)
|
if (!atom->avec->impropers_allow)
|
||||||
error->all(FLERR, "No impropers allowed with atom style {}", atom->get_style());
|
error->all(FLERR, iarg + 1, "No impropers allowed with atom style {}", atom->get_style());
|
||||||
extra_improper_types = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
extra_improper_types = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
||||||
if (extra_improper_types < 0)
|
if (extra_improper_types < 0)
|
||||||
error->all(FLERR, "Illegal read_data extra/improper/types value {}", extra_improper_types);
|
error->all(FLERR, iarg + 1, "Illegal read_data extra/improper/types value {}",
|
||||||
|
extra_improper_types);
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg], "extra/bond/per/atom") == 0) {
|
} else if (strcmp(arg[iarg], "extra/bond/per/atom") == 0) {
|
||||||
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "read_data extra/bond/per/atom", error);
|
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "read_data extra/bond/per/atom", error);
|
||||||
if (atom->molecular == Atom::ATOMIC)
|
if (atom->molecular == Atom::ATOMIC)
|
||||||
error->all(FLERR, "No bonds allowed with atom style {}", atom->get_style());
|
error->all(FLERR, iarg + 1, "No bonds allowed with atom style {}", atom->get_style());
|
||||||
atom->extra_bond_per_atom = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
atom->extra_bond_per_atom = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
||||||
if (atom->extra_bond_per_atom < 0)
|
if (atom->extra_bond_per_atom < 0)
|
||||||
error->all(FLERR, "Illegal read_data extra/bond/per/atom value {}",
|
error->all(FLERR, iarg + 1, "Illegal read_data extra/bond/per/atom value {}",
|
||||||
atom->extra_bond_per_atom);
|
atom->extra_bond_per_atom);
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg], "extra/angle/per/atom") == 0) {
|
} else if (strcmp(arg[iarg], "extra/angle/per/atom") == 0) {
|
||||||
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "read_data extra/angle/per/atom", error);
|
if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "read_data extra/angle/per/atom", error);
|
||||||
if (atom->molecular == Atom::ATOMIC)
|
if (atom->molecular == Atom::ATOMIC)
|
||||||
error->all(FLERR, "No angles allowed with atom style {}", atom->get_style());
|
error->all(FLERR, iarg + 1, "No angles allowed with atom style {}", atom->get_style());
|
||||||
atom->extra_angle_per_atom = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
atom->extra_angle_per_atom = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
||||||
if (atom->extra_angle_per_atom < 0)
|
if (atom->extra_angle_per_atom < 0)
|
||||||
error->all(FLERR, "Illegal read_data extra/angle/per/atom value {}",
|
error->all(FLERR, iarg + 1, "Illegal read_data extra/angle/per/atom value {}",
|
||||||
atom->extra_angle_per_atom);
|
atom->extra_angle_per_atom);
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg], "extra/dihedral/per/atom") == 0) {
|
} else if (strcmp(arg[iarg], "extra/dihedral/per/atom") == 0) {
|
||||||
if (iarg + 2 > narg)
|
if (iarg + 2 > narg)
|
||||||
utils::missing_cmd_args(FLERR, "read_data extra/dihedral/per/atom", error);
|
utils::missing_cmd_args(FLERR, "read_data extra/dihedral/per/atom", error);
|
||||||
if (atom->molecular == Atom::ATOMIC)
|
if (atom->molecular == Atom::ATOMIC)
|
||||||
error->all(FLERR, "No dihedrals allowed with atom style {}", atom->get_style());
|
error->all(FLERR, iarg + 1, "No dihedrals allowed with atom style {}", atom->get_style());
|
||||||
atom->extra_dihedral_per_atom = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
atom->extra_dihedral_per_atom = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
||||||
if (atom->extra_dihedral_per_atom < 0)
|
if (atom->extra_dihedral_per_atom < 0)
|
||||||
error->all(FLERR, "Illegal read_data extra/dihedral/per/atom value {}",
|
error->all(FLERR, iarg + 1, "Illegal read_data extra/dihedral/per/atom value {}",
|
||||||
atom->extra_dihedral_per_atom);
|
atom->extra_dihedral_per_atom);
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg], "extra/improper/per/atom") == 0) {
|
} else if (strcmp(arg[iarg], "extra/improper/per/atom") == 0) {
|
||||||
if (iarg + 2 > narg)
|
if (iarg + 2 > narg)
|
||||||
utils::missing_cmd_args(FLERR, "read_data extra/improper/per/atom", error);
|
utils::missing_cmd_args(FLERR, "read_data extra/improper/per/atom", error);
|
||||||
if (atom->molecular == Atom::ATOMIC)
|
if (atom->molecular == Atom::ATOMIC)
|
||||||
error->all(FLERR, "No impropers allowed with atom style {}", atom->get_style());
|
error->all(FLERR, iarg + 1, "No impropers allowed with atom style {}", atom->get_style());
|
||||||
atom->extra_improper_per_atom = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
atom->extra_improper_per_atom = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
||||||
if (atom->extra_improper_per_atom < 0)
|
if (atom->extra_improper_per_atom < 0)
|
||||||
error->all(FLERR, "Illegal read_data extra/improper/per/atom value {}",
|
error->all(FLERR, iarg + 1, "Illegal read_data extra/improper/per/atom value {}",
|
||||||
atom->extra_improper_per_atom);
|
atom->extra_improper_per_atom);
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg], "extra/special/per/atom") == 0) {
|
} else if (strcmp(arg[iarg], "extra/special/per/atom") == 0) {
|
||||||
if (iarg + 2 > narg)
|
if (iarg + 2 > narg)
|
||||||
utils::missing_cmd_args(FLERR, "read_data extra/special/per/atom", error);
|
utils::missing_cmd_args(FLERR, "read_data extra/special/per/atom", error);
|
||||||
if (atom->molecular == Atom::ATOMIC)
|
if (atom->molecular == Atom::ATOMIC)
|
||||||
error->all(FLERR, "No bonded interactions allowed with atom style {}", atom->get_style());
|
error->all(FLERR, iarg + 1, "No bonded interactions allowed with atom style {}",
|
||||||
|
atom->get_style());
|
||||||
force->special_extra = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
force->special_extra = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
||||||
if (force->special_extra < 0)
|
if (force->special_extra < 0)
|
||||||
error->all(FLERR, "Illegal read_data extra/special/per/atom value {}",
|
error->all(FLERR, iarg + 1, "Illegal read_data extra/special/per/atom value {}",
|
||||||
force->special_extra);
|
force->special_extra);
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg], "group") == 0) {
|
} else if (strcmp(arg[iarg], "group") == 0) {
|
||||||
@ -309,12 +316,12 @@ void ReadData::command(int narg, char **arg)
|
|||||||
fix_section = (char **) memory->srealloc(fix_section, (nfix + 1) * sizeof(char *),
|
fix_section = (char **) memory->srealloc(fix_section, (nfix + 1) * sizeof(char *),
|
||||||
"read_data:fix_section");
|
"read_data:fix_section");
|
||||||
if (is_data_section(arg[iarg + 3]))
|
if (is_data_section(arg[iarg + 3]))
|
||||||
error->all(FLERR,
|
error->all(FLERR, iarg + 3,
|
||||||
"Custom data section name {} for fix {} collides with existing data section",
|
"Custom data section name {} for fix {} collides with existing data section",
|
||||||
arg[iarg + 3], arg[iarg + 1]);
|
arg[iarg + 3], arg[iarg + 1]);
|
||||||
fix_index[nfix] = modify->get_fix_by_id(arg[iarg + 1]);
|
fix_index[nfix] = modify->get_fix_by_id(arg[iarg + 1]);
|
||||||
if (!fix_index[nfix])
|
if (!fix_index[nfix])
|
||||||
error->all(FLERR, "Fix ID {} for read_data does not exist", arg[iarg + 1]);
|
error->all(FLERR, iarg + 1, "Fix ID {} for read_data does not exist", arg[iarg + 1]);
|
||||||
if (strcmp(arg[iarg + 2], "NULL") == 0)
|
if (strcmp(arg[iarg + 2], "NULL") == 0)
|
||||||
fix_header[nfix] = nullptr;
|
fix_header[nfix] = nullptr;
|
||||||
else
|
else
|
||||||
@ -327,7 +334,7 @@ void ReadData::command(int narg, char **arg)
|
|||||||
iarg += 4;
|
iarg += 4;
|
||||||
|
|
||||||
} else
|
} else
|
||||||
error->all(FLERR, "Unknown read_data keyword {}", arg[iarg]);
|
error->all(FLERR, iarg, "Unknown read_data keyword {}", arg[iarg]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// error checks
|
// error checks
|
||||||
@ -339,11 +346,12 @@ void ReadData::command(int narg, char **arg)
|
|||||||
"Reading a data file with shrinkwrap boundaries is not "
|
"Reading a data file with shrinkwrap boundaries is not "
|
||||||
"compatible with a MSM KSpace style");
|
"compatible with a MSM KSpace style");
|
||||||
if (domain->box_exist && !addflag)
|
if (domain->box_exist && !addflag)
|
||||||
error->all(FLERR, "Cannot use read_data without add keyword after simulation box is defined"
|
error->all(FLERR,
|
||||||
+ utils::errorurl(34));
|
"Cannot use read_data without add keyword after simulation box is defined" +
|
||||||
|
utils::errorurl(34));
|
||||||
if (!domain->box_exist && addflag)
|
if (!domain->box_exist && addflag)
|
||||||
error->all(FLERR, "Cannot use read_data add before simulation box is defined"
|
error->all(FLERR,
|
||||||
+ utils::errorurl(33));
|
"Cannot use read_data add before simulation box is defined" + utils::errorurl(33));
|
||||||
if (offsetflag) {
|
if (offsetflag) {
|
||||||
if (addflag == NONE) {
|
if (addflag == NONE) {
|
||||||
error->all(FLERR, "Cannot use read_data offset without add keyword");
|
error->all(FLERR, "Cannot use read_data offset without add keyword");
|
||||||
@ -366,7 +374,7 @@ void ReadData::command(int narg, char **arg)
|
|||||||
// check if data file is available and readable
|
// check if data file is available and readable
|
||||||
|
|
||||||
if (!platform::file_is_readable(arg[0]))
|
if (!platform::file_is_readable(arg[0]))
|
||||||
error->all(FLERR, "Cannot open file {}: {}", arg[0], utils::getsyserror());
|
error->all(FLERR, Error::ARGZERO, "Cannot open file {}: {}", arg[0], utils::getsyserror());
|
||||||
|
|
||||||
// reset so we can warn about reset image flags exactly once per data file
|
// reset so we can warn about reset image flags exactly once per data file
|
||||||
|
|
||||||
@ -528,7 +536,7 @@ void ReadData::command(int narg, char **arg)
|
|||||||
if (tilt_flag) triclinic = 1;
|
if (tilt_flag) triclinic = 1;
|
||||||
} else {
|
} else {
|
||||||
if (xloxhi_flag || yloyhi_flag || zlozhi_flag || tilt_flag)
|
if (xloxhi_flag || yloyhi_flag || zlozhi_flag || tilt_flag)
|
||||||
error->all(FLERR,
|
error->all(FLERR, Error::ARGZERO,
|
||||||
"Read_data header cannot specify simulation box lo/hi/tilt and ABC vectors");
|
"Read_data header cannot specify simulation box lo/hi/tilt and ABC vectors");
|
||||||
triclinic = triclinic_general = 1;
|
triclinic = triclinic_general = 1;
|
||||||
}
|
}
|
||||||
@ -538,10 +546,11 @@ void ReadData::command(int narg, char **arg)
|
|||||||
if (domain->dimension == 2) {
|
if (domain->dimension == 2) {
|
||||||
if (triclinic_general == 0) {
|
if (triclinic_general == 0) {
|
||||||
if (boxlo[2] >= 0.0 || boxhi[2] <= 0.0)
|
if (boxlo[2] >= 0.0 || boxhi[2] <= 0.0)
|
||||||
error->all(FLERR, "Read_data zlo/zhi for 2d simulation must straddle 0.0");
|
error->all(FLERR, Error::ARGZERO,
|
||||||
|
"Read_data zlo/zhi for 2d simulation must straddle 0.0");
|
||||||
} else if (triclinic_general == 1) {
|
} else if (triclinic_general == 1) {
|
||||||
if (cvec[0] != 0.0 || cvec[1] != 0.0 || cvec[2] != 1.0 || abc_origin[2] != -0.5)
|
if (cvec[0] != 0.0 || cvec[1] != 0.0 || cvec[2] != 1.0 || abc_origin[2] != -0.5)
|
||||||
error->all(FLERR,
|
error->all(FLERR, Error::ARGZERO,
|
||||||
"Read_data cvec and/or abc_origin is invalid for "
|
"Read_data cvec and/or abc_origin is invalid for "
|
||||||
"2d simulation with general triclinic box");
|
"2d simulation with general triclinic box");
|
||||||
}
|
}
|
||||||
@ -619,7 +628,8 @@ void ReadData::command(int narg, char **arg)
|
|||||||
|
|
||||||
if (triclinic_general) {
|
if (triclinic_general) {
|
||||||
if (!domain->triclinic_general)
|
if (!domain->triclinic_general)
|
||||||
error->all(FLERR, "Read_data subsequent file cannot switch to general triclinic");
|
error->all(FLERR, Error::ARGZERO,
|
||||||
|
"Read_data subsequent file cannot switch to general triclinic");
|
||||||
int errflag = 0;
|
int errflag = 0;
|
||||||
if (avec[0] != domain->avec[0] || avec[1] != domain->avec[1] || avec[2] != domain->avec[2])
|
if (avec[0] != domain->avec[0] || avec[1] != domain->avec[1] || avec[2] != domain->avec[2])
|
||||||
errflag = 1;
|
errflag = 1;
|
||||||
@ -631,7 +641,8 @@ void ReadData::command(int narg, char **arg)
|
|||||||
abc_origin[2] != domain->boxlo[2])
|
abc_origin[2] != domain->boxlo[2])
|
||||||
errflag = 1;
|
errflag = 1;
|
||||||
if (errflag)
|
if (errflag)
|
||||||
error->all(FLERR, "Read_data subsequent file ABC vectors must be same as first file");
|
error->all(FLERR, Error::ARGZERO,
|
||||||
|
"Read_data subsequent file ABC vectors must be same as first file");
|
||||||
if (shift[0] != 0.0 || shift[1] != 0.0 || shift[2] != 0.0)
|
if (shift[0] != 0.0 || shift[1] != 0.0 || shift[2] != 0.0)
|
||||||
error->all(FLERR, "Read_data subsequent file with ABC vectors cannot define shift");
|
error->all(FLERR, "Read_data subsequent file with ABC vectors cannot define shift");
|
||||||
|
|
||||||
@ -640,13 +651,15 @@ void ReadData::command(int narg, char **arg)
|
|||||||
|
|
||||||
} else if (triclinic) {
|
} else if (triclinic) {
|
||||||
if (!domain->triclinic || domain->triclinic_general)
|
if (!domain->triclinic || domain->triclinic_general)
|
||||||
error->all(FLERR, "Read_data subsequent file cannot switch to restricted triclinic");
|
error->all(FLERR, Error::ARGZERO,
|
||||||
|
"Read_data subsequent file cannot switch to restricted triclinic");
|
||||||
if (xy != domain->xy || xz != domain->xz || yz != domain->yz)
|
if (xy != domain->xy || xz != domain->xz || yz != domain->yz)
|
||||||
error->all(FLERR, "Read_data subsequent file tilt factors must be same as first file");
|
error->all(FLERR, "Read_data subsequent file tilt factors must be same as first file");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (domain->triclinic)
|
if (domain->triclinic)
|
||||||
error->all(FLERR, "Read_data subsequent file cannot switch to orthogonal");
|
error->all(FLERR, Error::ARGZERO,
|
||||||
|
"Read_data subsequent file cannot switch to orthogonal");
|
||||||
}
|
}
|
||||||
|
|
||||||
double oldboxlo[3] = {domain->boxlo[0], domain->boxlo[1], domain->boxlo[2]};
|
double oldboxlo[3] = {domain->boxlo[0], domain->boxlo[1], domain->boxlo[2]};
|
||||||
@ -715,7 +728,7 @@ void ReadData::command(int narg, char **arg)
|
|||||||
skip_lines(natoms);
|
skip_lines(natoms);
|
||||||
|
|
||||||
} else if (strcmp(keyword, "Velocities") == 0) {
|
} else if (strcmp(keyword, "Velocities") == 0) {
|
||||||
if (atomflag == 0) error->all(FLERR, "Must read Atoms before Velocities");
|
if (atomflag == 0) error->all(FLERR, Error::ARGZERO, "Must read Atoms before Velocities");
|
||||||
if (firstpass)
|
if (firstpass)
|
||||||
velocities();
|
velocities();
|
||||||
else
|
else
|
||||||
@ -723,32 +736,35 @@ void ReadData::command(int narg, char **arg)
|
|||||||
|
|
||||||
} else if (strcmp(keyword, "Bonds") == 0) {
|
} else if (strcmp(keyword, "Bonds") == 0) {
|
||||||
topoflag = bondflag = 1;
|
topoflag = bondflag = 1;
|
||||||
if (nbonds == 0) error->all(FLERR, "Invalid data file section: Bonds");
|
if (nbonds == 0) error->all(FLERR, Error::ARGZERO, "Invalid data file section: Bonds");
|
||||||
if (atomflag == 0) error->all(FLERR, "Must read Atoms before Bonds");
|
if (atomflag == 0) error->all(FLERR, Error::ARGZERO, "Must read Atoms before Bonds");
|
||||||
bonds(firstpass);
|
bonds(firstpass);
|
||||||
|
|
||||||
} else if (strcmp(keyword, "Angles") == 0) {
|
} else if (strcmp(keyword, "Angles") == 0) {
|
||||||
topoflag = angleflag = 1;
|
topoflag = angleflag = 1;
|
||||||
if (nangles == 0) error->all(FLERR, "Invalid data file section: Angles");
|
if (nangles == 0) error->all(FLERR, Error::ARGZERO, "Invalid data file section: Angles");
|
||||||
if (atomflag == 0) error->all(FLERR, "Must read Atoms before Angles");
|
if (atomflag == 0) error->all(FLERR, Error::ARGZERO, "Must read Atoms before Angles");
|
||||||
angles(firstpass);
|
angles(firstpass);
|
||||||
|
|
||||||
} else if (strcmp(keyword, "Dihedrals") == 0) {
|
} else if (strcmp(keyword, "Dihedrals") == 0) {
|
||||||
topoflag = dihedralflag = 1;
|
topoflag = dihedralflag = 1;
|
||||||
if (ndihedrals == 0) error->all(FLERR, "Invalid data file section: Dihedrals");
|
if (ndihedrals == 0)
|
||||||
if (atomflag == 0) error->all(FLERR, "Must read Atoms before Dihedrals");
|
error->all(FLERR, Error::ARGZERO, "Invalid data file section: Dihedrals");
|
||||||
|
if (atomflag == 0) error->all(FLERR, Error::ARGZERO, "Must read Atoms before Dihedrals");
|
||||||
dihedrals(firstpass);
|
dihedrals(firstpass);
|
||||||
|
|
||||||
} else if (strcmp(keyword, "Impropers") == 0) {
|
} else if (strcmp(keyword, "Impropers") == 0) {
|
||||||
topoflag = improperflag = 1;
|
topoflag = improperflag = 1;
|
||||||
if (nimpropers == 0) error->all(FLERR, "Invalid data file section: Impropers");
|
if (nimpropers == 0)
|
||||||
if (atomflag == 0) error->all(FLERR, "Must read Atoms before Impropers");
|
error->all(FLERR, Error::ARGZERO, "Invalid data file section: Impropers");
|
||||||
|
if (atomflag == 0) error->all(FLERR, Error::ARGZERO, "Must read Atoms before Impropers");
|
||||||
impropers(firstpass);
|
impropers(firstpass);
|
||||||
|
|
||||||
} else if (strcmp(keyword, "Ellipsoids") == 0) {
|
} else if (strcmp(keyword, "Ellipsoids") == 0) {
|
||||||
ellipsoidflag = 1;
|
ellipsoidflag = 1;
|
||||||
if (!avec_ellipsoid) error->all(FLERR, "Invalid data file section: Ellipsoids");
|
if (!avec_ellipsoid)
|
||||||
if (atomflag == 0) error->all(FLERR, "Must read Atoms before Ellipsoids");
|
error->all(FLERR, Error::ARGZERO, "Invalid data file section: Ellipsoids");
|
||||||
|
if (atomflag == 0) error->all(FLERR, Error::ARGZERO, "Must read Atoms before Ellipsoids");
|
||||||
if (firstpass)
|
if (firstpass)
|
||||||
bonus(nellipsoids, (AtomVec *) avec_ellipsoid, "ellipsoids");
|
bonus(nellipsoids, (AtomVec *) avec_ellipsoid, "ellipsoids");
|
||||||
else
|
else
|
||||||
@ -756,8 +772,8 @@ void ReadData::command(int narg, char **arg)
|
|||||||
|
|
||||||
} else if (strcmp(keyword, "Lines") == 0) {
|
} else if (strcmp(keyword, "Lines") == 0) {
|
||||||
lineflag = 1;
|
lineflag = 1;
|
||||||
if (!avec_line) error->all(FLERR, "Invalid data file section: Lines");
|
if (!avec_line) error->all(FLERR, Error::ARGZERO, "Invalid data file section: Lines");
|
||||||
if (atomflag == 0) error->all(FLERR, "Must read Atoms before Lines");
|
if (atomflag == 0) error->all(FLERR, Error::ARGZERO, "Must read Atoms before Lines");
|
||||||
if (firstpass)
|
if (firstpass)
|
||||||
bonus(nlines, (AtomVec *) avec_line, "lines");
|
bonus(nlines, (AtomVec *) avec_line, "lines");
|
||||||
else
|
else
|
||||||
@ -765,8 +781,8 @@ void ReadData::command(int narg, char **arg)
|
|||||||
|
|
||||||
} else if (strcmp(keyword, "Triangles") == 0) {
|
} else if (strcmp(keyword, "Triangles") == 0) {
|
||||||
triflag = 1;
|
triflag = 1;
|
||||||
if (!avec_tri) error->all(FLERR, "Invalid data file section: Triangles");
|
if (!avec_tri) error->all(FLERR, Error::ARGZERO, "Invalid data file section: Triangles");
|
||||||
if (atomflag == 0) error->all(FLERR, "Must read Atoms before Triangles");
|
if (atomflag == 0) error->all(FLERR, Error::ARGZERO, "Must read Atoms before Triangles");
|
||||||
if (firstpass)
|
if (firstpass)
|
||||||
bonus(ntris, (AtomVec *) avec_tri, "triangles");
|
bonus(ntris, (AtomVec *) avec_tri, "triangles");
|
||||||
else
|
else
|
||||||
@ -774,8 +790,8 @@ void ReadData::command(int narg, char **arg)
|
|||||||
|
|
||||||
} else if (strcmp(keyword, "Bodies") == 0) {
|
} else if (strcmp(keyword, "Bodies") == 0) {
|
||||||
bodyflag = 1;
|
bodyflag = 1;
|
||||||
if (!avec_body) error->all(FLERR, "Invalid data file section: Bodies");
|
if (!avec_body) error->all(FLERR, Error::ARGZERO, "Invalid data file section: Bodies");
|
||||||
if (atomflag == 0) error->all(FLERR, "Must read Atoms before Bodies");
|
if (atomflag == 0) error->all(FLERR, Error::ARGZERO, "Must read Atoms before Bodies");
|
||||||
bodies(firstpass, (AtomVec *) avec_body);
|
bodies(firstpass, (AtomVec *) avec_body);
|
||||||
|
|
||||||
} else if (strcmp(keyword, "Masses") == 0) {
|
} else if (strcmp(keyword, "Masses") == 0) {
|
||||||
@ -784,7 +800,8 @@ void ReadData::command(int narg, char **arg)
|
|||||||
else
|
else
|
||||||
skip_lines(ntypes);
|
skip_lines(ntypes);
|
||||||
} else if (strcmp(keyword, "Pair Coeffs") == 0) {
|
} else if (strcmp(keyword, "Pair Coeffs") == 0) {
|
||||||
if (force->pair == nullptr) error->all(FLERR, "Must define pair_style before Pair Coeffs");
|
if (force->pair == nullptr)
|
||||||
|
error->all(FLERR, Error::ARGZERO, "Must define pair_style before Pair Coeffs");
|
||||||
if (firstpass) {
|
if (firstpass) {
|
||||||
if (me == 0 && !style_match(style, force->pair_style))
|
if (me == 0 && !style_match(style, force->pair_style))
|
||||||
error->warning(
|
error->warning(
|
||||||
@ -795,7 +812,7 @@ void ReadData::command(int narg, char **arg)
|
|||||||
skip_lines(ntypes);
|
skip_lines(ntypes);
|
||||||
} else if (strcmp(keyword, "PairIJ Coeffs") == 0) {
|
} else if (strcmp(keyword, "PairIJ Coeffs") == 0) {
|
||||||
if (force->pair == nullptr)
|
if (force->pair == nullptr)
|
||||||
error->all(FLERR, "Must define pair_style before PairIJ Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Must define pair_style before PairIJ Coeffs");
|
||||||
if (firstpass) {
|
if (firstpass) {
|
||||||
if (me == 0 && !style_match(style, force->pair_style))
|
if (me == 0 && !style_match(style, force->pair_style))
|
||||||
error->warning(
|
error->warning(
|
||||||
@ -806,8 +823,9 @@ void ReadData::command(int narg, char **arg)
|
|||||||
skip_lines(ntypes * (ntypes + 1) / 2);
|
skip_lines(ntypes * (ntypes + 1) / 2);
|
||||||
} else if (strcmp(keyword, "Bond Coeffs") == 0) {
|
} else if (strcmp(keyword, "Bond Coeffs") == 0) {
|
||||||
if (atom->avec->bonds_allow == 0)
|
if (atom->avec->bonds_allow == 0)
|
||||||
error->all(FLERR, "Invalid data file section: Bond Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Invalid data file section: Bond Coeffs");
|
||||||
if (force->bond == nullptr) error->all(FLERR, "Must define bond_style before Bond Coeffs");
|
if (force->bond == nullptr)
|
||||||
|
error->all(FLERR, Error::ARGZERO, "Must define bond_style before Bond Coeffs");
|
||||||
if (firstpass) {
|
if (firstpass) {
|
||||||
if (me == 0 && !style_match(style, force->bond_style))
|
if (me == 0 && !style_match(style, force->bond_style))
|
||||||
error->warning(
|
error->warning(
|
||||||
@ -818,9 +836,9 @@ void ReadData::command(int narg, char **arg)
|
|||||||
skip_lines(nbondtypes);
|
skip_lines(nbondtypes);
|
||||||
} else if (strcmp(keyword, "Angle Coeffs") == 0) {
|
} else if (strcmp(keyword, "Angle Coeffs") == 0) {
|
||||||
if (atom->avec->angles_allow == 0)
|
if (atom->avec->angles_allow == 0)
|
||||||
error->all(FLERR, "Invalid data file section: Angle Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Invalid data file section: Angle Coeffs");
|
||||||
if (force->angle == nullptr)
|
if (force->angle == nullptr)
|
||||||
error->all(FLERR, "Must define angle_style before Angle Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Must define angle_style before Angle Coeffs");
|
||||||
if (firstpass) {
|
if (firstpass) {
|
||||||
if (me == 0 && !style_match(style, force->angle_style))
|
if (me == 0 && !style_match(style, force->angle_style))
|
||||||
error->warning(
|
error->warning(
|
||||||
@ -831,9 +849,9 @@ void ReadData::command(int narg, char **arg)
|
|||||||
skip_lines(nangletypes);
|
skip_lines(nangletypes);
|
||||||
} else if (strcmp(keyword, "Dihedral Coeffs") == 0) {
|
} else if (strcmp(keyword, "Dihedral Coeffs") == 0) {
|
||||||
if (atom->avec->dihedrals_allow == 0)
|
if (atom->avec->dihedrals_allow == 0)
|
||||||
error->all(FLERR, "Invalid data file section: Dihedral Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Invalid data file section: Dihedral Coeffs");
|
||||||
if (force->dihedral == nullptr)
|
if (force->dihedral == nullptr)
|
||||||
error->all(FLERR, "Must define dihedral_style before Dihedral Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Must define dihedral_style before Dihedral Coeffs");
|
||||||
if (firstpass) {
|
if (firstpass) {
|
||||||
if (me == 0 && !style_match(style, force->dihedral_style))
|
if (me == 0 && !style_match(style, force->dihedral_style))
|
||||||
error->warning(
|
error->warning(
|
||||||
@ -845,9 +863,9 @@ void ReadData::command(int narg, char **arg)
|
|||||||
skip_lines(ndihedraltypes);
|
skip_lines(ndihedraltypes);
|
||||||
} else if (strcmp(keyword, "Improper Coeffs") == 0) {
|
} else if (strcmp(keyword, "Improper Coeffs") == 0) {
|
||||||
if (atom->avec->impropers_allow == 0)
|
if (atom->avec->impropers_allow == 0)
|
||||||
error->all(FLERR, "Invalid data file section: Improper Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Invalid data file section: Improper Coeffs");
|
||||||
if (force->improper == nullptr)
|
if (force->improper == nullptr)
|
||||||
error->all(FLERR, "Must define improper_style before Improper Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Must define improper_style before Improper Coeffs");
|
||||||
if (firstpass) {
|
if (firstpass) {
|
||||||
if (me == 0 && !style_match(style, force->improper_style))
|
if (me == 0 && !style_match(style, force->improper_style))
|
||||||
error->warning(
|
error->warning(
|
||||||
@ -860,9 +878,9 @@ void ReadData::command(int narg, char **arg)
|
|||||||
|
|
||||||
} else if (strcmp(keyword, "BondBond Coeffs") == 0) {
|
} else if (strcmp(keyword, "BondBond Coeffs") == 0) {
|
||||||
if (atom->avec->angles_allow == 0)
|
if (atom->avec->angles_allow == 0)
|
||||||
error->all(FLERR, "Invalid data file section: BondBond Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Invalid data file section: BondBond Coeffs");
|
||||||
if (force->angle == nullptr)
|
if (force->angle == nullptr)
|
||||||
error->all(FLERR, "Must define angle_style before BondBond Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Must define angle_style before BondBond Coeffs");
|
||||||
if (firstpass)
|
if (firstpass)
|
||||||
anglecoeffs(1);
|
anglecoeffs(1);
|
||||||
else
|
else
|
||||||
@ -870,18 +888,18 @@ void ReadData::command(int narg, char **arg)
|
|||||||
|
|
||||||
} else if (strcmp(keyword, "BondAngle Coeffs") == 0) {
|
} else if (strcmp(keyword, "BondAngle Coeffs") == 0) {
|
||||||
if (atom->avec->angles_allow == 0)
|
if (atom->avec->angles_allow == 0)
|
||||||
error->all(FLERR, "Invalid data file section: BondAngle Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Invalid data file section: BondAngle Coeffs");
|
||||||
if (force->angle == nullptr)
|
if (force->angle == nullptr)
|
||||||
error->all(FLERR, "Must define angle_style before BondAngle Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Must define angle_style before BondAngle Coeffs");
|
||||||
if (firstpass)
|
if (firstpass)
|
||||||
anglecoeffs(2);
|
anglecoeffs(2);
|
||||||
else
|
else
|
||||||
skip_lines(nangletypes);
|
skip_lines(nangletypes);
|
||||||
} else if (strcmp(keyword, "UreyBradley Coeffs") == 0) {
|
} else if (strcmp(keyword, "UreyBradley Coeffs") == 0) {
|
||||||
if (atom->avec->angles_allow == 0)
|
if (atom->avec->angles_allow == 0)
|
||||||
error->all(FLERR, "Invalid data file section: UreyBradley Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Invalid data file section: UreyBradley Coeffs");
|
||||||
if (force->angle == nullptr)
|
if (force->angle == nullptr)
|
||||||
error->all(FLERR, "Must define angle_style before UreyBradley Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Must define angle_style before UreyBradley Coeffs");
|
||||||
if (firstpass)
|
if (firstpass)
|
||||||
anglecoeffs(3);
|
anglecoeffs(3);
|
||||||
else
|
else
|
||||||
@ -889,9 +907,10 @@ void ReadData::command(int narg, char **arg)
|
|||||||
|
|
||||||
} else if (strcmp(keyword, "MiddleBondTorsion Coeffs") == 0) {
|
} else if (strcmp(keyword, "MiddleBondTorsion Coeffs") == 0) {
|
||||||
if (atom->avec->dihedrals_allow == 0)
|
if (atom->avec->dihedrals_allow == 0)
|
||||||
error->all(FLERR, "Invalid data file section: MiddleBondTorsion Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Invalid data file section: MiddleBondTorsion Coeffs");
|
||||||
if (force->dihedral == nullptr)
|
if (force->dihedral == nullptr)
|
||||||
error->all(FLERR, "Must define dihedral_style before MiddleBondTorsion Coeffs");
|
error->all(FLERR, Error::ARGZERO,
|
||||||
|
"Must define dihedral_style before MiddleBondTorsion Coeffs");
|
||||||
if (firstpass)
|
if (firstpass)
|
||||||
dihedralcoeffs(1);
|
dihedralcoeffs(1);
|
||||||
else
|
else
|
||||||
@ -899,9 +918,10 @@ void ReadData::command(int narg, char **arg)
|
|||||||
|
|
||||||
} else if (strcmp(keyword, "EndBondTorsion Coeffs") == 0) {
|
} else if (strcmp(keyword, "EndBondTorsion Coeffs") == 0) {
|
||||||
if (atom->avec->dihedrals_allow == 0)
|
if (atom->avec->dihedrals_allow == 0)
|
||||||
error->all(FLERR, "Invalid data file section: EndBondTorsion Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Invalid data file section: EndBondTorsion Coeffs");
|
||||||
if (force->dihedral == nullptr)
|
if (force->dihedral == nullptr)
|
||||||
error->all(FLERR, "Must define dihedral_style before EndBondTorsion Coeffs");
|
error->all(FLERR, Error::ARGZERO,
|
||||||
|
"Must define dihedral_style before EndBondTorsion Coeffs");
|
||||||
if (firstpass)
|
if (firstpass)
|
||||||
dihedralcoeffs(2);
|
dihedralcoeffs(2);
|
||||||
else
|
else
|
||||||
@ -909,9 +929,10 @@ void ReadData::command(int narg, char **arg)
|
|||||||
|
|
||||||
} else if (strcmp(keyword, "AngleTorsion Coeffs") == 0) {
|
} else if (strcmp(keyword, "AngleTorsion Coeffs") == 0) {
|
||||||
if (atom->avec->dihedrals_allow == 0)
|
if (atom->avec->dihedrals_allow == 0)
|
||||||
error->all(FLERR, "Invalid data file section: AngleTorsion Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Invalid data file section: AngleTorsion Coeffs");
|
||||||
if (force->dihedral == nullptr)
|
if (force->dihedral == nullptr)
|
||||||
error->all(FLERR, "Must define dihedral_style before AngleTorsion Coeffs");
|
error->all(FLERR, Error::ARGZERO,
|
||||||
|
"Must define dihedral_style before AngleTorsion Coeffs");
|
||||||
if (firstpass)
|
if (firstpass)
|
||||||
dihedralcoeffs(3);
|
dihedralcoeffs(3);
|
||||||
else
|
else
|
||||||
@ -919,9 +940,10 @@ void ReadData::command(int narg, char **arg)
|
|||||||
|
|
||||||
} else if (strcmp(keyword, "AngleAngleTorsion Coeffs") == 0) {
|
} else if (strcmp(keyword, "AngleAngleTorsion Coeffs") == 0) {
|
||||||
if (atom->avec->dihedrals_allow == 0)
|
if (atom->avec->dihedrals_allow == 0)
|
||||||
error->all(FLERR, "Invalid data file section: AngleAngleTorsion Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Invalid data file section: AngleAngleTorsion Coeffs");
|
||||||
if (force->dihedral == nullptr)
|
if (force->dihedral == nullptr)
|
||||||
error->all(FLERR, "Must define dihedral_style before AngleAngleTorsion Coeffs");
|
error->all(FLERR, Error::ARGZERO,
|
||||||
|
"Must define dihedral_style before AngleAngleTorsion Coeffs");
|
||||||
if (firstpass)
|
if (firstpass)
|
||||||
dihedralcoeffs(4);
|
dihedralcoeffs(4);
|
||||||
else
|
else
|
||||||
@ -929,9 +951,9 @@ void ReadData::command(int narg, char **arg)
|
|||||||
|
|
||||||
} else if (strcmp(keyword, "BondBond13 Coeffs") == 0) {
|
} else if (strcmp(keyword, "BondBond13 Coeffs") == 0) {
|
||||||
if (atom->avec->dihedrals_allow == 0)
|
if (atom->avec->dihedrals_allow == 0)
|
||||||
error->all(FLERR, "Invalid data file section: BondBond13 Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Invalid data file section: BondBond13 Coeffs");
|
||||||
if (force->dihedral == nullptr)
|
if (force->dihedral == nullptr)
|
||||||
error->all(FLERR, "Must define dihedral_style before BondBond13 Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Must define dihedral_style before BondBond13 Coeffs");
|
||||||
if (firstpass)
|
if (firstpass)
|
||||||
dihedralcoeffs(5);
|
dihedralcoeffs(5);
|
||||||
else
|
else
|
||||||
@ -939,9 +961,9 @@ void ReadData::command(int narg, char **arg)
|
|||||||
|
|
||||||
} else if (strcmp(keyword, "AngleAngle Coeffs") == 0) {
|
} else if (strcmp(keyword, "AngleAngle Coeffs") == 0) {
|
||||||
if (atom->avec->impropers_allow == 0)
|
if (atom->avec->impropers_allow == 0)
|
||||||
error->all(FLERR, "Invalid data file section: AngleAngle Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Invalid data file section: AngleAngle Coeffs");
|
||||||
if (force->improper == nullptr)
|
if (force->improper == nullptr)
|
||||||
error->all(FLERR, "Must define improper_style before AngleAngle Coeffs");
|
error->all(FLERR, Error::ARGZERO, "Must define improper_style before AngleAngle Coeffs");
|
||||||
if (firstpass)
|
if (firstpass)
|
||||||
impropercoeffs(1);
|
impropercoeffs(1);
|
||||||
else
|
else
|
||||||
@ -949,7 +971,8 @@ void ReadData::command(int narg, char **arg)
|
|||||||
|
|
||||||
} else if (strcmp(keyword, "Atom Type Labels") == 0) {
|
} else if (strcmp(keyword, "Atom Type Labels") == 0) {
|
||||||
if (firstpass) {
|
if (firstpass) {
|
||||||
if (atomflag == 1) error->all(FLERR, "Must read Atom Type Labels before Atoms");
|
if (atomflag == 1)
|
||||||
|
error->all(FLERR, Error::ARGZERO, "Must read Atom Type Labels before Atoms");
|
||||||
tlabelflag = 1;
|
tlabelflag = 1;
|
||||||
typelabels(Atom::ATOM);
|
typelabels(Atom::ATOM);
|
||||||
} else
|
} else
|
||||||
@ -958,7 +981,8 @@ void ReadData::command(int narg, char **arg)
|
|||||||
} else if (strcmp(keyword, "Bond Type Labels") == 0) {
|
} else if (strcmp(keyword, "Bond Type Labels") == 0) {
|
||||||
if (nbondtypes) {
|
if (nbondtypes) {
|
||||||
if (firstpass) {
|
if (firstpass) {
|
||||||
if (bondflag == 1) error->all(FLERR, "Must read Bond Type Labels before Bonds");
|
if (bondflag == 1)
|
||||||
|
error->all(FLERR, Error::ARGZERO, "Must read Bond Type Labels before Bonds");
|
||||||
blabelflag = 1;
|
blabelflag = 1;
|
||||||
typelabels(Atom::BOND);
|
typelabels(Atom::BOND);
|
||||||
} else
|
} else
|
||||||
@ -968,7 +992,8 @@ void ReadData::command(int narg, char **arg)
|
|||||||
} else if (strcmp(keyword, "Angle Type Labels") == 0) {
|
} else if (strcmp(keyword, "Angle Type Labels") == 0) {
|
||||||
if (nangletypes) {
|
if (nangletypes) {
|
||||||
if (firstpass) {
|
if (firstpass) {
|
||||||
if (angleflag == 1) error->all(FLERR, "Must read Angle Type Labels before Angles");
|
if (angleflag == 1)
|
||||||
|
error->all(FLERR, Error::ARGZERO, "Must read Angle Type Labels before Angles");
|
||||||
alabelflag = 1;
|
alabelflag = 1;
|
||||||
typelabels(Atom::ANGLE);
|
typelabels(Atom::ANGLE);
|
||||||
} else
|
} else
|
||||||
@ -979,7 +1004,7 @@ void ReadData::command(int narg, char **arg)
|
|||||||
if (ndihedraltypes) {
|
if (ndihedraltypes) {
|
||||||
if (firstpass) {
|
if (firstpass) {
|
||||||
if (dihedralflag == 1)
|
if (dihedralflag == 1)
|
||||||
error->all(FLERR, "Must read Dihedral Type Labels before Dihedrals");
|
error->all(FLERR, Error::ARGZERO, "Must read Dihedral Type Labels before Dihedrals");
|
||||||
dlabelflag = 1;
|
dlabelflag = 1;
|
||||||
typelabels(Atom::DIHEDRAL);
|
typelabels(Atom::DIHEDRAL);
|
||||||
} else
|
} else
|
||||||
@ -990,7 +1015,7 @@ void ReadData::command(int narg, char **arg)
|
|||||||
if (nimpropertypes) {
|
if (nimpropertypes) {
|
||||||
if (firstpass) {
|
if (firstpass) {
|
||||||
if (improperflag == 1)
|
if (improperflag == 1)
|
||||||
error->all(FLERR, "Must read Improper Type Labels before Impropers");
|
error->all(FLERR, Error::ARGZERO, "Must read Improper Type Labels before Impropers");
|
||||||
ilabelflag = 1;
|
ilabelflag = 1;
|
||||||
typelabels(Atom::IMPROPER);
|
typelabels(Atom::IMPROPER);
|
||||||
} else
|
} else
|
||||||
@ -1013,17 +1038,20 @@ void ReadData::command(int narg, char **arg)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (i == nfix)
|
if (i == nfix)
|
||||||
error->all(FLERR, "Unknown identifier in data file: {}{}", keyword, utils::errorurl(1));
|
error->all(FLERR, Error::ARGZERO, "Unknown identifier in data file: {}{}", keyword,
|
||||||
|
utils::errorurl(1));
|
||||||
|
|
||||||
} else
|
} else
|
||||||
error->all(FLERR, "Unknown identifier in data file: {}{}", keyword, utils::errorurl(1));
|
error->all(FLERR, Error::ARGZERO, "Unknown identifier in data file: {}{}", keyword,
|
||||||
|
utils::errorurl(1));
|
||||||
|
|
||||||
parse_keyword(0);
|
parse_keyword(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// error if natoms > 0 yet no atoms were read
|
// error if natoms > 0 yet no atoms were read
|
||||||
|
|
||||||
if (natoms > 0 && atomflag == 0) error->all(FLERR, "No valid atoms found in data file");
|
if (natoms > 0 && atomflag == 0)
|
||||||
|
error->all(FLERR, Error::ARGZERO, "No valid atoms found in data file");
|
||||||
|
|
||||||
// close file
|
// close file
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user