hide repetitive code use a macro

This commit is contained in:
Axel Kohlmeyer
2025-06-08 08:52:45 -04:00
parent 3f685e9a44
commit 72080d78a7

View File

@ -390,34 +390,23 @@ void CreateAtoms::command(int narg, char **arg)
if (!input->variable->equalstyle(vvar))
error->all(FLERR, Error::NOLASTLINE, "Variable {} for create_atoms is invalid style", vstr);
if (xstr) {
xvar = input->variable->find(xstr);
if (xvar < 0) {
input->variable->internal_create(xstr,0.0);
xvar = input->variable->find(xstr);
}
if (!input->variable->internalstyle(xvar))
error->all(FLERR, Error::NOLASTLINE, "Variable {} for create_atoms is invalid style", xstr);
}
if (ystr) {
yvar = input->variable->find(ystr);
if (yvar < 0) {
input->variable->internal_create(ystr,0.0);
yvar = input->variable->find(ystr);
}
if (!input->variable->internalstyle(yvar))
error->all(FLERR, Error::NOLASTLINE, "Variable {} for create_atoms is invalid style", ystr);
}
if (zstr) {
zvar = input->variable->find(zstr);
if (zvar < 0) {
input->variable->internal_create(zstr,0.0);
zvar = input->variable->find(zstr);
}
if (!input->variable->internalstyle(zvar))
error->all(FLERR, Error::NOLASTLINE, "Variable {} for create_atoms is invalid style", zstr);
#define SETUP_XYZ_VAR(str,var) \
if (str) { \
var = input->variable->find(str); \
if (var < 0) { \
input->variable->internal_create(str, 0.0); \
var = input->variable->find(str); \
} \
if (!input->variable->internalstyle(var)) \
error->all(FLERR, Error::NOLASTLINE, \
"Variable {} for create_atoms is invalid style", str); \
}
SETUP_XYZ_VAR(xstr, xvar);
SETUP_XYZ_VAR(ystr, yvar);
SETUP_XYZ_VAR(zstr, zvar);
}
#undef SETUP_XYZ_VAR
// require non-none lattice be defined for BOX or REGION styles