diff --git a/src/FEP/fix_adapt_fep.cpp b/src/FEP/fix_adapt_fep.cpp index c32b44b081..e0c5868e96 100644 --- a/src/FEP/fix_adapt_fep.cpp +++ b/src/FEP/fix_adapt_fep.cpp @@ -48,9 +48,9 @@ enum{DIAMETER, CHARGE}; FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { - if (narg < 5) error->all(FLERR,"Illegal fix adapt/fep command"); + if (narg < 5) utils::missing_cmd_args(FLERR,"fix adapt/fep", error); nevery = utils::inumeric(FLERR,arg[3],false,lmp); - if (nevery < 0) error->all(FLERR,"Illegal fix adapt/fep command"); + if (nevery < 0) error->all(FLERR,"Illegal fix adapt/fep every value {}", nevery); dynamic_group_allow = 1; create_attribute = 1; @@ -62,21 +62,21 @@ FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) : int iarg = 4; while (iarg < narg) { if (strcmp(arg[iarg],"pair") == 0) { - if (iarg+6 > narg) error->all(FLERR,"Illegal fix adapt/fep command"); + if (iarg+6 > narg) utils::missing_cmd_args(FLERR,"fix adapt/fep pair", error); nadapt++; iarg += 6; } else if (strcmp(arg[iarg],"kspace") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix adapt/fep command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR,"fix adapt/fep kspace", error); nadapt++; iarg += 2; } else if (strcmp(arg[iarg],"atom") == 0) { - if (iarg+4 > narg) error->all(FLERR,"Illegal fix adapt/fep command"); + if (iarg+4 > narg) utils::missing_cmd_args(FLERR,"fix adapt/fep atom", error); nadapt++; iarg += 4; } else break; } - if (nadapt == 0) error->all(FLERR,"Illegal fix adapt/fep command"); + if (nadapt == 0) error->all(FLERR,"Nothing to adapt in fix adapt/fep command"); adapt = new Adapt[nadapt]; // parse keywords @@ -136,11 +136,11 @@ FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) : while (iarg < narg) { if (strcmp(arg[iarg],"reset") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix adapt/fep command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR,"fix adapt/fep reset", error); resetflag = utils::logical(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"scale") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix adapt/fep command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR,"fix adapt/fep scale", error); scaleflag = utils::logical(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg],"after") == 0) { @@ -208,7 +208,7 @@ void FixAdaptFEP::post_constructor() id_fix_diam = nullptr; id_fix_chg = nullptr; - if (diam_flag) { + if (diam_flag && atom->radius_flag) { id_fix_diam = utils::strdup(id + std::string("_FIX_STORE_DIAM")); fix_diam = dynamic_cast( modify->add_fix(fmt::format("{} {} STORE/ATOM 1 0 0 1", id_fix_diam,group->names[igroup]))); @@ -226,7 +226,7 @@ void FixAdaptFEP::post_constructor() } } - if (chgflag) { + if (chgflag && atom->q_flag) { id_fix_chg = utils::strdup(id + std::string("_FIX_STORE_CHG")); fix_chg = dynamic_cast( modify->add_fix(fmt::format("{} {} STORE/ATOM 1 0 0 1",id_fix_chg,group->names[igroup]))); @@ -267,9 +267,9 @@ void FixAdaptFEP::init() ad->ivar = input->variable->find(ad->var); if (ad->ivar < 0) - error->all(FLERR,"Variable name for fix adapt/fep does not exist"); + error->all(FLERR,"Variable name {} for fix adapt/fep does not exist", ad->var); if (!input->variable->equalstyle(ad->ivar)) - error->all(FLERR,"Variable for fix adapt/fep is invalid style"); + error->all(FLERR,"Variable {} for fix adapt/fep is invalid style", ad->var); if (ad->which == PAIR) { anypair = 1; @@ -285,8 +285,9 @@ void FixAdaptFEP::init() if (ptr == nullptr) error->all(FLERR,"Fix adapt/fep pair style param not supported"); - ad->pdim = 2; - if (ad->pdim == 0) ad->scalar = (double *) ptr; + if (ad->pdim != 2) + error->all(FLERR,"Pair style parameter {} is not compatible with fix adapt/fep", ad->pparam); + if (ad->pdim == 2) ad->array = (double **) ptr; // if pair hybrid, test that ilo,ihi,jlo,jhi are valid for sub-style