label electron spin with "espin" instead of "spin" but be backward compatible

This commit is contained in:
Axel Kohlmeyer
2022-08-30 06:12:28 -04:00
parent bfb15c6cc6
commit 2c0eb10d62
6 changed files with 36 additions and 27 deletions

View File

@ -31,7 +31,7 @@ Syntax
corner2x, corner2y, corner2z,
corner3x, corner3y, corner3z,
i_name, d_name, i2_name[I], d2_name[I],
vfrac, s0, spin, eradius, ervel, erforce,
vfrac, s0, espin, eradius, ervel, erforce,
rho, drho, e, de, cv, buckling,
.. parsed-literal::
@ -76,7 +76,7 @@ Syntax
.. parsed-literal::
EFF and AWPMD package per-atom properties:
spin = electron spin
espin = electron spin
eradius = electron radius
ervel = electron radial velocity
erforce = electron radial force
@ -167,6 +167,10 @@ triangular particles and define the corner points of each triangle.
In addition, the various per-atom quantities listed above for specific
packages are only accessible by this command.
.. versionchanged:: TBD
The *espin* property was previously called *spin*.
Output info
"""""""""""

View File

@ -631,7 +631,7 @@ of analysis.
* - edpd
- atom-ID atom-type edpd_temp edpd_cv x y z
* - electron
- atom-ID atom-type q spin eradius x y z
- atom-ID atom-type q espin eradius x y z
* - ellipsoid
- atom-ID atom-type ellipsoidflag density x y z
* - full
@ -663,7 +663,7 @@ of analysis.
* - tri
- atom-ID molecule-ID atom-type triangleflag density x y z
* - wavepacket
- atom-ID atom-type charge spin eradius etag cs_re cs_im x y z
- atom-ID atom-type charge espin eradius etag cs_re cs_im x y z
* - hybrid
- atom-ID atom-type x y z sub-style1 sub-style2 ...
@ -680,11 +680,12 @@ The per-atom values have these meanings and units, listed alphabetically:
* cv = heat capacity (need units) for SPH particles
* density = density of particle (mass/distance\^3 or mass/distance\^2 or mass/distance units, depending on dimensionality of particle)
* diameter = diameter of spherical atom (distance units)
* esph = energy (need units) for SPH particles
* edpd_temp = temperature for eDPD particles (temperature units)
* edpd_cv = volumetric heat capacity for eDPD particles (energy/temperature/volume units)
* ellipsoidflag = 1 for ellipsoidal particles, 0 for point particles
* eradius = electron radius (or fixed-core radius)
* esph = energy (need units) for SPH particles
* espin = electron spin (+1/-1), 0 = nuclei, 2 = fixed-core, 3 = pseudo-cores (i.e. ECP)
* etag = integer ID of electron that each wave packet belongs to
* kradius = kernel radius for SMD particles (distance units)
* lineflag = 1 for line segment particles, 0 for point or spherical particles
@ -695,7 +696,6 @@ The per-atom values have these meanings and units, listed alphabetically:
* mux,muy,muz = components of dipole moment of atom (dipole units)
* q = charge on atom (charge units)
* rho = density (need units) for SPH particles
* spin = electron spin (+1/-1), 0 = nuclei, 2 = fixed-core, 3 = pseudo-cores (i.e. ECP)
* sp = magnitude of magnetic spin of atom (Bohr magnetons)
* spx,spy,spz = components of magnetic spin of atom (unit vector)
* template-atom = which atom within a template molecule the atom is

View File

@ -974,6 +974,7 @@ Eshelby
eskm
Espanol
esph
espin
estretch
esu
esub

View File

@ -39,18 +39,18 @@ AtomVecWavepacket::AtomVecWavepacket(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 = {"q", "spin", "eradius", "ervel", "erforce",
fields_grow = {"q", "espin", "eradius", "ervel", "erforce",
"cs", "csforce", "vforce", "ervelforce", "etag"};
fields_copy = {"q", "spin", "eradius", "ervel", "cs", "etag"};
fields_copy = {"q", "espin", "eradius", "ervel", "cs", "etag"};
fields_comm = {"eradius"};
fields_comm_vel = {"eradius", "ervel", "cs"};
fields_reverse = {"erforce", "ervelforce", "vforce", "csforce"};
fields_border = {"q", "spin", "eradius", "etag"};
fields_border_vel = {"q", "spin", "eradius", "etag", "ervel", "cs"};
fields_exchange = {"q", "spin", "eradius", "ervel", "etag", "cs"};
fields_restart = {"q", "spin", "eradius", "ervel", "etag", "cs"};
fields_create = {"q", "spin", "eradius", "ervel", "etag", "cs"};
fields_data_atom = {"id", "type", "q", "spin", "eradius", "etag", "cs", "x"};
fields_border = {"q", "espin", "eradius", "etag"};
fields_border_vel = {"q", "espin", "eradius", "etag", "ervel", "cs"};
fields_exchange = {"q", "espin", "eradius", "ervel", "etag", "cs"};
fields_restart = {"q", "espin", "eradius", "ervel", "etag", "cs"};
fields_create = {"q", "espin", "eradius", "ervel", "etag", "cs"};
fields_data_atom = {"id", "type", "q", "espin", "eradius", "etag", "cs", "x"};
fields_data_vel = {"id", "v", "ervel"};
setup_fields();
@ -107,7 +107,8 @@ void AtomVecWavepacket::data_atom_post(int ilocal)
int AtomVecWavepacket::property_atom(const std::string &name)
{
if (name == "spin") return 0;
if (name == "espin") return 0;
if (name == "spin") return 0; // backward compatibility
if (name == "eradius") return 1;
if (name == "ervel") return 2;
if (name == "erforce") return 3;

View File

@ -53,17 +53,17 @@ AtomVecElectron::AtomVecElectron(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 = {"q", "spin", "eradius", "ervel", "erforce"};
fields_copy = {"q", "spin", "eradius", "ervel"};
fields_grow = {"q", "espin", "eradius", "ervel", "erforce"};
fields_copy = {"q", "espin", "eradius", "ervel"};
fields_comm = {"eradius"};
fields_comm_vel = {"eradius"};
fields_reverse = {"erforce"};
fields_border = {"q", "spin", "eradius"};
fields_border_vel = {"q", "spin", "eradius"};
fields_exchange = {"q", "spin", "eradius", "ervel"};
fields_restart = {"q", "spin", "eradius", "ervel"};
fields_create = {"q", "spin", "eradius", "ervel"};
fields_data_atom = {"id", "type", "q", "spin", "eradius", "x"};
fields_border = {"q", "espin", "eradius"};
fields_border_vel = {"q", "espin", "eradius"};
fields_exchange = {"q", "espin", "eradius", "ervel"};
fields_restart = {"q", "espin", "eradius", "ervel"};
fields_create = {"q", "espin", "eradius", "ervel"};
fields_data_atom = {"id", "type", "q", "espin", "eradius", "x"};
fields_data_vel = {"id", "v", "ervel"};
setup_fields();
@ -119,7 +119,8 @@ void AtomVecElectron::data_atom_post(int ilocal)
int AtomVecElectron::property_atom(const std::string &name)
{
if (name == "spin") return 0;
if (name == "espin") return 0;
if (name == "spin") return 0; // backward compatibility
if (name == "eradius") return 1;
if (name == "ervel") return 2;
if (name == "erforce") return 3;

View File

@ -480,7 +480,7 @@ void Atom::peratom_create()
// EFF package
add_peratom("spin",&spin,INT,0);
add_peratom("espin",&spin,INT,0);
add_peratom("eradius",&eradius,DOUBLE,0);
add_peratom("ervel",&ervel,DOUBLE,0);
add_peratom("erforce",&erforce,DOUBLE,0,1); // set per-thread flag
@ -2706,7 +2706,8 @@ void *Atom::extract(const char *name)
// EFF and AWPMD packages
if (strcmp(name,"spin") == 0) return (void *) spin;
if (strcmp(name,"espin") == 0) return (void *) spin;
if (strcmp(name,"spin") == 0) return (void *) spin; // backward compatibility
if (strcmp(name,"eradius") == 0) return (void *) eradius;
if (strcmp(name,"ervel") == 0) return (void *) ervel;
if (strcmp(name,"erforce") == 0) return (void *) erforce;
@ -2830,7 +2831,8 @@ int Atom::extract_datatype(const char *name)
if (strcmp(name,"s0") == 0) return LAMMPS_DOUBLE;
if (strcmp(name,"x0") == 0) return LAMMPS_DOUBLE_2D;
if (strcmp(name,"spin") == 0) return LAMMPS_INT;
if (strcmp(name,"espin") == 0) return LAMMPS_INT;
if (strcmp(name,"spin") == 0) return LAMMPS_INT; // backwards compatibility
if (strcmp(name,"eradius") == 0) return LAMMPS_DOUBLE;
if (strcmp(name,"ervel") == 0) return LAMMPS_DOUBLE;
if (strcmp(name,"erforce") == 0) return LAMMPS_DOUBLE;