Small doc changes, renaming status variable

This commit is contained in:
jtclemm
2024-07-15 17:19:51 -06:00
parent 8f6cf085e8
commit a9a896c677
22 changed files with 97 additions and 114 deletions

View File

@ -2,25 +2,26 @@ Reproducing hydrodynamics and elastic objects (RHEO)
====================================================
The RHEO package is a hybrid implementation of smoothed particle
hydrodynamics (SPH) for fluid flow, coupled to the :doc:`BPM package <Howto_bpm>`
to model solid elements. RHEO combines these methods to enable mesh-free modeling
of multi-phase material systems. The SPH solver supports many advanced options
including reproducing kernels, particle shifting, free surface identification,
and solid surface reconstruction. To model fluid-solid systems, the status of
particles can dynamically change between a fluid and solid state, e.g. during
melting/solidification, which determines how they interact and their physical
behavior. The package is designed with modularity in mind, so one can easily
turn various features on/off, adjust physical details of the system, or
develop new capabilities. For instance, the numerics associated with
calculating gradients, reproducing kernels, etc. are separated into distinct
classes to simplify the development of new integration schemes which can call
these calculations. Additional numerical details can be found in
hydrodynamics (SPH) for fluid flow, which can couple to the :doc:`BPM package
<Howto_bpm>` to model solid elements. RHEO combines these methods to enable
mesh-free modeling of multi-phase material systems. Its SPH solver supports
many advanced options including reproducing kernels, particle shifting, free
surface identification, and solid surface reconstruction. To model fluid-solid
systems, the status of particles can dynamically change between a fluid and
solid state, e.g. during melting/solidification, which determines how they
interact and their physical behavior. The package is designed with modularity
in mind, so one can easily turn various features on/off, adjust physical
details of the system, or develop new capabilities. For instance, the numerics
associated with calculating gradients, reproducing kernels, etc. are separated
into distinctclasses to simplify the development of new integration schemes
which can call these calculations. Additional numerical details can be found in
:ref:`(Palermo) <howto_rheo_palermo>` and
:ref:`(Clemmer) <howto_rheo_clemmer>`.
Note, if you simply want to run a traditional SPH simulation, the SPH package
is likely better suited for your application. It has fewer advanced features
and therefore benefits from improved performance.
Note, if you simply want to run a traditional SPH simulation, the :ref:`SPH package
<PKG-SPH>` package is likely better suited for your application. It has fewer advanced
features and therefore benefits from improved performance. The :ref:`MACHDYN
<PKG-MACHDYN>` package for solids may also be relevant for fluid-solid problems.
----------

View File

@ -87,7 +87,6 @@ fix 11 all enforce2d
compute surf all rheo/property/atom surface
compute rho all rheo/property/atom rho
compute phase all rheo/property/atom phase
compute status all rheo/property/atom status
compute temp all rheo/property/atom temperature
compute eng all rheo/property/atom energy
compute nbond_shell all rheo/property/atom nbond/shell
@ -98,6 +97,6 @@ compute nbond_solid all nbond/atom bond/type 1
thermo 200
thermo_style custom step time ke press atoms
#dump 1 all custom 200 atomDump id type x y vx vy fx fy c_phase c_temp c_eng c_nbond_solid c_nbond_shell c_rho c_surf c_status
#dump 1 all custom 200 atomDump id type x y vx vy fx fy c_phase c_temp c_eng c_nbond_solid c_nbond_shell c_rho c_surf
run 40000

View File

@ -33,7 +33,7 @@ AtomVecRHEO::AtomVecRHEO(LAMMPS *lmp) : AtomVec(lmp)
mass_type = PER_TYPE;
forceclearflag = 1;
atom->status_flag = 1;
atom->rheo_status_flag = 1;
atom->pressure_flag = 1;
atom->rho_flag = 1;
atom->viscosity_flag = 1;
@ -43,17 +43,17 @@ AtomVecRHEO::AtomVecRHEO(LAMMPS *lmp) : AtomVec(lmp)
// order of fields in a string does not matter
// except: fields_data_atom & fields_data_vel must match data file
fields_grow = {"status", "rho", "drho", "pressure", "viscosity"};
fields_copy = {"status", "rho", "drho", "pressure", "viscosity"};
fields_comm = {"status", "rho"};
fields_comm_vel = {"status", "rho"};
fields_grow = {"rheo_status", "rho", "drho", "pressure", "viscosity"};
fields_copy = {"rheo_status", "rho", "drho", "pressure", "viscosity"};
fields_comm = {"rheo_status", "rho"};
fields_comm_vel = {"rheo_status", "rho"};
fields_reverse = {"drho"};
fields_border = {"status", "rho"};
fields_border_vel = {"status", "rho"};
fields_exchange = {"status", "rho"};
fields_restart = {"status", "rho"};
fields_create = {"status", "rho", "drho", "pressure", "viscosity"};
fields_data_atom = {"id", "type", "status", "rho", "x"};
fields_border = {"rheo_status", "rho"};
fields_border_vel = {"rheo_status", "rho"};
fields_exchange = {"rheo_status", "rho"};
fields_restart = {"rheo_status", "rho"};
fields_create = {"rheo_status", "rho", "drho", "pressure", "viscosity"};
fields_data_atom = {"id", "type", "rheo_status", "rho", "x"};
fields_data_vel = {"id", "v"};
setup_fields();
@ -66,7 +66,7 @@ AtomVecRHEO::AtomVecRHEO(LAMMPS *lmp) : AtomVec(lmp)
void AtomVecRHEO::grow_pointers()
{
status = atom->status;
rheo_status = atom->rheo_status;
pressure = atom->pressure;
rho = atom->rho;
drho = atom->drho;
@ -111,7 +111,7 @@ void AtomVecRHEO::data_atom_post(int ilocal)
int AtomVecRHEO::property_atom(const std::string &name)
{
if (name == "status") return 0;
if (name == "rheo_status") return 0;
if (name == "pressure") return 1;
if (name == "rho") return 2;
if (name == "drho") return 3;
@ -133,7 +133,7 @@ void AtomVecRHEO::pack_property_atom(int index, double *buf, int nvalues, int gr
if (index == 0) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit)
buf[n] = status[i];
buf[n] = rheo_status[i];
else
buf[n] = 0.0;
n += nvalues;

View File

@ -36,7 +36,7 @@ class AtomVecRHEO : virtual public AtomVec {
void pack_property_atom(int, double *, int, int) override;
private:
int *status;
int *rheo_status;
double *pressure, *rho, *drho, *viscosity;
};

View File

@ -33,7 +33,7 @@ AtomVecRHEOThermal::AtomVecRHEOThermal(LAMMPS *lmp) : AtomVec(lmp)
mass_type = PER_TYPE;
forceclearflag = 1;
atom->status_flag = 1;
atom->rheo_status_flag = 1;
atom->conductivity_flag = 1;
atom->temperature_flag = 1;
atom->esph_flag = 1;
@ -47,17 +47,17 @@ AtomVecRHEOThermal::AtomVecRHEOThermal(LAMMPS *lmp) : AtomVec(lmp)
// order of fields in a string does not matter
// except: fields_data_atom & fields_data_vel must match data file
fields_grow = {"status", "rho", "drho", "temperature", "esph", "heatflow", "conductivity", "pressure", "viscosity"};
fields_copy = {"status", "rho", "drho", "temperature", "esph", "heatflow", "conductivity", "pressure", "viscosity"};
fields_comm = {"status", "rho", "esph"};
fields_comm_vel = {"status", "rho", "esph"};
fields_grow = {"rheo_status", "rho", "drho", "temperature", "esph", "heatflow", "conductivity", "pressure", "viscosity"};
fields_copy = {"rheo_status", "rho", "drho", "temperature", "esph", "heatflow", "conductivity", "pressure", "viscosity"};
fields_comm = {"rheo_status", "rho", "esph"};
fields_comm_vel = {"rheo_status", "rho", "esph"};
fields_reverse = {"drho", "heatflow"};
fields_border = {"status", "rho", "esph"};
fields_border_vel = {"status", "rho", "esph"};
fields_exchange = {"status", "rho", "esph"};
fields_restart = {"status", "rho", "esph"};
fields_create = {"status", "rho", "drho", "temperature", "esph", "heatflow", "conductivity", "pressure", "viscosity"};
fields_data_atom = {"id", "type", "status", "rho", "esph", "x"};
fields_border = {"rheo_status", "rho", "esph"};
fields_border_vel = {"rheo_status", "rho", "esph"};
fields_exchange = {"rheo_status", "rho", "esph"};
fields_restart = {"rheo_status", "rho", "esph"};
fields_create = {"rheo_status", "rho", "drho", "temperature", "esph", "heatflow", "conductivity", "pressure", "viscosity"};
fields_data_atom = {"id", "type", "rheo_status", "rho", "esph", "x"};
fields_data_vel = {"id", "v"};
setup_fields();
@ -70,7 +70,7 @@ AtomVecRHEOThermal::AtomVecRHEOThermal(LAMMPS *lmp) : AtomVec(lmp)
void AtomVecRHEOThermal::grow_pointers()
{
status = atom->status;
rheo_status = atom->rheo_status;
conductivity = atom->conductivity;
temperature = atom->temperature;
esph = atom->esph;
@ -123,7 +123,7 @@ void AtomVecRHEOThermal::data_atom_post(int ilocal)
int AtomVecRHEOThermal::property_atom(const std::string &name)
{
if (name == "status") return 0;
if (name == "rheo_status") return 0;
if (name == "rho") return 1;
if (name == "drho") return 2;
if (name == "temperature") return 3;
@ -149,7 +149,7 @@ void AtomVecRHEOThermal::pack_property_atom(int index, double *buf, int nvalues,
if (index == 0) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit)
buf[n] = status[i];
buf[n] = rheo_status[i];
else
buf[n] = 0.0;
n += nvalues;

View File

@ -36,7 +36,7 @@ class AtomVecRHEOThermal : virtual public AtomVec {
void pack_property_atom(int, double *, int, int) override;
private:
int *status;
int *rheo_status;
double *conductivity, *temperature, *heatflow, *esph;
double *pressure, *rho, *drho, *viscosity;
};

View File

@ -182,7 +182,7 @@ void BondRHEOShell::compute(int eflag, int vflag)
double **v = atom->v;
double **f = atom->f;
tagint *tag = atom->tag;
int *status = atom->status;
int *status = atom->rheo_status;
int **bondlist = neighbor->bondlist;
int nbondlist = neighbor->nbondlist;
int nlocal = atom->nlocal;

View File

@ -144,7 +144,7 @@ void ComputeRHEOGrad::compute_peratom()
double *rho = atom->rho;
double *energy = atom->esph;
double *viscosity = atom->viscosity;
int *status = atom->status;
int *status = atom->rheo_status;
int *type = atom->type;
double *mass = atom->mass;
int newton = force->newton;

View File

@ -120,7 +120,7 @@ void ComputeRHEOInterface::compute_peratom()
double **x = atom->x;
int *type = atom->type;
int newton = force->newton;
int *status = atom->status;
int *status = atom->rheo_status;
double *rho = atom->rho;
inum = list->inum;
@ -290,7 +290,7 @@ void ComputeRHEOInterface::unpack_reverse_comm(int n, int *list, double *buf)
{
int i, k, j, m;
double *rho = atom->rho;
int *status = atom->status;
int *status = atom->rheo_status;
m = 0;
for (i = 0; i < n; i++) {
j = list[i];

View File

@ -586,7 +586,7 @@ void ComputeRHEOKernel::compute_peratom()
int *type = atom->type;
double *mass = atom->mass;
double *rho = atom->rho;
int *status = atom->status;
int *status = atom->rheo_status;
tagint *tag = atom->tag;
int *ilist, *jlist, *numneigh, **firstneigh;

View File

@ -92,8 +92,9 @@ ComputeRHEOPropertyAtom::ComputeRHEOPropertyAtom(LAMMPS *lmp, int narg, char **a
for (int iarg = 3; iarg < narg; iarg++) {
if (strcmp(arg[iarg], "phase") == 0) {
pack_choice[i] = &ComputeRHEOPropertyAtom::pack_phase;
} else if (strcmp(arg[iarg], "rho") == 0) {
pack_choice[i] = &ComputeRHEOPropertyAtom::pack_rho;
} else if (strcmp(arg[iarg], "status") == 0) {
// Short hand for "rheo_status"
pack_choice[i] = &ComputeRHEOPropertyAtom::pack_status;
} else if (strcmp(arg[iarg], "chi") == 0) {
interface_flag = 1;
pack_choice[i] = &ComputeRHEOPropertyAtom::pack_chi;
@ -111,8 +112,6 @@ ComputeRHEOPropertyAtom::ComputeRHEOPropertyAtom(LAMMPS *lmp, int narg, char **a
} else if (strcmp(arg[iarg], "pressure") == 0) {
pressure_flag = 1;
pack_choice[i] = &ComputeRHEOPropertyAtom::pack_pressure;
} else if (strcmp(arg[iarg], "viscosity") == 0) {
pack_choice[i] = &ComputeRHEOPropertyAtom::pack_viscosity;
} else if (strcmp(arg[iarg], "cv") == 0) {
thermal_flag = 1;
pack_choice[i] = &ComputeRHEOPropertyAtom::pack_cv;
@ -265,7 +264,7 @@ double ComputeRHEOPropertyAtom::memory_usage()
void ComputeRHEOPropertyAtom::pack_phase(int n)
{
int *status = atom->status;
int *status = atom->rheo_status;
int *mask = atom->mask;
int nlocal = atom->nlocal;
@ -278,14 +277,14 @@ void ComputeRHEOPropertyAtom::pack_phase(int n)
/* ---------------------------------------------------------------------- */
void ComputeRHEOPropertyAtom::pack_rho(int n)
void ComputeRHEOPropertyAtom::pack_status(int n)
{
double *rho = atom->rho;
int *status = atom->rheo_status;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) buf[n] = rho[i];
if (mask[i] & groupbit) buf[n] = status[i];
else buf[n] = 0.0;
n += nvalues;
}
@ -310,7 +309,7 @@ void ComputeRHEOPropertyAtom::pack_chi(int n)
void ComputeRHEOPropertyAtom::pack_surface(int n)
{
int *status = atom->status;
int *status = atom->rheo_status;
int *mask = atom->mask;
int nlocal = atom->nlocal;
@ -420,21 +419,6 @@ void ComputeRHEOPropertyAtom::pack_pressure(int n)
/* ---------------------------------------------------------------------- */
void ComputeRHEOPropertyAtom::pack_viscosity(int n)
{
int *mask = atom->mask;
double *viscosity = atom->viscosity;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) buf[n] = viscosity[i];
else buf[n] = 0.0;
n += nvalues;
}
}
/* ---------------------------------------------------------------------- */
void ComputeRHEOPropertyAtom::pack_viscous_stress(int n)
{
double **gradv = compute_grad->gradv;

View File

@ -45,7 +45,7 @@ class ComputeRHEOPropertyAtom : public Compute {
FnPtrPack *pack_choice; // ptrs to pack functions
void pack_phase(int);
void pack_rho(int);
void pack_status(int);
void pack_chi(int);
void pack_surface(int);
void pack_surface_r(int);
@ -56,7 +56,6 @@ class ComputeRHEOPropertyAtom : public Compute {
void pack_shift_v(int);
void pack_gradv(int);
void pack_pressure(int);
void pack_viscosity(int);
void pack_viscous_stress(int);
void pack_total_stress(int);
void pack_nbond_shell(int);

View File

@ -106,7 +106,7 @@ void ComputeRHEOSurface::compute_peratom()
int nlocal = atom->nlocal;
double **x = atom->x;
int *status = atom->status;
int *status = atom->rheo_status;
int newton = force->newton;
int dim = domain->dimension;
int *mask = atom->mask;
@ -312,7 +312,7 @@ int ComputeRHEOSurface::pack_reverse_comm(int n, int first, double *buf)
{
int i,a,b,k,m,last;
int dim = domain->dimension;
int *status = atom->status;
int *status = atom->rheo_status;
m = 0;
last = first + n;
@ -336,7 +336,7 @@ void ComputeRHEOSurface::unpack_reverse_comm(int n, int *list, double *buf)
{
int i,a,b,k,j,m;
int dim = domain->dimension;
int *status = atom->status;
int *status = atom->rheo_status;
int tmp1;
double tmp2;
@ -367,7 +367,7 @@ int ComputeRHEOSurface::pack_forward_comm(int n, int *list, double *buf,
int /*pbc_flag*/, int * /*pbc*/)
{
int i,j,a,b,k,m;
int *status = atom->status;
int *status = atom->rheo_status;
m = 0;
for (i = 0; i < n; i++) {
@ -387,7 +387,7 @@ int ComputeRHEOSurface::pack_forward_comm(int n, int *list, double *buf,
void ComputeRHEOSurface::unpack_forward_comm(int n, int first, double *buf)
{
int i, k, a, b, m, last;
int *status = atom->status;
int *status = atom->rheo_status;
m = 0;
last = first + n;

View File

@ -102,7 +102,7 @@ void ComputeRHEOVShift::compute_peratom()
int inum, *ilist, *numneigh, **firstneigh;
int *type = atom->type;
int *status = atom->status;
int *status = atom->rheo_status;
int *mask = atom->mask;
double **x = atom->x;
double **v = atom->v;
@ -231,7 +231,7 @@ void ComputeRHEOVShift::correct_surfaces()
int i, a, b;
int *status = atom->status;
int *status = atom->rheo_status;
int *mask = atom->mask;
double **nsurface = compute_surface->nsurface;

View File

@ -86,7 +86,7 @@ FixRHEO::FixRHEO(LAMMPS *lmp, int narg, char **arg) :
error->all(FLERR, "fix rheo command requires atom_style with density");
if (atom->viscosity_flag != 1)
error->all(FLERR, "fix rheo command requires atom_style with viscosity");
if (atom->status_flag != 1)
if (atom->rheo_status_flag != 1)
error->all(FLERR, "fix rheo command requires atom_style with status");
if (narg < 5)
@ -235,7 +235,7 @@ void FixRHEO::init()
if (modify->get_fix_by_style("^rheo$").size() > 1)
error->all(FLERR, "Can only specify one instance of fix rheo");
if (atom->status_flag != 1)
if (atom->rheo_status_flag != 1)
error->all(FLERR,"fix rheo command requires atom property status");
if (atom->rho_flag != 1)
error->all(FLERR,"fix rheo command requires atom property rho");
@ -309,7 +309,7 @@ void FixRHEO::initial_integrate(int /*vflag*/)
int *type = atom->type;
int *mask = atom->mask;
int *status = atom->status;
int *status = atom->rheo_status;
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
@ -432,7 +432,7 @@ void FixRHEO::pre_force(int /*vflag*/)
// Remove temporary options
int *mask = atom->mask;
int *status = atom->status;
int *status = atom->rheo_status;
int nall = atom->nlocal + atom->nghost;
for (int i = 0; i < nall; i++)
if (mask[i] & groupbit)
@ -467,7 +467,7 @@ void FixRHEO::final_integrate()
double *rmass = atom->rmass;
int *type = atom->type;
int *mask = atom->mask;
int *status = atom->status;
int *status = atom->rheo_status;
int rmass_flag = atom->rmass_flag;
int dim = domain->dimension;

View File

@ -163,7 +163,7 @@ void FixRHEOOxidation::post_integrate()
int **bond_type = atom->bond_type;
int *num_bond = atom->num_bond;
int *mask = atom->mask;
int *status = atom->status;
int *status = atom->rheo_status;
double *rsurface = compute_surface->rsurface;
double **x = atom->x;
@ -255,7 +255,7 @@ void FixRHEOOxidation::post_integrate()
void FixRHEOOxidation::post_force(int /*vflag*/)
{
int *status = atom->status;
int *status = atom->rheo_status;
int *num_bond = atom->num_bond;
for (int i = 0; i < atom->nlocal; i++)
if (num_bond[i] != 0)

View File

@ -326,7 +326,7 @@ void FixRHEOThermal::initial_integrate(int /*vflag*/)
if (!fix_rheo->shift_flag) return;
int i, a;
int *status = atom->status;
int *status = atom->rheo_status;
double *energy = atom->esph;
double **grade = compute_grad->grade;
double **vshift = compute_vshift->vshift;
@ -351,7 +351,7 @@ void FixRHEOThermal::post_integrate()
int i, itype;
double cvi, Tci, Ti, Li;
int *status = atom->status;
int *status = atom->rheo_status;
double *energy = atom->esph;
double *temperature = atom->temperature;
double *heatflow = atom->heatflow;
@ -466,7 +466,7 @@ void FixRHEOThermal::pre_force(int /*vflag*/)
double *energy = atom->esph;
double *temperature = atom->temperature;
int *type = atom->type;
int *status = atom->status;
int *status = atom->rheo_status;
int nlocal = atom->nlocal;
int nall = nlocal + atom->nghost;
@ -494,7 +494,7 @@ void FixRHEOThermal::pre_force(int /*vflag*/)
void FixRHEOThermal::final_integrate()
{
int *status = atom->status;
int *status = atom->rheo_status;
double *energy = atom->esph;
double *heatflow = atom->heatflow;
@ -520,7 +520,7 @@ void FixRHEOThermal::break_bonds()
int m, n, nmax, i, j, melti, meltj;
tagint *tag = atom->tag;
int *status = atom->status;
int *status = atom->rheo_status;
int **bond_type = atom->bond_type;
tagint **bond_atom = atom->bond_atom;
int *num_bond = atom->num_bond;
@ -649,7 +649,7 @@ void FixRHEOThermal::create_bonds()
tagint *tag = atom->tag;
tagint **bond_atom = atom->bond_atom;
int *status = atom->status;
int *status = atom->rheo_status;
int **bond_type = atom->bond_type;
int *num_bond = atom->num_bond;
double **x = atom->x;
@ -754,7 +754,7 @@ int FixRHEOThermal::pack_forward_comm(int n, int *list, double *buf,
int /*pbc_flag*/, int * /*pbc*/)
{
int i, j, k, m;
int *status = atom->status;
int *status = atom->rheo_status;
double **x = atom->x;
m = 0;
@ -773,7 +773,7 @@ int FixRHEOThermal::pack_forward_comm(int n, int *list, double *buf,
void FixRHEOThermal::unpack_forward_comm(int n, int first, double *buf)
{
int i, k, m, last;
int *status = atom->status;
int *status = atom->rheo_status;
double **x = atom->x;
m = 0;
last = first + n;

View File

@ -110,7 +110,7 @@ void PairRHEO::compute(int eflag, int vflag)
double *heatflow = atom->heatflow;
double *special_lj = force->special_lj;
int *type = atom->type;
int *status = atom->status;
int *status = atom->rheo_status;
tagint *tag = atom->tag;
double **fp_store, *chi;

View File

@ -74,7 +74,7 @@ void PairRHEOSolid::compute(int eflag, int vflag)
double **v = atom->v;
double **f = atom->f;
int *type = atom->type;
int *status = atom->status;
int *status = atom->rheo_status;
int nlocal = atom->nlocal;
int newton_pair = force->newton_pair;
double *special_lj = force->special_lj;
@ -223,7 +223,7 @@ void PairRHEOSolid::init_style()
if (comm->ghost_velocity == 0)
error->all(FLERR,"Pair rheo/solid requires ghost atoms store velocity");
if (!atom->status_flag)
if (!atom->rheo_status_flag)
error->all(FLERR,"Pair rheo/solid requires atom_style rheo");
neighbor->add_request(this);
@ -328,7 +328,7 @@ double PairRHEOSolid::single(int i, int j, int itype, int jtype, double rsq, dou
if (rsq > cutsq[itype][jtype]) return 0.0;
int *status = atom->status;
int *status = atom->rheo_status;
if (!(status[i] & STATUS_SOLID)) return 0.0;
if (!(status[j] & STATUS_SOLID)) return 0.0;

View File

@ -200,7 +200,7 @@ Atom::Atom(LAMMPS *_lmp) : Pointers(_lmp), atom_style(nullptr), avec(nullptr), a
// RHEO package
status = nullptr;
rheo_status = nullptr;
conductivity = nullptr;
pressure = nullptr;
viscosity = nullptr;
@ -538,7 +538,7 @@ void Atom::peratom_create()
// RHEO package
add_peratom("status",&status,INT,0);
add_peratom("rheo_status",&rheo_status,INT,0);
add_peratom("conductivity",&conductivity,DOUBLE,0);
add_peratom("pressure",&pressure,DOUBLE,0);
add_peratom("viscosity",&viscosity,DOUBLE,0);
@ -648,7 +648,7 @@ void Atom::set_atomflag_defaults()
temperature_flag = heatflow_flag = 0;
vfrac_flag = spin_flag = eradius_flag = ervel_flag = erforce_flag = 0;
cs_flag = csforce_flag = vforce_flag = ervelforce_flag = etag_flag = 0;
status_flag = conductivity_flag = pressure_flag = viscosity_flag = 0;
rheo_status_flag = conductivity_flag = pressure_flag = viscosity_flag = 0;
rho_flag = esph_flag = cv_flag = vest_flag = 0;
dpd_flag = edpd_flag = tdpd_flag = 0;
sp_flag = 0;
@ -3065,7 +3065,7 @@ void *Atom::extract(const char *name)
// RHEO package
if (strcmp(name,"status") == 0) return (void *) status;
if (strcmp(name,"rheo_status") == 0) return (void *) rheo_status;
if (strcmp(name,"conductivity") == 0) return (void *) conductivity;
if (strcmp(name,"pressure") == 0) return (void *) pressure;
if (strcmp(name,"viscosity") == 0) return (void *) viscosity;
@ -3194,7 +3194,7 @@ int Atom::extract_datatype(const char *name)
// RHEO package
if (strcmp(name,"status") == 0) return LAMMPS_INT;
if (strcmp(name,"rheo_status") == 0) return LAMMPS_INT;
if (strcmp(name,"conductivity") == 0) return LAMMPS_DOUBLE;
if (strcmp(name,"pressure") == 0) return LAMMPS_DOUBLE;
if (strcmp(name,"viscosity") == 0) return LAMMPS_DOUBLE;

View File

@ -157,7 +157,7 @@ class Atom : protected Pointers {
// RHEO package
int *status;
int *rheo_status;
double *conductivity;
double *pressure;
double *viscosity;
@ -197,7 +197,7 @@ class Atom : protected Pointers {
int temperature_flag, heatflow_flag;
int vfrac_flag, spin_flag, eradius_flag, ervel_flag, erforce_flag;
int cs_flag, csforce_flag, vforce_flag, ervelforce_flag, etag_flag;
int status_flag, conductivity_flag, pressure_flag, viscosity_flag;
int rheo_status_flag, conductivity_flag, pressure_flag, viscosity_flag;
int rho_flag, esph_flag, cv_flag, vest_flag;
int dpd_flag, edpd_flag, tdpd_flag;
int mesont_flag;

View File

@ -526,7 +526,7 @@ void Set::command(int narg, char **arg)
if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "set rheo/status", error);
if (utils::strmatch(arg[iarg+1],"^v_")) varparse(arg[iarg+1],1);
else ivalue = utils::inumeric(FLERR,arg[iarg+1],false,lmp);
if (!atom->status_flag)
if (!atom->rheo_status_flag)
error->all(FLERR,"Cannot set attribute {} for atom style {}", arg[iarg], atom->get_style());
set(RHEO_STATUS);
iarg += 2;
@ -901,7 +901,7 @@ void Set::set(int keyword)
else if (keyword == RHEO_STATUS) {
if (ivalue != 0 && ivalue != 1)
error->one(FLERR,"Invalid value {} in set command for rheo/status", ivalue);
atom->status[i] = ivalue;
atom->rheo_status[i] = ivalue;
}
else if (keyword == SPH_E) atom->esph[i] = dvalue;