adapt all users of FixStore to use FixStoreGlobal or FixStorePeratom
This commit is contained in:
@ -20,7 +20,7 @@
|
|||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "fft3d_wrap.h"
|
#include "fft3d_wrap.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_peratom.h"
|
||||||
#include "math_const.h"
|
#include "math_const.h"
|
||||||
#include "math_special.h"
|
#include "math_special.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
#include "comm.h"
|
#include "comm.h"
|
||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_peratom.h"
|
||||||
#include "neigh_list.h"
|
#include "neigh_list.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|||||||
@ -21,7 +21,7 @@
|
|||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "fft3d_wrap.h"
|
#include "fft3d_wrap.h"
|
||||||
#include "fix.h"
|
#include "fix.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_peratom.h"
|
||||||
#include "force.h"
|
#include "force.h"
|
||||||
#include "gridcomm.h"
|
#include "gridcomm.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
@ -783,8 +783,8 @@ void PairAmoeba::init_style()
|
|||||||
Fix *myfix;
|
Fix *myfix;
|
||||||
if (first_flag) {
|
if (first_flag) {
|
||||||
id_pole = utils::strdup("AMOEBA_pole");
|
id_pole = utils::strdup("AMOEBA_pole");
|
||||||
myfix = modify->add_fix(fmt::format("{} {} STORE peratom 1 13",id_pole,group->names[0]));
|
myfix = modify->add_fix(fmt::format("{} {} STORE/PERATOM 1 13",id_pole,group->names[0]));
|
||||||
fixpole = dynamic_cast<FixStore *>(myfix);
|
fixpole = dynamic_cast<FixStorePeratom *>(myfix);
|
||||||
}
|
}
|
||||||
|
|
||||||
// creation of per-atom storage
|
// creation of per-atom storage
|
||||||
@ -795,14 +795,14 @@ void PairAmoeba::init_style()
|
|||||||
|
|
||||||
if (first_flag && use_pred) {
|
if (first_flag && use_pred) {
|
||||||
id_udalt = utils::strdup("AMOEBA_udalt");
|
id_udalt = utils::strdup("AMOEBA_udalt");
|
||||||
myfix = modify->add_fix(fmt::format("{} {} STORE peratom 1 {} 3",
|
myfix = modify->add_fix(fmt::format("{} {} STORE/PERATOM 1 {} 3",
|
||||||
id_udalt, group->names[0], maxualt));
|
id_udalt, group->names[0], maxualt));
|
||||||
fixudalt = dynamic_cast<FixStore *>(myfix);
|
fixudalt = dynamic_cast<FixStorePeratom *>(myfix);
|
||||||
|
|
||||||
id_upalt = utils::strdup("AMOEBA_upalt");
|
id_upalt = utils::strdup("AMOEBA_upalt");
|
||||||
myfix = modify->add_fix(fmt::format("{} {} STORE peratom 1 {} 3",
|
myfix = modify->add_fix(fmt::format("{} {} STORE/PERATOM 1 {} 3",
|
||||||
id_upalt, group->names[0], maxualt));
|
id_upalt, group->names[0], maxualt));
|
||||||
fixupalt = dynamic_cast<FixStore *>(myfix);
|
fixupalt = dynamic_cast<FixStorePeratom *>(myfix);
|
||||||
}
|
}
|
||||||
|
|
||||||
// create pages for storing pairwise data:
|
// create pages for storing pairwise data:
|
||||||
@ -916,19 +916,22 @@ void PairAmoeba::init_style()
|
|||||||
|
|
||||||
if (id_pole) {
|
if (id_pole) {
|
||||||
myfix = modify->get_fix_by_id(id_pole);
|
myfix = modify->get_fix_by_id(id_pole);
|
||||||
if (!myfix) error->all(FLERR,"Could not find internal pair amoeba fix STORE id {}", id_pole);
|
if (!myfix)
|
||||||
fixpole = dynamic_cast<FixStore *>(myfix);
|
error->all(FLERR,"Could not find internal pair amoeba fix STORE/PERATOM id {}", id_pole);
|
||||||
|
fixpole = dynamic_cast<FixStorePeratom *>(myfix);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (id_udalt) {
|
if (id_udalt) {
|
||||||
myfix = modify->get_fix_by_id(id_udalt);
|
myfix = modify->get_fix_by_id(id_udalt);
|
||||||
if (!myfix) error->all(FLERR,"Could not find internal pair amoeba fix STORE id {}", id_udalt);
|
if (!myfix)
|
||||||
fixudalt = dynamic_cast<FixStore *>(myfix);
|
error->all(FLERR,"Could not find internal pair amoeba fix STORE/PERATOM id {}", id_udalt);
|
||||||
|
fixudalt = dynamic_cast<FixStorePeratom *>(myfix);
|
||||||
|
|
||||||
myfix = modify->get_fix_by_id(id_upalt);
|
myfix = modify->get_fix_by_id(id_upalt);
|
||||||
if (!myfix) error->all(FLERR,"Could not find internal pair amoeba fix STORE id {}", id_upalt);
|
if (!myfix)
|
||||||
fixupalt = dynamic_cast<FixStore *>(myfix);
|
error->all(FLERR,"Could not find internal pair amoeba fix STORE/PERATOM id {}", id_upalt);
|
||||||
|
fixupalt = dynamic_cast<FixStorePeratom *>(myfix);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assign hydrogen neighbors (redID) to each owned atom
|
// assign hydrogen neighbors (redID) to each owned atom
|
||||||
|
|||||||
@ -157,9 +157,9 @@ class PairAmoeba : public Pair {
|
|||||||
int *amgroup; // AMOEBA polarization group, 1 to Ngroup
|
int *amgroup; // AMOEBA polarization group, 1 to Ngroup
|
||||||
|
|
||||||
char *id_pole, *id_udalt, *id_upalt;
|
char *id_pole, *id_udalt, *id_upalt;
|
||||||
class FixStore *fixpole; // stores pole = multipole components
|
class FixStorePeratom *fixpole; // stores pole = multipole components
|
||||||
class FixStore *fixudalt; // stores udalt = induced dipole history
|
class FixStorePeratom *fixudalt; // stores udalt = induced dipole history
|
||||||
class FixStore *fixupalt; // stores upalt = induced dipole history
|
class FixStorePeratom *fixupalt; // stores upalt = induced dipole history
|
||||||
|
|
||||||
// static per-type properties defined in force-field file
|
// static per-type properties defined in force-field file
|
||||||
|
|
||||||
|
|||||||
@ -24,7 +24,7 @@
|
|||||||
#include "comm.h"
|
#include "comm.h"
|
||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_peratom.h"
|
||||||
#include "force.h"
|
#include "force.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
@ -69,11 +69,9 @@ ComputeTempCS::ComputeTempCS(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
// create a new fix STORE style
|
// create a new fix STORE style
|
||||||
// id = compute-ID + COMPUTE_STORE, fix group = compute group
|
// id = compute-ID + COMPUTE_STORE, fix group = compute group
|
||||||
|
|
||||||
std::string fixcmd = id + std::string("_COMPUTE_STORE");
|
id_fix = utils::strdup(id + std::string("_COMPUTE_STORE"));
|
||||||
id_fix = utils::strdup(fixcmd);
|
fix = dynamic_cast<FixStorePeratom *>(
|
||||||
|
modify->add_fix(fmt::format("{} {} STORE/PERATOM 0 1", id_fix, group->names[igroup])));
|
||||||
fixcmd += fmt::format(" {} STORE peratom 0 1", group->names[igroup]);
|
|
||||||
fix = dynamic_cast<FixStore *>(modify->add_fix(fixcmd));
|
|
||||||
|
|
||||||
// set fix store values = 0 for now
|
// set fix store values = 0 for now
|
||||||
// fill them in via setup() once Comm::borders() has been called
|
// fill them in via setup() once Comm::borders() has been called
|
||||||
@ -108,8 +106,8 @@ ComputeTempCS::~ComputeTempCS()
|
|||||||
|
|
||||||
if (modify->nfix) modify->delete_fix(id_fix);
|
if (modify->nfix) modify->delete_fix(id_fix);
|
||||||
|
|
||||||
delete [] id_fix;
|
delete[] id_fix;
|
||||||
delete [] vector;
|
delete[] vector;
|
||||||
memory->destroy(vint);
|
memory->destroy(vint);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -54,7 +54,7 @@ class ComputeTempCS : public Compute {
|
|||||||
double **vint;
|
double **vint;
|
||||||
|
|
||||||
char *id_fix;
|
char *id_fix;
|
||||||
class FixStore *fix;
|
class FixStorePeratom *fix;
|
||||||
|
|
||||||
void dof_compute();
|
void dof_compute();
|
||||||
void vcm_pairs();
|
void vcm_pairs();
|
||||||
|
|||||||
@ -54,7 +54,7 @@ https://doi.org/10.1103/PhysRevE.92.043303
|
|||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "fix.h"
|
#include "fix.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_peratom.h"
|
||||||
#include "force.h"
|
#include "force.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "improper.h"
|
#include "improper.h"
|
||||||
@ -90,8 +90,8 @@ ComputeHMA::ComputeHMA(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
// our new fix's group = same as compute group
|
// our new fix's group = same as compute group
|
||||||
|
|
||||||
id_fix = utils::strdup(std::string(id)+"_COMPUTE_STORE");
|
id_fix = utils::strdup(std::string(id)+"_COMPUTE_STORE");
|
||||||
fix = dynamic_cast<FixStore *>(modify->add_fix(fmt::format("{} {} STORE peratom 1 3",
|
fix = dynamic_cast<FixStorePeratom *>(
|
||||||
id_fix, group->names[igroup])));
|
modify->add_fix(fmt::format("{} {} STORE/PERATOM 1 3", id_fix, group->names[igroup])));
|
||||||
|
|
||||||
// calculate xu,yu,zu for fix store array
|
// calculate xu,yu,zu for fix store array
|
||||||
// skip if reset from restart file
|
// skip if reset from restart file
|
||||||
@ -196,9 +196,8 @@ void ComputeHMA::setup()
|
|||||||
|
|
||||||
// set fix which stores original atom coords
|
// set fix which stores original atom coords
|
||||||
|
|
||||||
int ifix2 = modify->find_fix(id_fix);
|
fix = dynamic_cast<FixStorePeratom *>(modify->get_fix_by_id(id_fix));
|
||||||
if (ifix2 < 0) error->all(FLERR,"Could not find hma store fix ID");
|
if (!fix) error->all(FLERR,"Could not find hma per-atom store fix ID {}", id_fix);
|
||||||
fix = dynamic_cast<FixStore *>( modify->fix[ifix2]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|||||||
@ -43,7 +43,7 @@ class ComputeHMA : public Compute {
|
|||||||
char *id_fix;
|
char *id_fix;
|
||||||
char *id_temp;
|
char *id_temp;
|
||||||
double finaltemp;
|
double finaltemp;
|
||||||
class FixStore *fix;
|
class FixStorePeratom *fix;
|
||||||
double boltz, nktv2p, inv_volume;
|
double boltz, nktv2p, inv_volume;
|
||||||
double deltaPcap;
|
double deltaPcap;
|
||||||
double virial_compute(int);
|
double virial_compute(int);
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
#include "atom.h"
|
#include "atom.h"
|
||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_peratom.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "update.h"
|
#include "update.h"
|
||||||
|
|
||||||
|
|||||||
@ -24,7 +24,7 @@
|
|||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "fix_deform.h"
|
#include "fix_deform.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_global.h"
|
||||||
#include "force.h"
|
#include "force.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "irregular.h"
|
#include "irregular.h"
|
||||||
@ -59,7 +59,7 @@ FixNPTCauchy::FixNPTCauchy(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
id_temp(nullptr), id_press(nullptr),
|
id_temp(nullptr), id_press(nullptr),
|
||||||
eta(nullptr), eta_dot(nullptr), eta_dotdot(nullptr),
|
eta(nullptr), eta_dot(nullptr), eta_dotdot(nullptr),
|
||||||
eta_mass(nullptr), etap(nullptr), etap_dot(nullptr), etap_dotdot(nullptr),
|
eta_mass(nullptr), etap(nullptr), etap_dot(nullptr), etap_dotdot(nullptr),
|
||||||
etap_mass(nullptr), id_store(nullptr),init_store(nullptr)
|
etap_mass(nullptr), id_store(nullptr), init_store(nullptr)
|
||||||
{
|
{
|
||||||
if (narg < 4) error->all(FLERR,"Illegal fix npt/cauchy command");
|
if (narg < 4) error->all(FLERR,"Illegal fix npt/cauchy command");
|
||||||
|
|
||||||
@ -78,7 +78,6 @@ FixNPTCauchy::FixNPTCauchy(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
initRUN = 0;
|
initRUN = 0;
|
||||||
restartPK = 0;
|
restartPK = 0;
|
||||||
restart_global = 1;
|
restart_global = 1;
|
||||||
restart_stored = 0;
|
|
||||||
|
|
||||||
// default values
|
// default values
|
||||||
|
|
||||||
@ -275,7 +274,7 @@ FixNPTCauchy::FixNPTCauchy(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
if (strcmp(arg[iarg+1],"all") == 0) allremap = 1;
|
if (strcmp(arg[iarg+1],"all") == 0) allremap = 1;
|
||||||
else {
|
else {
|
||||||
allremap = 0;
|
allremap = 0;
|
||||||
delete [] id_dilate;
|
delete[] id_dilate;
|
||||||
id_dilate = utils::strdup(arg[iarg+1]);
|
id_dilate = utils::strdup(arg[iarg+1]);
|
||||||
int idilate = group->find(id_dilate);
|
int idilate = group->find(id_dilate);
|
||||||
if (idilate == -1)
|
if (idilate == -1)
|
||||||
@ -619,32 +618,32 @@ FixNPTCauchy::~FixNPTCauchy()
|
|||||||
{
|
{
|
||||||
if (copymode) return;
|
if (copymode) return;
|
||||||
|
|
||||||
delete [] id_dilate;
|
delete[] id_dilate;
|
||||||
delete [] rfix;
|
delete[] rfix;
|
||||||
|
|
||||||
delete [] id_store;
|
delete[] id_store;
|
||||||
delete irregular;
|
delete irregular;
|
||||||
|
|
||||||
// delete temperature and pressure if fix created them
|
// delete temperature and pressure if fix created them
|
||||||
|
|
||||||
if (tcomputeflag) modify->delete_compute(id_temp);
|
if (tcomputeflag) modify->delete_compute(id_temp);
|
||||||
delete [] id_temp;
|
delete[] id_temp;
|
||||||
|
|
||||||
if (tstat_flag) {
|
if (tstat_flag) {
|
||||||
delete [] eta;
|
delete[] eta;
|
||||||
delete [] eta_dot;
|
delete[] eta_dot;
|
||||||
delete [] eta_dotdot;
|
delete[] eta_dotdot;
|
||||||
delete [] eta_mass;
|
delete[] eta_mass;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pstat_flag) {
|
if (pstat_flag) {
|
||||||
if (pcomputeflag) modify->delete_compute(id_press);
|
if (pcomputeflag) modify->delete_compute(id_press);
|
||||||
delete [] id_press;
|
delete[] id_press;
|
||||||
if (mpchain) {
|
if (mpchain) {
|
||||||
delete [] etap;
|
delete[] etap;
|
||||||
delete [] etap_dot;
|
delete[] etap_dot;
|
||||||
delete [] etap_dotdot;
|
delete[] etap_dotdot;
|
||||||
delete [] etap_mass;
|
delete[] etap_mass;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -762,7 +761,7 @@ void FixNPTCauchy::init()
|
|||||||
// detect if any rigid fixes exist so rigid bodies move when box is remapped
|
// detect if any rigid fixes exist so rigid bodies move when box is remapped
|
||||||
// rfix[] = indices to each fix rigid
|
// rfix[] = indices to each fix rigid
|
||||||
|
|
||||||
delete [] rfix;
|
delete[] rfix;
|
||||||
nrigid = 0;
|
nrigid = 0;
|
||||||
rfix = nullptr;
|
rfix = nullptr;
|
||||||
|
|
||||||
@ -1430,7 +1429,7 @@ int FixNPTCauchy::modify_param(int narg, char **arg)
|
|||||||
modify->delete_compute(id_temp);
|
modify->delete_compute(id_temp);
|
||||||
tcomputeflag = 0;
|
tcomputeflag = 0;
|
||||||
}
|
}
|
||||||
delete [] id_temp;
|
delete[] id_temp;
|
||||||
id_temp = utils::strdup(arg[1]);
|
id_temp = utils::strdup(arg[1]);
|
||||||
|
|
||||||
int icompute = modify->find_compute(arg[1]);
|
int icompute = modify->find_compute(arg[1]);
|
||||||
@ -1439,8 +1438,7 @@ int FixNPTCauchy::modify_param(int narg, char **arg)
|
|||||||
temperature = modify->compute[icompute];
|
temperature = modify->compute[icompute];
|
||||||
|
|
||||||
if (temperature->tempflag == 0)
|
if (temperature->tempflag == 0)
|
||||||
error->all(FLERR,
|
error->all(FLERR,"Fix_modify temperature ID does not compute temperature");
|
||||||
"Fix_modify temperature ID does not compute temperature");
|
|
||||||
if (temperature->igroup != 0 && comm->me == 0)
|
if (temperature->igroup != 0 && comm->me == 0)
|
||||||
error->warning(FLERR,"Temperature for fix modify is not for group all");
|
error->warning(FLERR,"Temperature for fix modify is not for group all");
|
||||||
|
|
||||||
@ -1462,7 +1460,7 @@ int FixNPTCauchy::modify_param(int narg, char **arg)
|
|||||||
modify->delete_compute(id_press);
|
modify->delete_compute(id_press);
|
||||||
pcomputeflag = 0;
|
pcomputeflag = 0;
|
||||||
}
|
}
|
||||||
delete [] id_press;
|
delete[] id_press;
|
||||||
id_press = utils::strdup(arg[1]);
|
id_press = utils::strdup(arg[1]);
|
||||||
|
|
||||||
int icompute = modify->find_compute(arg[1]);
|
int icompute = modify->find_compute(arg[1]);
|
||||||
@ -2451,22 +2449,19 @@ void FixNPTCauchy::CauchyStat_init()
|
|||||||
utils::logmesg(lmp, mesg);
|
utils::logmesg(lmp, mesg);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!id_store)
|
if (!id_store) id_store = utils::strdup(std::string(id) + "_FIX_NH_STORE");
|
||||||
id_store = utils::strdup(std::string(id) + "_FIX_NH_STORE");
|
init_store = dynamic_cast<FixStoreGlobal *>(modify->get_fix_by_id(id_store));
|
||||||
restart_stored = modify->find_fix(id_store);
|
|
||||||
|
|
||||||
if (restartPK==1 && restart_stored < 0)
|
if ((restartPK == 1) && !init_store)
|
||||||
error->all(FLERR,"Illegal npt/cauchy command. Continuation run"
|
error->all(FLERR,"Illegal fix npt/cauchy command. Continuation run"
|
||||||
" must follow a previously equilibrated npt/cauchy run");
|
" must follow a previously equilibrated npt/cauchy run");
|
||||||
|
|
||||||
if (alpha<=0.0)
|
if (alpha<=0.0)
|
||||||
error->all(FLERR,"Illegal fix npt/cauchy command: Alpha cannot be zero or negative.");
|
error->all(FLERR,"Illegal fix npt/cauchy command: Alpha cannot be zero or negative.");
|
||||||
|
|
||||||
if (restart_stored < 0) {
|
if (!init_store)
|
||||||
modify->add_fix(std::string(id_store) + " all STORE global 1 6");
|
init_store = dynamic_cast<FixStoreGlobal *>(
|
||||||
restart_stored = modify->find_fix(id_store);
|
modify->add_fix(std::string(id_store) + " all STORE global 1 6"));
|
||||||
}
|
|
||||||
init_store = dynamic_cast<FixStore *>(modify->fix[restart_stored]);
|
|
||||||
|
|
||||||
initRUN = 0;
|
initRUN = 0;
|
||||||
initPK = 1;
|
initPK = 1;
|
||||||
|
|||||||
@ -149,24 +149,23 @@ class FixNPTCauchy : public Fix {
|
|||||||
void nh_omega_dot();
|
void nh_omega_dot();
|
||||||
|
|
||||||
// Implementation of CauchyStat
|
// Implementation of CauchyStat
|
||||||
char *id_store; // fix id of the STORE fix for retaining data
|
char *id_store; // fix id of the STORE fix for retaining data
|
||||||
class FixStore *init_store; // fix pointer to STORE fix
|
class FixStoreGlobal *init_store; // fix pointer to STORE fix
|
||||||
double H0[3][3]; // shape matrix for the undeformed cell
|
double H0[3][3]; // shape matrix for the undeformed cell
|
||||||
double h_old[6]; // previous time step shape matrix for
|
double h_old[6]; // previous time step shape matrix for
|
||||||
// the undeformed cell
|
// the undeformed cell
|
||||||
double invH0[3][3]; // inverse of H0;
|
double invH0[3][3]; // inverse of H0;
|
||||||
double CSvol0; // volume of undeformed cell
|
double CSvol0; // volume of undeformed cell
|
||||||
double setPK[3][3]; // current set values of the PK stress
|
double setPK[3][3]; // current set values of the PK stress
|
||||||
// (this is modified until the cauchy
|
// (this is modified until the cauchy
|
||||||
// stress converges)
|
// stress converges)
|
||||||
double alpha; // integration parameter for the cauchystat
|
double alpha; // integration parameter for the cauchystat
|
||||||
int initPK; // 1 if setPK needs to be initialized either
|
int initPK; // 1 if setPK needs to be initialized either
|
||||||
// from cauchy or restart, else 0
|
// from cauchy or restart, else 0
|
||||||
int restartPK; // Read PK stress from the previous run
|
int restartPK; // Read PK stress from the previous run
|
||||||
int restart_stored; // values of PK stress from the previous step stored
|
int initRUN; // 0 if run not initialized
|
||||||
int initRUN; // 0 if run not initialized
|
// (pressure->vector not computed yet),
|
||||||
// (pressure->vector not computed yet),
|
// else 1 (pressure->vector available)
|
||||||
// else 1 (pressure->vector available)
|
|
||||||
|
|
||||||
void CauchyStat_init();
|
void CauchyStat_init();
|
||||||
void CauchyStat_cleanup();
|
void CauchyStat_cleanup();
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
#include "atom.h"
|
#include "atom.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_peratom.h"
|
||||||
#include "force.h"
|
#include "force.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
@ -210,9 +210,9 @@ void FixAdaptFEP::post_constructor()
|
|||||||
id_fix_chg = nullptr;
|
id_fix_chg = nullptr;
|
||||||
|
|
||||||
if (diamflag) {
|
if (diamflag) {
|
||||||
auto cmd = fmt::format("{}_FIX_STORE_DIAM {} STORE peratom 1 1", group->names[igroup]);
|
id_fix_diam = utils::strdup(id + std::string("_FIX_STORE_DIAM"));
|
||||||
fix_diam = dynamic_cast<FixStore *>( modify->add_fix(cmd));
|
fix_diam = dynamic_cast<FixStorePeratom *>(
|
||||||
|
modify->add_fix(fmt::format("{} {} STORE/PERATOM 1 1", id_fix_diam,group->names[igroup])));
|
||||||
if (fix_diam->restart_reset) fix_diam->restart_reset = 0;
|
if (fix_diam->restart_reset) fix_diam->restart_reset = 0;
|
||||||
else {
|
else {
|
||||||
double *vec = fix_diam->vstore;
|
double *vec = fix_diam->vstore;
|
||||||
@ -228,9 +228,9 @@ void FixAdaptFEP::post_constructor()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (chgflag) {
|
if (chgflag) {
|
||||||
auto cmd = fmt::format("{}_FIX_STORE_CHG {} STORE peratom 1 1", group->names[igroup]);
|
id_fix_chg = utils::strdup(id + std::string("_FIX_STORE_CHG"));
|
||||||
fix_chg = dynamic_cast<FixStore *>( modify->add_fix(cmd));
|
fix_chg = dynamic_cast<FixStorePeratom *>(
|
||||||
|
modify->add_fix(fmt::format("{} {} STORE/PERATOM 1 1",id_fix_chg,group->names[igroup])));
|
||||||
if (fix_chg->restart_reset) fix_chg->restart_reset = 0;
|
if (fix_chg->restart_reset) fix_chg->restart_reset = 0;
|
||||||
else {
|
else {
|
||||||
double *vec = fix_chg->vstore;
|
double *vec = fix_chg->vstore;
|
||||||
@ -333,18 +333,16 @@ void FixAdaptFEP::init()
|
|||||||
// fixes that store initial per-atom values
|
// fixes that store initial per-atom values
|
||||||
|
|
||||||
if (id_fix_diam) {
|
if (id_fix_diam) {
|
||||||
int ifix = modify->find_fix(id_fix_diam);
|
fix_diam = dynamic_cast<FixStorePeratom *>(modify->get_fix_by_id(id_fix_diam));
|
||||||
if (ifix < 0) error->all(FLERR,"Could not find fix adapt storage fix ID");
|
if (!fix_diam) error->all(FLERR,"Could not find fix adapt/fep storage fix ID {}", id_fix_diam);
|
||||||
fix_diam = dynamic_cast<FixStore *>( modify->fix[ifix]);
|
|
||||||
}
|
}
|
||||||
if (id_fix_chg) {
|
if (id_fix_chg) {
|
||||||
int ifix = modify->find_fix(id_fix_chg);
|
fix_chg = dynamic_cast<FixStorePeratom *>(modify->get_fix_by_id(id_fix_chg));
|
||||||
if (ifix < 0) error->all(FLERR,"Could not find fix adapt storage fix ID");
|
if (!fix_chg) error->all(FLERR,"Could not find fix adapt/fep storage fix ID {}", id_fix_chg);
|
||||||
fix_chg = dynamic_cast<FixStore *>( modify->fix[ifix]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (utils::strmatch(update->integrate_style,"^respa"))
|
if (utils::strmatch(update->integrate_style,"^respa"))
|
||||||
nlevels_respa = (dynamic_cast<Respa *>( update->integrate))->nlevels;
|
nlevels_respa = (dynamic_cast<Respa *>(update->integrate))->nlevels;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|||||||
@ -46,7 +46,7 @@ class FixAdaptFEP : public Fix {
|
|||||||
int anypair;
|
int anypair;
|
||||||
int nlevels_respa;
|
int nlevels_respa;
|
||||||
char *id_fix_diam, *id_fix_chg;
|
char *id_fix_diam, *id_fix_chg;
|
||||||
class FixStore *fix_diam, *fix_chg;
|
class FixStorePeratom *fix_diam, *fix_chg;
|
||||||
|
|
||||||
struct Adapt {
|
struct Adapt {
|
||||||
int which, ivar;
|
int which, ivar;
|
||||||
|
|||||||
@ -24,7 +24,7 @@
|
|||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "finish.h"
|
#include "finish.h"
|
||||||
#include "fix_event_tad.h"
|
#include "fix_event_tad.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_peratom.h"
|
||||||
#include "force.h"
|
#include "force.h"
|
||||||
#include "integrate.h"
|
#include "integrate.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
@ -54,9 +54,9 @@ TAD::TAD(LAMMPS *lmp) : Command(lmp)
|
|||||||
TAD::~TAD()
|
TAD::~TAD()
|
||||||
{
|
{
|
||||||
memory->sfree(fix_event_list);
|
memory->sfree(fix_event_list);
|
||||||
if (neb_logfilename != nullptr) delete [] neb_logfilename;
|
if (neb_logfilename != nullptr) delete[] neb_logfilename;
|
||||||
delete [] min_style;
|
delete[] min_style;
|
||||||
delete [] min_style_neb;
|
delete[] min_style_neb;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
@ -131,11 +131,11 @@ void TAD::command(int narg, char **arg)
|
|||||||
|
|
||||||
// create FixEventTAD object to store last event
|
// create FixEventTAD object to store last event
|
||||||
|
|
||||||
fix_event = dynamic_cast<FixEventTAD *>( modify->add_fix("tad_event all EVENT/TAD"));
|
fix_event = dynamic_cast<FixEventTAD *>(modify->add_fix("tad_event all EVENT/TAD"));
|
||||||
|
|
||||||
// create FixStore object to store revert state
|
// create FixStorePeratom object to store revert state
|
||||||
|
|
||||||
fix_revert = dynamic_cast<FixStore *>( modify->add_fix("tad_revert all STORE peratom 0 7"));
|
fix_revert = dynamic_cast<FixStorePeratom *>(modify->add_fix("tad_revert all STORE/PERATOM 0 7"));
|
||||||
|
|
||||||
// create Finish for timing output
|
// create Finish for timing output
|
||||||
|
|
||||||
@ -388,7 +388,7 @@ void TAD::command(int narg, char **arg)
|
|||||||
neighbor->dist_check = neigh_dist_check;
|
neighbor->dist_check = neigh_dist_check;
|
||||||
|
|
||||||
|
|
||||||
delete [] id_compute;
|
delete[] id_compute;
|
||||||
delete finish;
|
delete finish;
|
||||||
modify->delete_fix("tad_event");
|
modify->delete_fix("tad_event");
|
||||||
modify->delete_fix("tad_revert");
|
modify->delete_fix("tad_revert");
|
||||||
@ -578,7 +578,7 @@ void TAD::options(int narg, char **arg)
|
|||||||
|
|
||||||
} else if (strcmp(arg[iarg],"neb_style") == 0) {
|
} else if (strcmp(arg[iarg],"neb_style") == 0) {
|
||||||
if (iarg+2 > narg) error->all(FLERR,"Illegal tad command");
|
if (iarg+2 > narg) error->all(FLERR,"Illegal tad command");
|
||||||
delete [] min_style_neb;
|
delete[] min_style_neb;
|
||||||
min_style_neb = utils::strdup(arg[iarg+1]);
|
min_style_neb = utils::strdup(arg[iarg+1]);
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
|
|
||||||
@ -589,7 +589,7 @@ void TAD::options(int narg, char **arg)
|
|||||||
iarg += 2;
|
iarg += 2;
|
||||||
|
|
||||||
} else if (strcmp(arg[iarg],"neb_log") == 0) {
|
} else if (strcmp(arg[iarg],"neb_log") == 0) {
|
||||||
delete [] neb_logfilename;
|
delete[] neb_logfilename;
|
||||||
if (iarg+2 > narg) error->all(FLERR,"Illegal tad command");
|
if (iarg+2 > narg) error->all(FLERR,"Illegal tad command");
|
||||||
if (strcmp(arg[iarg+1],"none") == 0) neb_logfilename = nullptr;
|
if (strcmp(arg[iarg+1],"none") == 0) neb_logfilename = nullptr;
|
||||||
else {
|
else {
|
||||||
|
|||||||
@ -48,15 +48,15 @@ class TAD : public Command {
|
|||||||
double time_dynamics, time_quench, time_neb, time_comm, time_output;
|
double time_dynamics, time_quench, time_neb, time_comm, time_output;
|
||||||
double time_start;
|
double time_start;
|
||||||
|
|
||||||
class NEB *neb; // NEB object
|
class NEB *neb; // NEB object
|
||||||
class Fix *fix_neb; // FixNEB object
|
class Fix *fix_neb; // FixNEB object
|
||||||
class Compute *compute_event; // compute to detect event
|
class Compute *compute_event; // compute to detect event
|
||||||
class FixEventTAD *fix_event; // current event/state
|
class FixEventTAD *fix_event; // current event/state
|
||||||
class FixStore *fix_revert; // revert state
|
class FixStorePeratom *fix_revert; // revert state
|
||||||
FixEventTAD **fix_event_list; // list of possible events
|
FixEventTAD **fix_event_list; // list of possible events
|
||||||
int n_event_list; // number of events
|
int n_event_list; // number of events
|
||||||
int nmax_event_list; // allocated events
|
int nmax_event_list; // allocated events
|
||||||
int nmin_event_list; // minimum allocation
|
int nmin_event_list; // minimum allocation
|
||||||
|
|
||||||
char *neb_logfilename; // filename for ulogfile_neb
|
char *neb_logfilename; // filename for ulogfile_neb
|
||||||
FILE *uscreen_neb; // neb universe screen output
|
FILE *uscreen_neb; // neb universe screen output
|
||||||
|
|||||||
@ -31,7 +31,7 @@
|
|||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "fix.h"
|
#include "fix.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_peratom.h"
|
||||||
#include "force.h"
|
#include "force.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
@ -2357,16 +2357,16 @@ int DumpVTK::modify_param(int narg, char **arg)
|
|||||||
thresh_value[nthresh] = utils::numeric(FLERR,arg[3],false,lmp);
|
thresh_value[nthresh] = utils::numeric(FLERR,arg[3],false,lmp);
|
||||||
thresh_last[nthresh] = -1;
|
thresh_last[nthresh] = -1;
|
||||||
} else {
|
} else {
|
||||||
thresh_fix = (FixStore **)
|
thresh_fix = (FixStorePeratom **)
|
||||||
memory->srealloc(thresh_fix,(nthreshlast+1)*sizeof(FixStore *),"dump:thresh_fix");
|
memory->srealloc(thresh_fix,(nthreshlast+1)*sizeof(FixStorePeratom *),"dump:thresh_fix");
|
||||||
thresh_fixID = (char **)
|
thresh_fixID = (char **)
|
||||||
memory->srealloc(thresh_fixID,(nthreshlast+1)*sizeof(char *),"dump:thresh_fixID");
|
memory->srealloc(thresh_fixID,(nthreshlast+1)*sizeof(char *),"dump:thresh_fixID");
|
||||||
memory->grow(thresh_first,(nthreshlast+1),"dump:thresh_first");
|
memory->grow(thresh_first,(nthreshlast+1),"dump:thresh_first");
|
||||||
|
|
||||||
std::string threshid = fmt::format("{}{}_DUMP_STORE",id,nthreshlast);
|
std::string threshid = fmt::format("{}{}_DUMP_STORE",id,nthreshlast);
|
||||||
thresh_fixID[nthreshlast] = utils::strdup(threshid);
|
thresh_fixID[nthreshlast] = utils::strdup(threshid);
|
||||||
threshid += fmt::format(" {} STORE peratom 1 1", group->names[igroup]);
|
threshid += fmt::format(" {} STORE/PERATOM 1 1", group->names[igroup]);
|
||||||
thresh_fix[nthreshlast] = (FixStore *) modify->add_fix(threshid);
|
thresh_fix[nthreshlast] = dynamic_cast<FixStorePeratom *>(modify->add_fix(threshid));
|
||||||
|
|
||||||
thresh_last[nthreshlast] = nthreshlast;
|
thresh_last[nthreshlast] = nthreshlast;
|
||||||
thresh_first[nthreshlast] = 1;
|
thresh_first[nthreshlast] = 1;
|
||||||
|
|||||||
@ -26,7 +26,7 @@
|
|||||||
#include "neighbor.h"
|
#include "neighbor.h"
|
||||||
#include "comm.h"
|
#include "comm.h"
|
||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_peratom.h"
|
||||||
#include "imbalance.h"
|
#include "imbalance.h"
|
||||||
#include "imbalance_group.h"
|
#include "imbalance_group.h"
|
||||||
#include "imbalance_neigh.h"
|
#include "imbalance_neigh.h"
|
||||||
@ -78,26 +78,26 @@ Balance::~Balance()
|
|||||||
memory->destroy(proccost);
|
memory->destroy(proccost);
|
||||||
memory->destroy(allproccost);
|
memory->destroy(allproccost);
|
||||||
|
|
||||||
delete [] user_xsplit;
|
delete[] user_xsplit;
|
||||||
delete [] user_ysplit;
|
delete[] user_ysplit;
|
||||||
delete [] user_zsplit;
|
delete[] user_zsplit;
|
||||||
|
|
||||||
if (shift_allocate) {
|
if (shift_allocate) {
|
||||||
delete [] bdim;
|
delete[] bdim;
|
||||||
delete [] onecost;
|
delete[] onecost;
|
||||||
delete [] allcost;
|
delete[] allcost;
|
||||||
delete [] sum;
|
delete[] sum;
|
||||||
delete [] target;
|
delete[] target;
|
||||||
delete [] lo;
|
delete[] lo;
|
||||||
delete [] hi;
|
delete[] hi;
|
||||||
delete [] losum;
|
delete[] losum;
|
||||||
delete [] hisum;
|
delete[] hisum;
|
||||||
}
|
}
|
||||||
|
|
||||||
delete rcb;
|
delete rcb;
|
||||||
|
|
||||||
for (int i = 0; i < nimbalance; i++) delete imbalances[i];
|
for (int i = 0; i < nimbalance; i++) delete imbalances[i];
|
||||||
delete [] imbalances;
|
delete[] imbalances;
|
||||||
|
|
||||||
// check nfix in case all fixes have already been deleted
|
// check nfix in case all fixes have already been deleted
|
||||||
|
|
||||||
@ -143,7 +143,7 @@ void Balance::command(int narg, char **arg)
|
|||||||
if (1 + procgrid[0]-1 > narg)
|
if (1 + procgrid[0]-1 > narg)
|
||||||
error->all(FLERR,"Illegal balance command");
|
error->all(FLERR,"Illegal balance command");
|
||||||
xflag = USER;
|
xflag = USER;
|
||||||
delete [] user_xsplit;
|
delete[] user_xsplit;
|
||||||
user_xsplit = new double[procgrid[0]+1];
|
user_xsplit = new double[procgrid[0]+1];
|
||||||
user_xsplit[0] = 0.0;
|
user_xsplit[0] = 0.0;
|
||||||
iarg++;
|
iarg++;
|
||||||
@ -163,7 +163,7 @@ void Balance::command(int narg, char **arg)
|
|||||||
if (1 + procgrid[1]-1 > narg)
|
if (1 + procgrid[1]-1 > narg)
|
||||||
error->all(FLERR,"Illegal balance command");
|
error->all(FLERR,"Illegal balance command");
|
||||||
yflag = USER;
|
yflag = USER;
|
||||||
delete [] user_ysplit;
|
delete[] user_ysplit;
|
||||||
user_ysplit = new double[procgrid[1]+1];
|
user_ysplit = new double[procgrid[1]+1];
|
||||||
user_ysplit[0] = 0.0;
|
user_ysplit[0] = 0.0;
|
||||||
iarg++;
|
iarg++;
|
||||||
@ -183,7 +183,7 @@ void Balance::command(int narg, char **arg)
|
|||||||
if (1 + procgrid[2]-1 > narg)
|
if (1 + procgrid[2]-1 > narg)
|
||||||
error->all(FLERR,"Illegal balance command");
|
error->all(FLERR,"Illegal balance command");
|
||||||
zflag = USER;
|
zflag = USER;
|
||||||
delete [] user_zsplit;
|
delete[] user_zsplit;
|
||||||
user_zsplit = new double[procgrid[2]+1];
|
user_zsplit = new double[procgrid[2]+1];
|
||||||
user_zsplit[0] = 0.0;
|
user_zsplit[0] = 0.0;
|
||||||
iarg++;
|
iarg++;
|
||||||
@ -496,8 +496,9 @@ void Balance::weight_storage(char *prefix)
|
|||||||
if (prefix) cmd = prefix;
|
if (prefix) cmd = prefix;
|
||||||
cmd += "IMBALANCE_WEIGHTS";
|
cmd += "IMBALANCE_WEIGHTS";
|
||||||
|
|
||||||
fixstore = dynamic_cast<FixStore *>( modify->get_fix_by_id(cmd));
|
fixstore = dynamic_cast<FixStorePeratom *>(modify->get_fix_by_id(cmd));
|
||||||
if (!fixstore) fixstore = dynamic_cast<FixStore *>( modify->add_fix(cmd + " all STORE peratom 0 1"));
|
if (!fixstore)
|
||||||
|
fixstore = dynamic_cast<FixStorePeratom *>(modify->add_fix(cmd + " all STORE/PERATOM 0 1"));
|
||||||
|
|
||||||
// do not carry weights with atoms during normal atom migration
|
// do not carry weights with atoms during normal atom migration
|
||||||
|
|
||||||
|
|||||||
@ -27,10 +27,10 @@ namespace LAMMPS_NS {
|
|||||||
class Balance : public Command {
|
class Balance : public Command {
|
||||||
public:
|
public:
|
||||||
class RCB *rcb;
|
class RCB *rcb;
|
||||||
class FixStore *fixstore; // per-atom weights stored in FixStore
|
class FixStorePeratom *fixstore; // per-atom weights stored in FixStorePeratom
|
||||||
int wtflag; // 1 if particle weighting is used
|
int wtflag; // 1 if particle weighting is used
|
||||||
int varflag; // 1 if weight style var(iable) is used
|
int varflag; // 1 if weight style var(iable) is used
|
||||||
int outflag; // 1 for output of balance results to file
|
int outflag; // 1 for output of balance results to file
|
||||||
|
|
||||||
Balance(class LAMMPS *);
|
Balance(class LAMMPS *);
|
||||||
~Balance() override;
|
~Balance() override;
|
||||||
@ -90,8 +90,6 @@ class Balance : public Command {
|
|||||||
void debug_shift_output(int, int, int, double *);
|
void debug_shift_output(int, int, int, double *);
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace LAMMPS_NS
|
} // namespace LAMMPS_NS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -21,7 +21,7 @@
|
|||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "fix.h"
|
#include "fix.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_peratom.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
#include "lattice.h"
|
#include "lattice.h"
|
||||||
@ -571,8 +571,8 @@ void ComputeChunkAtom::init()
|
|||||||
|
|
||||||
if ((idsflag == ONCE || lockcount) && !fixstore) {
|
if ((idsflag == ONCE || lockcount) && !fixstore) {
|
||||||
id_fix = utils::strdup(id + std::string("_COMPUTE_STORE"));
|
id_fix = utils::strdup(id + std::string("_COMPUTE_STORE"));
|
||||||
fixstore = dynamic_cast<FixStore *>(
|
fixstore = dynamic_cast<FixStorePeratom *>(
|
||||||
modify->add_fix(fmt::format("{} {} STORE peratom 1 1", id_fix, group->names[igroup])));
|
modify->add_fix(fmt::format("{} {} STORE/PERATOM 1 1", id_fix, group->names[igroup])));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((idsflag != ONCE && !lockcount) && fixstore) {
|
if ((idsflag != ONCE && !lockcount) && fixstore) {
|
||||||
|
|||||||
@ -93,7 +93,7 @@ class ComputeChunkAtom : public Compute {
|
|||||||
double *varatom;
|
double *varatom;
|
||||||
|
|
||||||
char *id_fix;
|
char *id_fix;
|
||||||
class FixStore *fixstore;
|
class FixStorePeratom *fixstore;
|
||||||
|
|
||||||
class Fix *lockfix; // ptr to FixAveChunk that is locking out setups
|
class Fix *lockfix; // ptr to FixAveChunk that is locking out setups
|
||||||
// null pointer if no lock currently in place
|
// null pointer if no lock currently in place
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
#include "atom.h"
|
#include "atom.h"
|
||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_peratom.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
@ -74,8 +74,8 @@ ComputeDisplaceAtom::ComputeDisplaceAtom(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
// id = compute-ID + COMPUTE_STORE, fix group = compute group
|
// id = compute-ID + COMPUTE_STORE, fix group = compute group
|
||||||
|
|
||||||
id_fix = utils::strdup(std::string(id) + "_COMPUTE_STORE");
|
id_fix = utils::strdup(std::string(id) + "_COMPUTE_STORE");
|
||||||
fix = dynamic_cast<FixStore *>( modify->add_fix(fmt::format("{} {} STORE peratom 1 3",
|
fix = dynamic_cast<FixStorePeratom *>(
|
||||||
id_fix, group->names[igroup])));
|
modify->add_fix(fmt::format("{} {} STORE/PERATOM 1 3", id_fix, group->names[igroup])));
|
||||||
|
|
||||||
// calculate xu,yu,zu for fix store array
|
// calculate xu,yu,zu for fix store array
|
||||||
// skip if reset from restart file
|
// skip if reset from restart file
|
||||||
@ -120,7 +120,7 @@ void ComputeDisplaceAtom::init()
|
|||||||
{
|
{
|
||||||
// set fix which stores original atom coords
|
// set fix which stores original atom coords
|
||||||
|
|
||||||
fix = dynamic_cast<FixStore *>( modify->get_fix_by_id(id_fix));
|
fix = dynamic_cast<FixStorePeratom *>(modify->get_fix_by_id(id_fix));
|
||||||
if (!fix) error->all(FLERR,"Could not find compute displace/atom fix with ID {}", id_fix);
|
if (!fix) error->all(FLERR,"Could not find compute displace/atom fix with ID {}", id_fix);
|
||||||
|
|
||||||
if (refreshflag) {
|
if (refreshflag) {
|
||||||
|
|||||||
@ -38,7 +38,7 @@ class ComputeDisplaceAtom : public Compute {
|
|||||||
int nmax;
|
int nmax;
|
||||||
double **displace;
|
double **displace;
|
||||||
char *id_fix;
|
char *id_fix;
|
||||||
class FixStore *fix;
|
class FixStorePeratom *fix;
|
||||||
|
|
||||||
int refreshflag, ivar, nvmax; // refresh option is enabled
|
int refreshflag, ivar, nvmax; // refresh option is enabled
|
||||||
char *rvar; // for incremental dumps
|
char *rvar; // for incremental dumps
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
#include "atom.h"
|
#include "atom.h"
|
||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_peratom.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "modify.h"
|
#include "modify.h"
|
||||||
#include "update.h"
|
#include "update.h"
|
||||||
@ -27,7 +27,8 @@ using namespace LAMMPS_NS;
|
|||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
ComputeMSD::ComputeMSD(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg), id_fix(nullptr)
|
ComputeMSD::ComputeMSD(LAMMPS *lmp, int narg, char **arg)
|
||||||
|
: Compute(lmp, narg, arg), id_fix(nullptr)
|
||||||
{
|
{
|
||||||
if (narg < 3) error->all(FLERR, "Illegal compute msd command");
|
if (narg < 3) error->all(FLERR, "Illegal compute msd command");
|
||||||
|
|
||||||
@ -63,8 +64,8 @@ ComputeMSD::ComputeMSD(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, a
|
|||||||
// id = compute-ID + COMPUTE_STORE, fix group = compute group
|
// id = compute-ID + COMPUTE_STORE, fix group = compute group
|
||||||
|
|
||||||
id_fix = utils::strdup(id + std::string("_COMPUTE_STORE"));
|
id_fix = utils::strdup(id + std::string("_COMPUTE_STORE"));
|
||||||
fix = dynamic_cast<FixStore *>(
|
fix = dynamic_cast<FixStorePeratom *>(
|
||||||
modify->add_fix(fmt::format("{} {} STORE peratom 1 3", id_fix, group->names[igroup])));
|
modify->add_fix(fmt::format("{} {} STORE/PERATOM 1 3", id_fix, group->names[igroup])));
|
||||||
|
|
||||||
// calculate xu,yu,zu for fix store array
|
// calculate xu,yu,zu for fix store array
|
||||||
// skip if reset from restart file
|
// skip if reset from restart file
|
||||||
@ -127,7 +128,7 @@ void ComputeMSD::init()
|
|||||||
{
|
{
|
||||||
// set fix which stores reference atom coords
|
// set fix which stores reference atom coords
|
||||||
|
|
||||||
fix = dynamic_cast<FixStore *>(modify->get_fix_by_id(id_fix));
|
fix = dynamic_cast<FixStorePeratom *>(modify->get_fix_by_id(id_fix));
|
||||||
if (!fix) error->all(FLERR, "Could not find compute msd fix with ID {}", id_fix);
|
if (!fix) error->all(FLERR, "Could not find compute msd fix with ID {}", id_fix);
|
||||||
|
|
||||||
// nmsd = # of atoms in group
|
// nmsd = # of atoms in group
|
||||||
|
|||||||
@ -39,7 +39,7 @@ class ComputeMSD : public Compute {
|
|||||||
bigint nmsd;
|
bigint nmsd;
|
||||||
double masstotal;
|
double masstotal;
|
||||||
char *id_fix;
|
char *id_fix;
|
||||||
class FixStore *fix;
|
class FixStorePeratom *fix;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace LAMMPS_NS
|
} // namespace LAMMPS_NS
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
#include "compute_chunk_atom.h"
|
#include "compute_chunk_atom.h"
|
||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_global.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "modify.h"
|
#include "modify.h"
|
||||||
@ -31,8 +31,8 @@ using namespace LAMMPS_NS;
|
|||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
ComputeMSDChunk::ComputeMSDChunk(LAMMPS *lmp, int narg, char **arg) :
|
ComputeMSDChunk::ComputeMSDChunk(LAMMPS *lmp, int narg, char **arg) :
|
||||||
Compute(lmp, narg, arg),
|
Compute(lmp, narg, arg), idchunk(nullptr), id_fix(nullptr), massproc(nullptr),
|
||||||
idchunk(nullptr), id_fix(nullptr), massproc(nullptr), masstotal(nullptr), com(nullptr), comall(nullptr), msd(nullptr)
|
masstotal(nullptr), com(nullptr), comall(nullptr), msd(nullptr)
|
||||||
{
|
{
|
||||||
if (narg != 4) error->all(FLERR,"Illegal compute msd/chunk command");
|
if (narg != 4) error->all(FLERR,"Illegal compute msd/chunk command");
|
||||||
|
|
||||||
@ -57,8 +57,8 @@ ComputeMSDChunk::ComputeMSDChunk(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
// otherwise size reset and init will be done in setup()
|
// otherwise size reset and init will be done in setup()
|
||||||
|
|
||||||
id_fix = utils::strdup(std::string(id) + "_COMPUTE_STORE");
|
id_fix = utils::strdup(std::string(id) + "_COMPUTE_STORE");
|
||||||
fix = dynamic_cast<FixStore *>( modify->add_fix(fmt::format("{} {} STORE global 1 1",
|
fix = dynamic_cast<FixStoreGlobal *>(
|
||||||
id_fix,group->names[igroup])));
|
modify->add_fix(fmt::format("{} {} STORE/GLOBAL 1 1", id_fix,group->names[igroup])));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
@ -93,7 +93,7 @@ void ComputeMSDChunk::init()
|
|||||||
// if firstflag, will be created in setup()
|
// if firstflag, will be created in setup()
|
||||||
|
|
||||||
if (!firstflag) {
|
if (!firstflag) {
|
||||||
fix = dynamic_cast<FixStore *>( modify->get_fix_by_id(id_fix));
|
fix = dynamic_cast<FixStoreGlobal *>(modify->get_fix_by_id(id_fix));
|
||||||
if (!fix) error->all(FLERR,"Could not find compute msd/chunk fix with ID {}", id_fix);
|
if (!fix) error->all(FLERR,"Could not find compute msd/chunk fix with ID {}", id_fix);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -45,7 +45,7 @@ class ComputeMSDChunk : public Compute {
|
|||||||
char *idchunk;
|
char *idchunk;
|
||||||
class ComputeChunkAtom *cchunk;
|
class ComputeChunkAtom *cchunk;
|
||||||
char *id_fix;
|
char *id_fix;
|
||||||
class FixStore *fix;
|
class FixStoreGlobal *fix;
|
||||||
int firstflag;
|
int firstflag;
|
||||||
|
|
||||||
double *massproc, *masstotal;
|
double *massproc, *masstotal;
|
||||||
@ -54,8 +54,6 @@ class ComputeMSDChunk : public Compute {
|
|||||||
|
|
||||||
void allocate();
|
void allocate();
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace LAMMPS_NS
|
} // namespace LAMMPS_NS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
#include "update.h"
|
#include "update.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "modify.h"
|
#include "modify.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_peratom.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
|
|
||||||
using namespace LAMMPS_NS;
|
using namespace LAMMPS_NS;
|
||||||
@ -26,8 +26,7 @@ using namespace LAMMPS_NS;
|
|||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
ComputeVACF::ComputeVACF(LAMMPS *lmp, int narg, char **arg) :
|
ComputeVACF::ComputeVACF(LAMMPS *lmp, int narg, char **arg) :
|
||||||
Compute(lmp, narg, arg),
|
Compute(lmp, narg, arg), id_fix(nullptr)
|
||||||
id_fix(nullptr)
|
|
||||||
{
|
{
|
||||||
if (narg < 3) error->all(FLERR,"Illegal compute vacf command");
|
if (narg < 3) error->all(FLERR,"Illegal compute vacf command");
|
||||||
|
|
||||||
@ -40,7 +39,8 @@ ComputeVACF::ComputeVACF(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
// id = compute-ID + COMPUTE_STORE, fix group = compute group
|
// id = compute-ID + COMPUTE_STORE, fix group = compute group
|
||||||
|
|
||||||
id_fix = utils::strdup(id + std::string("_COMPUTE_STORE"));
|
id_fix = utils::strdup(id + std::string("_COMPUTE_STORE"));
|
||||||
fix = dynamic_cast<FixStore *>( modify->add_fix(fmt::format("{} {} STORE peratom 1 3", id_fix, group->names[igroup])));
|
fix = dynamic_cast<FixStorePeratom *>(
|
||||||
|
modify->add_fix(fmt::format("{} {} STORE/PERATOM 1 3", id_fix, group->names[igroup])));
|
||||||
|
|
||||||
// store current velocities in fix store array
|
// store current velocities in fix store array
|
||||||
// skip if reset from restart file
|
// skip if reset from restart file
|
||||||
@ -84,7 +84,7 @@ void ComputeVACF::init()
|
|||||||
{
|
{
|
||||||
// set fix which stores original atom velocities
|
// set fix which stores original atom velocities
|
||||||
|
|
||||||
fix = dynamic_cast<FixStore *>( modify->get_fix_by_id(id_fix));
|
fix = dynamic_cast<FixStorePeratom *>(modify->get_fix_by_id(id_fix));
|
||||||
if (!fix) error->all(FLERR,"Could not find compute vacf fix ID {}", id_fix);
|
if (!fix) error->all(FLERR,"Could not find compute vacf fix ID {}", id_fix);
|
||||||
|
|
||||||
// nvacf = # of atoms in group
|
// nvacf = # of atoms in group
|
||||||
|
|||||||
@ -35,7 +35,7 @@ class ComputeVACF : public Compute {
|
|||||||
protected:
|
protected:
|
||||||
bigint nvacf;
|
bigint nvacf;
|
||||||
char *id_fix;
|
char *id_fix;
|
||||||
class FixStore *fix;
|
class FixStorePeratom *fix;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace LAMMPS_NS
|
} // namespace LAMMPS_NS
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "fix.h"
|
#include "fix.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_peratom.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
@ -2000,16 +2000,16 @@ int DumpCustom::modify_param(int narg, char **arg)
|
|||||||
thresh_value[nthresh] = utils::numeric(FLERR,arg[3],false,lmp);
|
thresh_value[nthresh] = utils::numeric(FLERR,arg[3],false,lmp);
|
||||||
thresh_last[nthresh] = -1;
|
thresh_last[nthresh] = -1;
|
||||||
} else {
|
} else {
|
||||||
thresh_fix = (FixStore **)
|
thresh_fix = (FixStorePeratom **)
|
||||||
memory->srealloc(thresh_fix,(nthreshlast+1)*sizeof(FixStore *),"dump:thresh_fix");
|
memory->srealloc(thresh_fix,(nthreshlast+1)*sizeof(FixStorePeratom *),"dump:thresh_fix");
|
||||||
thresh_fixID = (char **)
|
thresh_fixID = (char **)
|
||||||
memory->srealloc(thresh_fixID,(nthreshlast+1)*sizeof(char *),"dump:thresh_fixID");
|
memory->srealloc(thresh_fixID,(nthreshlast+1)*sizeof(char *),"dump:thresh_fixID");
|
||||||
memory->grow(thresh_first,(nthreshlast+1),"dump:thresh_first");
|
memory->grow(thresh_first,(nthreshlast+1),"dump:thresh_first");
|
||||||
|
|
||||||
std::string threshid = fmt::format("{}{}_DUMP_STORE",id,nthreshlast);
|
std::string threshid = fmt::format("{}{}_DUMP_STORE",id,nthreshlast);
|
||||||
thresh_fixID[nthreshlast] = utils::strdup(threshid);
|
thresh_fixID[nthreshlast] = utils::strdup(threshid);
|
||||||
threshid += fmt::format(" {} STORE peratom 1 1", group->names[igroup]);
|
threshid += fmt::format(" {} STORE/PERATOM 1 1", group->names[igroup]);
|
||||||
thresh_fix[nthreshlast] = dynamic_cast<FixStore *>( modify->add_fix(threshid));
|
thresh_fix[nthreshlast] = dynamic_cast<FixStorePeratom *>(modify->add_fix(threshid));
|
||||||
|
|
||||||
thresh_last[nthreshlast] = nthreshlast;
|
thresh_last[nthreshlast] = nthreshlast;
|
||||||
thresh_first[nthreshlast] = 1;
|
thresh_first[nthreshlast] = 1;
|
||||||
|
|||||||
@ -37,19 +37,19 @@ class DumpCustom : public Dump {
|
|||||||
int nevery; // dump frequency for output
|
int nevery; // dump frequency for output
|
||||||
char *idregion; // region ID, nullptr if no region
|
char *idregion; // region ID, nullptr if no region
|
||||||
|
|
||||||
int nthresh; // # of defined thresholds
|
int nthresh; // # of defined thresholds
|
||||||
int nthreshlast; // # of defined thresholds with value = LAST
|
int nthreshlast; // # of defined thresholds with value = LAST
|
||||||
//
|
//
|
||||||
int *thresh_array; // array to threshold on for each nthresh
|
int *thresh_array; // array to threshold on for each nthresh
|
||||||
int *thresh_op; // threshold operation for each nthresh
|
int *thresh_op; // threshold operation for each nthresh
|
||||||
double *thresh_value; // threshold value for each nthresh
|
double *thresh_value; // threshold value for each nthresh
|
||||||
int *thresh_last; // for threshold value = LAST,
|
int *thresh_last; // for threshold value = LAST,
|
||||||
// index into thresh_fix
|
// index into thresh_fix
|
||||||
// -1 if not LAST, value is numeric
|
// -1 if not LAST, value is numeric
|
||||||
//
|
//
|
||||||
class FixStore **thresh_fix; // stores values for each threshold LAST
|
class FixStorePeratom **thresh_fix; // stores values for each threshold LAST
|
||||||
char **thresh_fixID; // IDs of thresh_fixes
|
char **thresh_fixID; // IDs of thresh_fixes
|
||||||
int *thresh_first; // 1 the first time a FixStore values accessed
|
int *thresh_first; // 1 the first time a FixStore values accessed
|
||||||
|
|
||||||
int expand; // flag for whether field args were expanded
|
int expand; // flag for whether field args were expanded
|
||||||
char **earg; // field names with wildcard expansion
|
char **earg; // field names with wildcard expansion
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
#include "bond.h"
|
#include "bond.h"
|
||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_peratom.h"
|
||||||
#include "force.h"
|
#include "force.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
@ -278,8 +278,8 @@ void FixAdapt::post_constructor()
|
|||||||
|
|
||||||
if (diamflag && atom->radius_flag) {
|
if (diamflag && atom->radius_flag) {
|
||||||
id_fix_diam = utils::strdup(id + std::string("_FIX_STORE_DIAM"));
|
id_fix_diam = utils::strdup(id + std::string("_FIX_STORE_DIAM"));
|
||||||
fix_diam = dynamic_cast<FixStore *>( modify->add_fix(fmt::format("{} {} STORE peratom 1 1",
|
fix_diam = dynamic_cast<FixStorePeratom *>(
|
||||||
id_fix_diam,group->names[igroup])));
|
modify->add_fix(fmt::format("{} {} STORE/PERATOM 1 1", id_fix_diam,group->names[igroup])));
|
||||||
if (fix_diam->restart_reset) fix_diam->restart_reset = 0;
|
if (fix_diam->restart_reset) fix_diam->restart_reset = 0;
|
||||||
else {
|
else {
|
||||||
double *vec = fix_diam->vstore;
|
double *vec = fix_diam->vstore;
|
||||||
@ -296,8 +296,8 @@ void FixAdapt::post_constructor()
|
|||||||
|
|
||||||
if (chgflag && atom->q_flag) {
|
if (chgflag && atom->q_flag) {
|
||||||
id_fix_chg = utils::strdup(id + std::string("_FIX_STORE_CHG"));
|
id_fix_chg = utils::strdup(id + std::string("_FIX_STORE_CHG"));
|
||||||
fix_chg = dynamic_cast<FixStore *>( modify->add_fix(fmt::format("{} {} STORE peratom 1 1",
|
fix_chg = dynamic_cast<FixStorePeratom *>(
|
||||||
id_fix_chg,group->names[igroup])));
|
modify->add_fix(fmt::format("{} {} STORE/PERATOM 1 1",id_fix_chg,group->names[igroup])));
|
||||||
if (fix_chg->restart_reset) fix_chg->restart_reset = 0;
|
if (fix_chg->restart_reset) fix_chg->restart_reset = 0;
|
||||||
else {
|
else {
|
||||||
double *vec = fix_chg->vstore;
|
double *vec = fix_chg->vstore;
|
||||||
@ -492,18 +492,16 @@ void FixAdapt::init()
|
|||||||
// fixes that store initial per-atom values
|
// fixes that store initial per-atom values
|
||||||
|
|
||||||
if (id_fix_diam) {
|
if (id_fix_diam) {
|
||||||
int ifix = modify->find_fix(id_fix_diam);
|
fix_diam = dynamic_cast<FixStorePeratom *>(modify->get_fix_by_id(id_fix_diam));
|
||||||
if (ifix < 0) error->all(FLERR,"Could not find fix adapt storage fix ID");
|
if (!fix_diam) error->all(FLERR,"Could not find fix adapt storage fix ID {}", id_fix_diam);
|
||||||
fix_diam = dynamic_cast<FixStore *>( modify->fix[ifix]);
|
|
||||||
}
|
}
|
||||||
if (id_fix_chg) {
|
if (id_fix_chg) {
|
||||||
int ifix = modify->find_fix(id_fix_chg);
|
fix_chg = dynamic_cast<FixStorePeratom *>(modify->get_fix_by_id(id_fix_chg));
|
||||||
if (ifix < 0) error->all(FLERR,"Could not find fix adapt storage fix ID");
|
if (!fix_chg) error->all(FLERR,"Could not find fix adapt storage fix ID {}", id_fix_chg);
|
||||||
fix_chg = dynamic_cast<FixStore *>( modify->fix[ifix]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (utils::strmatch(update->integrate_style,"^respa"))
|
if (utils::strmatch(update->integrate_style,"^respa"))
|
||||||
nlevels_respa = (dynamic_cast<Respa *>( update->integrate))->nlevels;
|
nlevels_respa = (dynamic_cast<Respa *>(update->integrate))->nlevels;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|||||||
@ -48,7 +48,7 @@ class FixAdapt : public Fix {
|
|||||||
int anypair, anybond, anyangle;
|
int anypair, anybond, anyangle;
|
||||||
int nlevels_respa;
|
int nlevels_respa;
|
||||||
char *id_fix_diam, *id_fix_chg;
|
char *id_fix_diam, *id_fix_chg;
|
||||||
class FixStore *fix_diam, *fix_chg;
|
class FixStorePeratom *fix_diam, *fix_chg;
|
||||||
double previous_diam_scale, previous_chg_scale;
|
double previous_diam_scale, previous_chg_scale;
|
||||||
int discflag;
|
int discflag;
|
||||||
|
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
#include "comm.h"
|
#include "comm.h"
|
||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_peratom.h"
|
||||||
#include "force.h"
|
#include "force.h"
|
||||||
#include "irregular.h"
|
#include "irregular.h"
|
||||||
#include "kspace.h"
|
#include "kspace.h"
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "fix.h"
|
#include "fix.h"
|
||||||
#include "fix_store.h"
|
#include "fix_store_peratom.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "info.h"
|
#include "info.h"
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
@ -4911,7 +4911,8 @@ VarReader::VarReader(LAMMPS *lmp, char *name, char *file, int flag) :
|
|||||||
error->all(FLERR,"Cannot use atomfile-style variable unless an atom map exists");
|
error->all(FLERR,"Cannot use atomfile-style variable unless an atom map exists");
|
||||||
|
|
||||||
id_fix = utils::strdup(std::string(name) + "_VARIABLE_STORE");
|
id_fix = utils::strdup(std::string(name) + "_VARIABLE_STORE");
|
||||||
fixstore = dynamic_cast<FixStore *>( modify->add_fix(std::string(id_fix) + " all STORE peratom 0 1"));
|
fixstore = dynamic_cast<FixStorePeratom *>(
|
||||||
|
modify->add_fix(std::string(id_fix) + " all STORE/PERATOM 0 1"));
|
||||||
buffer = new char[CHUNK*MAXLINE];
|
buffer = new char[CHUNK*MAXLINE];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -151,7 +151,7 @@ class Variable : protected Pointers {
|
|||||||
|
|
||||||
class VarReader : protected Pointers {
|
class VarReader : protected Pointers {
|
||||||
public:
|
public:
|
||||||
class FixStore *fixstore;
|
class FixStorePeratom *fixstore;
|
||||||
char *id_fix;
|
char *id_fix;
|
||||||
|
|
||||||
VarReader(class LAMMPS *, char *, char *, int);
|
VarReader(class LAMMPS *, char *, char *, int);
|
||||||
|
|||||||
Reference in New Issue
Block a user