example with augmented utils::bounds

option to check for type label
This commit is contained in:
Jacob Gissinger
2024-05-12 01:00:09 -04:00
parent 2492c57c8e
commit 25d4b3484d
5 changed files with 34 additions and 58 deletions

View File

@ -99,20 +99,10 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) :
adapt[nadapt].pair = nullptr;
adapt[nadapt].pstyle = utils::strdup(arg[iarg+1]);
adapt[nadapt].pparam = utils::strdup(arg[iarg+2]);
char *typestr = nullptr;
typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::ATOM, lmp);
if (typestr)
adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp);
else utils::bounds(FLERR, arg[iarg+3], 1, atom->ntypes,
adapt[nadapt].ilo, adapt[nadapt].ihi, error);
delete[] typestr;
typestr = nullptr;
typestr = utils::expand_type(FLERR, arg[iarg+4], Atom::ATOM, lmp);
if (typestr)
adapt[nadapt].jlo = adapt[nadapt].jhi = utils::inumeric(FLERR, typestr, false, lmp);
else utils::bounds(FLERR, arg[iarg+4], 1, atom->ntypes,
adapt[nadapt].jlo, adapt[nadapt].jhi, error);
delete[] typestr;
utils::bounds(FLERR, arg[iarg+3], 1, atom->ntypes,
adapt[nadapt].ilo, adapt[nadapt].ihi, error, Atom::ATOM);
utils::bounds(FLERR, arg[iarg+4], 1, atom->ntypes,
adapt[nadapt].jlo, adapt[nadapt].jhi, error, Atom::ATOM);
// switch i,j if i > j, if wildcards were not used
@ -136,13 +126,8 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) :
adapt[nadapt].bond = nullptr;
adapt[nadapt].bstyle = utils::strdup(arg[iarg+1]);
adapt[nadapt].bparam = utils::strdup(arg[iarg+2]);
char *typestr = nullptr;
typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::BOND, lmp);
if (typestr)
adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp);
else utils::bounds(FLERR, arg[iarg+3], 1, atom->nbondtypes,
adapt[nadapt].ilo, adapt[nadapt].ihi, error);
delete[] typestr;
utils::bounds(FLERR, arg[iarg+3], 1, atom->nbondtypes,
adapt[nadapt].ilo, adapt[nadapt].ihi, error, Atom::BOND);
if (utils::strmatch(arg[iarg+4],"^v_")) {
adapt[nadapt].var = utils::strdup(arg[iarg+4]+2);
} else error->all(FLERR,"Argument #{} must be variable not {}", iarg+5, arg[iarg+4]);
@ -154,13 +139,8 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) :
adapt[nadapt].angle = nullptr;
adapt[nadapt].astyle = utils::strdup(arg[iarg+1]);
adapt[nadapt].aparam = utils::strdup(arg[iarg+2]);
char *typestr = nullptr;
typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::ANGLE, lmp);
if (typestr)
adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp);
else utils::bounds(FLERR, arg[iarg+3], 1, atom->nangletypes,
adapt[nadapt].ilo, adapt[nadapt].ihi, error);
delete[] typestr;
utils::bounds(FLERR, arg[iarg+3], 1, atom->nangletypes,
adapt[nadapt].ilo, adapt[nadapt].ihi, error, Atom::ANGLE);
if (utils::strmatch(arg[iarg+4],"^v_")) {
adapt[nadapt].var = utils::strdup(arg[iarg+4]+2);
} else error->all(FLERR,"Argument #{} must be variable not {}", iarg+5, arg[iarg+4]);