all of remaining USER package styles except AWPMD

This commit is contained in:
Steve Plimpton
2019-12-03 11:15:16 -07:00
parent ccca80a6a5
commit 9e52980aaa
16 changed files with 368 additions and 4077 deletions

View File

@ -81,50 +81,21 @@ Atom::Atom(LAMMPS *lmp) : Pointers(lmp)
image = NULL;
x = v = f = NULL;
molecule = NULL;
molindex = molatom = NULL;
// charged and dipolar particles
q = NULL;
mu = NULL;
// finite-size particles
omega = angmom = torque = NULL;
radius = rmass = NULL;
ellipsoid = line = tri = body = NULL;
vfrac = s0 = NULL;
x0 = NULL;
// molecular systems
spin = NULL;
eradius = ervel = erforce = NULL;
cs = csforce = vforce = ervelforce = NULL;
etag = NULL;
rho = drho = e = de = cv = NULL;
vest = NULL;
// SPIN package
sp = fm = fm_long = NULL;
// USER-DPD
uCond = uMech = uChem = uCG = uCGnew = NULL;
duChem = NULL;
dpdTheta = NULL;
// USER-MESO
cc = cc_flux = NULL;
edpd_temp = edpd_flux = edpd_cv = NULL;
// USER-SMD
contact_radius = NULL;
smd_data_9 = NULL;
smd_stress = NULL;
eff_plastic_strain = NULL;
eff_plastic_strain_rate = NULL;
damage = NULL;
// molecular info
molecule = NULL;
molindex = molatom = NULL;
bond_per_atom = extra_bond_per_atom = 0;
num_bond = NULL;
@ -150,6 +121,47 @@ Atom::Atom(LAMMPS *lmp) : Pointers(lmp)
nspecial = NULL;
special = NULL;
// PERI package
vfrac = s0 = NULL;
x0 = NULL;
// SPIN package
sp = fm = fm_long = NULL;
// USER-EFF and USER-AWPMD packages
spin = NULL;
eradius = ervel = erforce = NULL;
ervelforce = cs = csforce = NULL;
vforce = NULL;
etag = NULL;
// USER-DPD package
uCond = uMech = uChem = uCG = uCGnew = NULL;
duChem = dpdTheta = NULL;
// USER-MESO package
cc = cc_flux = NULL;
edpd_temp = edpd_flux = edpd_cv = NULL;
// USER-SMD package
contact_radius = NULL;
smd_data_9 = NULL;
smd_stress = NULL;
eff_plastic_strain = NULL;
eff_plastic_strain_rate = NULL;
damage = NULL;
// USER-SPH package
rho = drho = e = de = cv = NULL;
vest = NULL;
// user-defined molecules
nmolecule = 0;
@ -532,9 +544,16 @@ void Atom::peratom_create()
add_peratom("ervel",&ervel,DOUBLE,0);
add_peratom("erforce",&erforce,DOUBLE,0,1); // set per-thread flag
// USER-AWPMD package
add_peratom("cs",&cs,DOUBLE,0);
add_peratom("csforce",&csforce,DOUBLE,0);
add_peratom("vforce",&vforce,DOUBLE,3);
add_peratom("ervelforce",&ervelforce,DOUBLE,0);
add_peratom("etag",&etag,INT,0);
// USER-DPD package
add_peratom("rho",&eradius,DOUBLE,0);
add_peratom("dpdTheta",&dpdTheta,DOUBLE,0);
add_peratom("uCond",&uCond,DOUBLE,0);
add_peratom("uMech",&uMech,DOUBLE,0);
@ -548,7 +567,26 @@ void Atom::peratom_create()
add_peratom("edpd_cv",&edpd_cv,DOUBLE,0);
add_peratom("edpd_temp",&edpd_temp,DOUBLE,0);
add_peratom("edpd_flux",&edpd_flux,DOUBLE,0,1); // set per-thread flag
add_peratom("vest",&vest,DOUBLE,4);
add_peratom("cc",&cc,DOUBLE,1);
add_peratom("cc_flux",&cc_flux,DOUBLE,1,1); // set per-thread flag
// USER-SPH package
add_peratom("rho",&rho,DOUBLE,0);
add_peratom("drho",&drho,DOUBLE,0,1); // set per-thread flag
add_peratom("e",&e,DOUBLE,0);
add_peratom("de",&de,DOUBLE,0,1); // set per-thread flag
add_peratom("vest",&vest,DOUBLE,3);
add_peratom("cv",&cv,DOUBLE,0);
// USER-SMD package
add_peratom("contact_radius",&contact_radius,DOUBLE,0);
add_peratom("smd_data_9",&smd_data_9,DOUBLE,1);
add_peratom("smd_stress",&smd_stress,DOUBLE,1);
add_peratom("eff_plastic_strain",&eff_plastic_strain,DOUBLE,0);
add_peratom("eff_plastic_strain_rate",&eff_plastic_strain_rate,DOUBLE,0);
add_peratom("damage",&damage,DOUBLE,0);
}
/* ----------------------------------------------------------------------
@ -579,6 +617,18 @@ void Atom::add_peratom(const char *name, void *address,
nperatom++;
}
/* ----------------------------------------------------------------------
change the column count fof an existing peratom array entry
allows atom_style to specify column count as an argument
see atom_style tdpd as an example
------------------------------------------------------------------------- */
void Atom::add_peratom_change_columns(const char *name, int cols)
{
for (int i = 0; i < nperatom; i++)
if (strcmp(name,peratom[i].name) == 0) peratom[i].cols = cols;
}
/* ----------------------------------------------------------------------
add info for a single per-atom array to PerAtom data struct
cols = address of int variable with max columns per atom