update fix adapt/fep from fix adapt. only supports 2-d parameters for pair styles
This commit is contained in:
@ -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<FixStoreAtom *>(
|
||||
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<FixStoreAtom *>(
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user