From 28993d98237b2b10b5f894de1557b4a24b2744c8 Mon Sep 17 00:00:00 2001 From: julient31 <julien.tranchida1@gmail.com> Date: Thu, 26 Jul 2018 08:36:30 -0600 Subject: [PATCH] Commit JT 072618 - improvements documentation (dmi and exchange) - correction error cross product in pair_spin_dmi.cpp - implementation mech. part in pair_spin_dmi.cpp - correction in all pairs: init_one for [j][i] couples - correction in atom_vec_spin.cpp: index error in read_data - some improvements in pair_spin_dmi.cpp and pair_spin_magelec.cpp --- doc/src/Eqs/pair_spin_dmi_forces.jpg | Bin 0 -> 13431 bytes doc/src/Eqs/pair_spin_dmi_forces.tex | 14 +++ doc/src/Eqs/pair_spin_dmi_interaction.jpg | Bin 6316 -> 7891 bytes doc/src/Eqs/pair_spin_dmi_interaction.tex | 2 +- doc/src/Eqs/pair_spin_exchange_forces.jpg | Bin 13720 -> 13255 bytes doc/src/Eqs/pair_spin_exchange_forces.tex | 10 +- .../Eqs/pair_spin_exchange_interaction.jpg | Bin 6661 -> 5940 bytes .../Eqs/pair_spin_exchange_interaction.tex | 2 +- doc/src/pair_spin_dmi.txt | 41 +++++-- doc/src/pair_spin_exchange.txt | 28 ++++- examples/SPIN/bfo/in.spin.bfo | 11 +- examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp | 10 +- src/SPIN/atom_vec_spin.cpp | 6 +- src/SPIN/compute_spin.cpp | 20 +-- src/SPIN/pair_spin_dmi.cpp | 116 ++++++++++++------ src/SPIN/pair_spin_dmi.h | 15 +-- src/SPIN/pair_spin_exchange.cpp | 52 ++++---- src/SPIN/pair_spin_magelec.cpp | 88 +++++++------ src/SPIN/pair_spin_neel.cpp | 12 +- src/SPIN/pair_spin_neel.h | 4 +- 20 files changed, 273 insertions(+), 158 deletions(-) create mode 100644 doc/src/Eqs/pair_spin_dmi_forces.jpg create mode 100644 doc/src/Eqs/pair_spin_dmi_forces.tex diff --git a/doc/src/Eqs/pair_spin_dmi_forces.jpg b/doc/src/Eqs/pair_spin_dmi_forces.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fba6a91cbf6fdb6ee6736073a114d08c907d6d3c GIT binary patch literal 13431 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 Hvig4jn{I9c literal 0 HcmV?d00001 diff --git a/doc/src/Eqs/pair_spin_dmi_forces.tex b/doc/src/Eqs/pair_spin_dmi_forces.tex new file mode 100644 index 0000000000..1c0c246db4 --- /dev/null +++ b/doc/src/Eqs/pair_spin_dmi_forces.tex @@ -0,0 +1,14 @@ +\documentclass[preview]{standalone} +\usepackage{varwidth} +\usepackage[utf8x]{inputenc} +\usepackage{amsmath,amssymb,amsthm,bm} +\begin{document} +\begin{varwidth}{50in} + \begin{equation} + \vec{\omega}_i = -\frac{1}{\hbar} \sum_{j}^{Neighb} \vec{s}_{j}\times \left(\vec{e}_{ij}\times \vec{D} \right) + ~~{\rm and}~~ + \vec{F}_i = -\sum_{j}^{Neighb} \frac{1}{r_{ij}} \vec{D} \times \left( \vec{s}_{i}\times \vec{s}_{j} \right) + , \nonumber + \end{equation} +\end{varwidth} +\end{document} diff --git a/doc/src/Eqs/pair_spin_dmi_interaction.jpg b/doc/src/Eqs/pair_spin_dmi_interaction.jpg index 1d15b2199add75eefecb424f75ea2dbd363a1afe..3eb24c67e3b26f97c362fd05982ead5fb0f5c150 100644 GIT binary patch literal 7891 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 WVWS<Mh8dY1&#d48z{`-E`Tqe^ww2ca literal 6316 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 E0bZ-WQ2+n{ diff --git a/doc/src/Eqs/pair_spin_dmi_interaction.tex b/doc/src/Eqs/pair_spin_dmi_interaction.tex index 5a5a776f03..79f63a333a 100644 --- a/doc/src/Eqs/pair_spin_dmi_interaction.tex +++ b/doc/src/Eqs/pair_spin_dmi_interaction.tex @@ -5,7 +5,7 @@ \begin{document} \begin{varwidth}{50in} \begin{equation} - \bm{H}_{dm} = -\sum_{{ i,j}=1,i\neq j}^{N} + \bm{H}_{dm} = \sum_{{ i,j}=1,i\neq j}^{N} \left( \vec{e}_{ij} \times \vec{D} \right) \cdot\left(\vec{s}_{i}\times \vec{s}_{j}\right), \nonumber diff --git a/doc/src/Eqs/pair_spin_exchange_forces.jpg b/doc/src/Eqs/pair_spin_exchange_forces.jpg index 2b0469bf4db84885fd8b81679cdd9571ba9e3574..b312a9ccdaaf44b7647f2c444c7d79a740cea88c 100644 GIT binary patch literal 13255 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 literal 13720 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 YAN#n!=#A%hftx-OcW#2Ko`=Q%0oGV3X8-^I diff --git a/doc/src/Eqs/pair_spin_exchange_forces.tex b/doc/src/Eqs/pair_spin_exchange_forces.tex index 088696d5ef..ac5ef682f3 100644 --- a/doc/src/Eqs/pair_spin_exchange_forces.tex +++ b/doc/src/Eqs/pair_spin_exchange_forces.tex @@ -5,10 +5,12 @@ \begin{document} \begin{varwidth}{50in} \begin{equation} - \vec{F}^{i} = \sum_{j}^{Neighbor} \frac{\partial {J} \left(r_{ij} \right)}{ - \partial r_{ij}} \left( \vec{s}_{i}\cdot \vec{s}_{j} \right) \vec{r}_{ij} - ~~{\rm and}~~ \vec{\omega}^{i} = \frac{1}{\hbar} \sum_{j}^{Neighbor} {J} - \left(r_{ij} \right)\,\vec{s}_{j} \nonumber + \vec{\omega}_{i} = \frac{1}{\hbar} \sum_{j}^{Neighb} {J} + \left(r_{ij} \right)\,\vec{s}_{j} + ~~{\rm and}~~ + \vec{F}_{i} = \sum_{j}^{Neighb} \frac{\partial {J} \left(r_{ij} \right)}{ + \partial r_{ij}} \left( \vec{s}_{i}\cdot \vec{s}_{j} \right) \vec{e}_{ij} + \nonumber \end{equation} \end{varwidth} \end{document} diff --git a/doc/src/Eqs/pair_spin_exchange_interaction.jpg b/doc/src/Eqs/pair_spin_exchange_interaction.jpg index d51524d27ca413ec4ded189107c2219b061f7d7e..c70d8a6554003e37472d648c1944a13ee9d3f859 100644 GIT binary patch literal 5940 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 literal 6661 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 T9!{y1RMlwg`+_6alZpQU?`}{A diff --git a/doc/src/Eqs/pair_spin_exchange_interaction.tex b/doc/src/Eqs/pair_spin_exchange_interaction.tex index 6e598f75ac..f20b3e5740 100644 --- a/doc/src/Eqs/pair_spin_exchange_interaction.tex +++ b/doc/src/Eqs/pair_spin_exchange_interaction.tex @@ -5,7 +5,7 @@ \begin{document} \begin{varwidth}{50in} \begin{equation} - \bm{H}_{exchange} ~=~ -\sum_{i,j,i\neq j}^{N} {J} \left(r_{ij} \right)\, \vec{s}_{i}\cdot \vec{s}_{j} \nonumber + \bm{H}_{ex} ~=~ -\sum_{i,j,i\neq j}^{N} {J} \left(r_{ij} \right)\, \vec{s}_{i}\cdot \vec{s}_{j} \nonumber \end{equation} \end{varwidth} \end{document} diff --git a/doc/src/pair_spin_dmi.txt b/doc/src/pair_spin_dmi.txt index 24877906f3..a1d0cb2265 100644 --- a/doc/src/pair_spin_dmi.txt +++ b/doc/src/pair_spin_dmi.txt @@ -25,24 +25,46 @@ pair_coeff 1 2 dmi 4.0 0.00109 0.0 0.0 1.0 :pre [Description:] Style {spin/dmi} computes the Dzyaloshinskii-Moriya (DM) interaction -between pairs of magnetic spins: +between pairs of magnetic spins. +According to the expression reported in "(Rohart)"_#Rohart, one has +the following DM energy: :c,image(Eqs/pair_spin_dmi_interaction.jpg) where si and sj are two neighboring magnetic spins of two particles, -eij = (ri - rj)/|ri-rj| is the normalized separation vector between the -two particles, and D is the DM vector defining the intensity and the -sign of the interaction. +eij = (ri - rj)/|ri-rj| is the unit vector between sites i and j, +and D is the DM vector defining the intensity (in eV) and the direction +of the interaction. -Examples and more explanations about this interaction and its parametrization are -reported in "(Tranchida)"_#Tranchida5. +In "(Rohart)"_#Rohart, D is defined as the direction normal to the film oriented +from the high spin-orbit layer to the magnetic ultrathin film. -From this DM interaction, each spin i will be submitted to a magnetic torque -omega and its associated atom to a force F (for spin-lattice calculations only). +The application of a spin-lattice Poisson bracket to this energy (as described +in "(Tranchida)"_#Tranchida5) allows to derive a magnetic torque omega, and a +mechanical force F (for spin-lattice calculations only) for each magnetic +particle i: + +:c,image(Eqs/pair_spin_dmi_forces.jpg) More details about the derivation of these torques/forces are reported in "(Tranchida)"_#Tranchida5. +For the {spin/dmi} pair style, the following coefficients must be defined for +each pair of atoms types via the "pair_coeff"_pair_coeff.html command as in +the examples above, or in the data file or restart files read by the +"read_data"_read_data.html or "read_restart"_read_restart.html commands, and +set in the following order: + +rc (distance units) +|D| (energy units) +Dx, Dy, Dz (direction of D) :ul + +Note that rc is the radius cutoff of the considered DM interaction, |D| is +the norm of the DM vector (in eV), and Dx, Dy and Dz define its direction. + +None of those coefficients is optional. If not specified, the {spin/dmi} +pair style cannot be used. + :line [Restrictions:] @@ -61,6 +83,9 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. :line +:link(Rohart) +[(Rohart)] Rohart and Thiaville, +Physical Review B, 88(18), 184422. (2013). :link(Tranchida5) [(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, Journal of Computational Physics, (2018). diff --git a/doc/src/pair_spin_exchange.txt b/doc/src/pair_spin_exchange.txt index ad3357cb5e..a4f37a98eb 100644 --- a/doc/src/pair_spin_exchange.txt +++ b/doc/src/pair_spin_exchange.txt @@ -32,18 +32,15 @@ pairs of magnetic spins: where si and sj are two neighboring magnetic spins of two particles, rij = ri - rj is the inter-atomic distance between the two particles, and J(rij) is a function defining the intensity and the sign of the exchange -interaction. - -This function is defined as: +interaction for different neighboring shells. This function is defined as: :c,image(Eqs/pair_spin_exchange_function.jpg) where a, b and d are the three constant coefficients defined in the associated -"pair_coeff" command. +"pair_coeff" command (see below for more explanations). The coefficients a, b, and d need to be fitted so that the function above matches with the value of the exchange interaction for the N neighbor shells taken into account. - Examples and more explanations about this function and its parametrization are reported in "(Tranchida)"_#Tranchida3. @@ -54,11 +51,30 @@ such as: :c,image(Eqs/pair_spin_exchange_forces.jpg) -with h the Planck constant (in metal units). +with h the Planck constant (in metal units), and eij = (ri - rj)/|ri-rj| the unit +vector between sites i and j. More details about the derivation of these torques/forces are reported in "(Tranchida)"_#Tranchida3. +For the {spin/exchange} pair style, the following coefficients must be defined +for each pair of atoms types via the "pair_coeff"_pair_coeff.html command as in +the examples above, or in the data file or restart files read by the +"read_data"_read_data.html or "read_restart"_read_restart.html commands, and +set in the following order: + +rc (distance units) +a (energy units) +b (adim parameter) +d (distance units) :ul + +Note that rc is the radius cutoff of the considered exchange interaction, +and a, b and d are the three coefficients performing the parametrization +of the function J(rij) defined above. + +None of those coefficients is optional. If not specified, the +{spin/exchange} pair style cannot be used. + :line [Restrictions:] diff --git a/examples/SPIN/bfo/in.spin.bfo b/examples/SPIN/bfo/in.spin.bfo index 2442b12b72..de23ba87ba 100644 --- a/examples/SPIN/bfo/in.spin.bfo +++ b/examples/SPIN/bfo/in.spin.bfo @@ -21,9 +21,11 @@ mass 1 1.0 set group all spin/random 11 2.50 -pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 +#pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 +pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 spin/dmi 4.5 pair_coeff * * spin/exchange exchange 6.0 -0.01575 0.0 1.965 pair_coeff * * spin/magelec magelec 4.5 0.000109 1.0 1.0 1.0 +pair_coeff * * spin/dmi dmi 4.5 0.00005 1.0 1.0 1.0 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 @@ -44,10 +46,11 @@ variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] -thermo_style custom step time v_magnorm v_emag temp etotal -thermo 50 +#thermo_style custom step time v_magnorm v_emag temp etotal +thermo_style custom step time v_magnorm pe ke v_emag temp etotal +thermo 10 compute outsp all property/atom spx spy spz sp fmx fmy fmz dump 100 all custom 1 dump_bfo.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] -run 5000 +run 2000 diff --git a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp index 4a42ec419a..35aa1df86c 100644 --- a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp +++ b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp @@ -19,8 +19,8 @@ create_atoms 1 box mass 1 58.93 -#set group all spin/random 31 1.72 -set group all spin 1.72 0.0 0.0 1.0 +set group all spin/random 31 1.72 +#set group all spin 1.72 0.0 0.0 1.0 velocity all create 100 4928459 rot yes dist gaussian #pair_style hybrid/overlay eam/alloy spin/exchange 4.0 spin/neel 4.0 @@ -29,11 +29,11 @@ pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co pair_coeff * * spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567 #pair_coeff * * spin/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 - neighbor 0.1 bin neigh_modify every 10 check yes delay 20 -fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 +#fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 fix 2 all langevin/spin 0.0 0.0 21 fix 3 all nve/spin lattice yes @@ -56,4 +56,4 @@ thermo 10 compute outsp all property/atom spx spy spz sp fmx fmy fmz dump 100 all custom 1 dump_cobalt_hcp.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] -run 2000 +run 20000 diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index 8b47eff624..6460a6185f 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -816,9 +816,9 @@ void AtomVecSpin::data_atom(double *coord, imageint imagetmp, char **values) x[nlocal][2] = coord[2]; sp[nlocal][3] = atof(values[2]); - sp[nlocal][0] = atof(values[5]); - sp[nlocal][1] = atof(values[6]); - sp[nlocal][2] = atof(values[7]); + sp[nlocal][0] = atof(values[6]); + sp[nlocal][1] = atof(values[7]); + sp[nlocal][2] = atof(values[8]); double inorm = 1.0/sqrt(sp[nlocal][0]*sp[nlocal][0] + sp[nlocal][1]*sp[nlocal][1] + sp[nlocal][2]*sp[nlocal][2]); diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index b67f62d53d..dc16190c98 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -105,16 +105,16 @@ void ComputeSpin::compute_vector() for (i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { if (atom->sp_flag) { - mag[0] += sp[i][0]; - mag[1] += sp[i][1]; - mag[2] += sp[i][2]; - magenergy -= (sp[i][0]*fm[i][0] + sp[i][1]*fm[i][1] + sp[i][2]*fm[i][2]); - tx = sp[i][1]*fm[i][2]-sp[i][2]*fm[i][1]; - ty = sp[i][2]*fm[i][0]-sp[i][0]*fm[i][2]; - tz = sp[i][0]*fm[i][1]-sp[i][1]*fm[i][0]; - tempnum += tx*tx+ty*ty+tz*tz; - tempdenom += sp[i][0]*fm[i][0]+fm[i][1]*sp[i][1]+sp[i][2]*fm[i][2]; - countsp++; + mag[0] += sp[i][0]; + mag[1] += sp[i][1]; + mag[2] += sp[i][2]; + magenergy -= (sp[i][0]*fm[i][0] + sp[i][1]*fm[i][1] + sp[i][2]*fm[i][2]); + tx = sp[i][1]*fm[i][2]-sp[i][2]*fm[i][1]; + ty = sp[i][2]*fm[i][0]-sp[i][0]*fm[i][2]; + tz = sp[i][0]*fm[i][1]-sp[i][1]*fm[i][0]; + tempnum += tx*tx+ty*ty+tz*tz; + tempdenom += sp[i][0]*fm[i][0]+fm[i][1]*sp[i][1]+sp[i][2]*fm[i][2]; + countsp++; } } else error->all(FLERR,"Compute compute/spin requires atom/spin style"); diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp index b792969c5d..08e2c63e7f 100644 --- a/src/SPIN/pair_spin_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -65,6 +65,9 @@ PairSpinDmi::~PairSpinDmi() memory->destroy(v_dmx); memory->destroy(v_dmy); memory->destroy(v_dmz); + memory->destroy(vmech_dmx); + memory->destroy(vmech_dmy); + memory->destroy(vmech_dmz); memory->destroy(cutsq); } } @@ -118,7 +121,7 @@ void PairSpinDmi::coeff(int narg, char **arg) force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); const double rij = force->numeric(FLERR,arg[3]); - const double dm = (force->numeric(FLERR,arg[4]))/hbar; + const double dm = (force->numeric(FLERR,arg[4])); double dmx = force->numeric(FLERR,arg[5]); double dmy = force->numeric(FLERR,arg[6]); double dmz = force->numeric(FLERR,arg[7]); @@ -133,9 +136,12 @@ void PairSpinDmi::coeff(int narg, char **arg) for (int j = MAX(jlo,i); j <= jhi; j++) { cut_spin_dmi[i][j] = rij; DM[i][j] = dm; - v_dmx[i][j] = dmx * dm; - v_dmy[i][j] = dmy * dm; - v_dmz[i][j] = dmz * dm; + v_dmx[i][j] = dmx * dm / hbar; + v_dmy[i][j] = dmy * dm / hbar; + v_dmz[i][j] = dmz * dm / hbar; + vmech_dmx[i][j] = dmx * dm; + vmech_dmy[i][j] = dmy * dm; + vmech_dmz[i][j] = dmz * dm; setflag[i][j] = 1; count++; } @@ -187,9 +193,17 @@ void PairSpinDmi::init_style() double PairSpinDmi::init_one(int i, int j) { - if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + DM[j][i] = DM[i][j]; + v_dmx[j][i] = v_dmx[i][j]; + v_dmy[j][i] = v_dmy[i][j]; + v_dmz[j][i] = v_dmz[i][j]; + vmech_dmx[j][i] = vmech_dmx[i][j]; + vmech_dmy[j][i] = vmech_dmy[i][j]; + vmech_dmz[j][i] = vmech_dmz[i][j]; + cut_spin_dmi[j][i] = cut_spin_dmi[i][j]; + return cut_spin_dmi_global; } @@ -210,7 +224,8 @@ void PairSpinDmi::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl, ecoul; - double xi[3], rij[3], eij[3]; + double xi[3], eij[3]; + double delx,dely,delz; double spi[3], spj[3]; double fi[3], fmi[3]; double local_cut2; @@ -264,20 +279,17 @@ void PairSpinDmi::compute(int eflag, int vflag) spj[2] = sp[j][2]; evdwl = 0.0; - fi[0] = fi[1] = fi[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; - rij[0] = rij[1] = rij[2] = 0.0; - eij[0] = eij[1] = eij[2] = 0.0; - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; inorm = 1.0/sqrt(rsq); - eij[0] = rij[0]*inorm; - eij[1] = rij[1]*inorm; - eij[2] = rij[2]*inorm; + eij[0] = -inorm*delx; + eij[1] = -inorm*dely; + eij[2] = -inorm*delz; local_cut2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; @@ -286,7 +298,7 @@ void PairSpinDmi::compute(int eflag, int vflag) if (rsq <= local_cut2) { compute_dmi(i,j,eij,fmi,spj); if (lattice_flag) { - compute_dmi_mech(fi); + compute_dmi_mech(i,j,rsq,eij,fi,spi,spj); } } @@ -309,7 +321,7 @@ void PairSpinDmi::compute(int eflag, int vflag) } else evdwl = 0.0; if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, - evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); + evdwl,ecoul,fi[0],fi[1],fi[2],delx,dely,delz); } } @@ -325,8 +337,8 @@ void PairSpinDmi::compute_single_pair(int ii, double fmi[3]) double **x = atom->x; double **sp = atom->sp; double local_cut2; - - double xi[3], rij[3], eij[3]; + double xi[3], eij[3]; + double delx,dely,delz; double spj[3]; int i,j,jnum,itype,jtype; @@ -358,14 +370,14 @@ void PairSpinDmi::compute_single_pair(int ii, double fmi[3]) spj[1] = sp[j][1]; spj[2] = sp[j][2]; - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; inorm = 1.0/sqrt(rsq); - eij[0] = rij[0]*inorm; - eij[1] = rij[1]*inorm; - eij[2] = rij[2]*inorm; + eij[0] = -inorm*delx; + eij[1] = -inorm*dely; + eij[2] = -inorm*delz; local_cut2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; @@ -390,23 +402,45 @@ void PairSpinDmi::compute_dmi(int i, int j, double eij[3], double fmi[3], double jtype = type[j]; dmix = eij[1]*v_dmz[itype][jtype] - eij[2]*v_dmy[itype][jtype]; - dmiy = eij[2]*v_dmx[itype][jtype] - eij[2]*v_dmz[itype][jtype]; + dmiy = eij[2]*v_dmx[itype][jtype] - eij[0]*v_dmz[itype][jtype]; dmiz = eij[0]*v_dmy[itype][jtype] - eij[1]*v_dmx[itype][jtype]; - fmi[0] += (spj[1]*dmiz - spj[2]*dmiy); - fmi[1] += (spj[2]*dmix - spj[0]*dmiz); - fmi[2] += (spj[0]*dmiy - spj[1]*dmix); + fmi[0] -= (spj[1]*dmiz - spj[2]*dmiy); + fmi[1] -= (spj[2]*dmix - spj[0]*dmiz); + fmi[2] -= (spj[0]*dmiy - spj[1]*dmix); } /* ---------------------------------------------------------------------- compute the mechanical force due to the dmi interaction between atom i and atom j ------------------------------------------------------------------------- */ -void PairSpinDmi::compute_dmi_mech(double fi[3]) +void PairSpinDmi::compute_dmi_mech(int i, int j, double rsq, double eij[3], + double fi[3], double spi[3], double spj[3]) { - fi[0] += 0.0; - fi[1] += 0.0; - fi[2] += 0.0; + int *type = atom->type; + int itype, jtype; + double dmix,dmiy,dmiz; + itype = type[i]; + jtype = type[j]; + double csx,csy,csz,cdmx,cdmy,cdmz,irij; + + irij = 1.0/sqrt(rsq); + + dmix = vmech_dmx[itype][jtype]; + dmiy = vmech_dmy[itype][jtype]; + dmiz = vmech_dmz[itype][jtype]; + + csx = (spi[1]*spj[2] - spi[2]*spj[1]); + csy = (spi[2]*spj[0] - spi[0]*spj[2]); + csz = (spi[0]*spj[1] - spi[1]*spj[0]); + + cdmx = (dmiy*csz - dmiz*csy); + cdmy = (dmiz*csx - dmix*csz); + cdmz = (dmix*csy - dmiy*csz); + + fi[0] += irij*cdmx; + fi[1] += irij*cdmy; + fi[2] += irij*cdmz; } /* ---------------------------------------------------------------------- @@ -428,6 +462,9 @@ void PairSpinDmi::allocate() memory->create(v_dmx,n+1,n+1,"pair:DM_vector_x"); memory->create(v_dmy,n+1,n+1,"pair:DM_vector_y"); memory->create(v_dmz,n+1,n+1,"pair:DM_vector_z"); + memory->create(vmech_dmx,n+1,n+1,"pair:DMmech_vector_x"); + memory->create(vmech_dmy,n+1,n+1,"pair:DMmech_vector_y"); + memory->create(vmech_dmz,n+1,n+1,"pair:DMmech_vector_z"); memory->create(cutsq,n+1,n+1,"pair:cutsq"); @@ -451,6 +488,9 @@ void PairSpinDmi::write_restart(FILE *fp) fwrite(&v_dmx[i][j],sizeof(double),1,fp); fwrite(&v_dmy[i][j],sizeof(double),1,fp); fwrite(&v_dmz[i][j],sizeof(double),1,fp); + fwrite(&vmech_dmx[i][j],sizeof(double),1,fp); + fwrite(&vmech_dmy[i][j],sizeof(double),1,fp); + fwrite(&vmech_dmz[i][j],sizeof(double),1,fp); fwrite(&cut_spin_dmi[i][j],sizeof(double),1,fp); } } @@ -478,12 +518,18 @@ void PairSpinDmi::read_restart(FILE *fp) fread(&v_dmx[i][j],sizeof(double),1,fp); fread(&v_dmy[i][j],sizeof(double),1,fp); fread(&v_dmz[i][j],sizeof(double),1,fp); + fread(&vmech_dmx[i][j],sizeof(double),1,fp); + fread(&vmech_dmy[i][j],sizeof(double),1,fp); + fread(&vmech_dmz[i][j],sizeof(double),1,fp); fread(&cut_spin_dmi[i][j],sizeof(double),1,fp); } MPI_Bcast(&DM[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&v_dmx[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&v_dmy[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&v_dmz[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&vmech_dmx[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&vmech_dmy[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&vmech_dmz[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&cut_spin_dmi[i][j],1,MPI_DOUBLE,0,world); } } diff --git a/src/SPIN/pair_spin_dmi.h b/src/SPIN/pair_spin_dmi.h index a309f0c8d5..68e42e879d 100644 --- a/src/SPIN/pair_spin_dmi.h +++ b/src/SPIN/pair_spin_dmi.h @@ -38,22 +38,23 @@ class PairSpinDmi : public PairSpin { void compute_single_pair(int, double *); void compute_dmi(int, int, double *, double *, double *); - void compute_dmi_mech(double *); + void compute_dmi_mech(int, int, double, double *, double *, double *, double *); void write_restart(FILE *); void read_restart(FILE *); void write_restart_settings(FILE *); void read_restart_settings(FILE *); - double cut_spin_dmi_global; // short range pair cutoff + double cut_spin_dmi_global; // short range pair cutoff protected: - double **DM; // dmi coeff in eV - double **v_dmx, **v_dmy, **v_dmz; // dmi direction - double **cut_spin_dmi; // cutoff distance dmi + double **DM; // dmi coeff in eV + double **v_dmx, **v_dmy, **v_dmz; // dmi direction + double **vmech_dmx, **vmech_dmy, **vmech_dmz; // dmi mech direction + double **cut_spin_dmi; // cutoff distance dmi - int lattice_flag; // flag for mech force computation - class FixNVESpin *lockfixnvespin; // ptr to FixNVESpin for setups + int lattice_flag; // flag for mech force computation + class FixNVESpin *lockfixnvespin; // ptr to FixNVESpin for setups void allocate(); }; diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 1b7b36b6db..cc074bb97d 100644 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -65,7 +65,7 @@ PairSpinExchange::~PairSpinExchange() memory->destroy(J1_mech); memory->destroy(J2); memory->destroy(J3); - memory->destroy(cutsq); // to be deleted + memory->destroy(cutsq); // to be implemented } } @@ -134,8 +134,8 @@ void PairSpinExchange::coeff(int narg, char **arg) count++; } } - if (count == 0) - error->all(FLERR,"Incorrect args in pair_style command"); + + if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); } /* ---------------------------------------------------------------------- @@ -183,6 +183,12 @@ double PairSpinExchange::init_one(int i, int j) if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + J1_mag[j][i] = J1_mag[i][j]; + J1_mech[j][i] = J1_mech[i][j]; + J2[j][i] = J2[i][j]; + J3[j][i] = J3[i][j]; + cut_spin_exchange[j][i] = cut_spin_exchange[i][j]; + return cut_spin_exchange_global; } @@ -203,7 +209,8 @@ void PairSpinExchange::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl, ecoul; - double xi[3], rij[3], eij[3]; + double xi[3], eij[3]; + double delx,dely,delz; double spi[3], spj[3]; double fi[3], fmi[3]; double local_cut2; @@ -255,18 +262,17 @@ void PairSpinExchange::compute(int eflag, int vflag) spj[2] = sp[j][2]; evdwl = 0.0; - fi[0] = fi[1] = fi[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; inorm = 1.0/sqrt(rsq); - eij[0] = inorm*rij[0]; - eij[1] = inorm*rij[1]; - eij[2] = inorm*rij[2]; + eij[0] = -inorm*delx; + eij[1] = -inorm*dely; + eij[2] = -inorm*delz; local_cut2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; @@ -298,7 +304,7 @@ void PairSpinExchange::compute(int eflag, int vflag) } else evdwl = 0.0; if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, - evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); + evdwl,ecoul,fi[0],fi[1],fi[2],delx,dely,delz); } } @@ -317,8 +323,8 @@ void PairSpinExchange::compute_single_pair(int ii, double fmi[3]) double **x = atom->x; double **sp = atom->sp; double local_cut2; - double xi[3], rij[3]; + double delx,dely,delz; double spj[3]; int i,j,jnum,itype,jtype; @@ -351,15 +357,14 @@ void PairSpinExchange::compute_single_pair(int ii, double fmi[3]) spj[1] = sp[j][1]; spj[2] = sp[j][2]; - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; if (rsq <= local_cut2) { compute_exchange(i,j,rsq,fmi,spj); } - } } @@ -390,7 +395,8 @@ void PairSpinExchange::compute_exchange(int i, int j, double rsq, double fmi[3], compute the mechanical force due to the exchange interaction between atom i and atom j ------------------------------------------------------------------------- */ -void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double rij[3], double fi[3], double spi[3], double spj[3]) +void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double eij[3], + double fi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; @@ -408,9 +414,9 @@ void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double ri Jex_mech *= 8.0*Jex*rr*exp(-ra); Jex_mech *= (spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]); - fi[0] -= Jex_mech*rij[0]; - fi[1] -= Jex_mech*rij[1]; - fi[2] -= Jex_mech*rij[2]; + fi[0] -= Jex_mech*eij[0]; + fi[1] -= Jex_mech*eij[1]; + fi[2] -= Jex_mech*eij[2]; } /* ---------------------------------------------------------------------- diff --git a/src/SPIN/pair_spin_magelec.cpp b/src/SPIN/pair_spin_magelec.cpp index 315b691d17..6bc1f71947 100644 --- a/src/SPIN/pair_spin_magelec.cpp +++ b/src/SPIN/pair_spin_magelec.cpp @@ -187,8 +187,14 @@ void PairSpinMagelec::init_style() double PairSpinMagelec::init_one(int i, int j) { + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); - if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + ME[j][i] = ME[i][j]; + ME_mech[j][i] = ME_mech[i][j]; + v_mex[j][i] = v_mex[i][j]; + v_mey[j][i] = v_mey[i][j]; + v_mez[j][i] = v_mez[i][j]; + cut_spin_magelec[j][i] = cut_spin_magelec[i][j]; return cut_spin_magelec_global; } @@ -211,7 +217,8 @@ void PairSpinMagelec::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl, ecoul; - double xi[3], rij[3], eij[3]; + double xi[3], eij[3]; + double delx,dely,delz; double spi[3], spj[3]; double fi[3], fmi[3]; double local_cut2; @@ -263,18 +270,17 @@ void PairSpinMagelec::compute(int eflag, int vflag) spj[2] = sp[j][2]; evdwl = 0.0; - fi[0] = fi[1] = fi[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; inorm = 1.0/sqrt(rsq); - eij[0] = inorm*rij[0]; - eij[1] = inorm*rij[1]; - eij[2] = inorm*rij[2]; + eij[0] = -inorm*delx; + eij[1] = -inorm*dely; + eij[2] = -inorm*delz; local_cut2 = cut_spin_magelec[itype][jtype]*cut_spin_magelec[itype][jtype]; @@ -301,12 +307,12 @@ void PairSpinMagelec::compute(int eflag, int vflag) } if (eflag) { - evdwl = (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); + evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); evdwl *= hbar; } else evdwl = 0.0; if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, - evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); + evdwl,ecoul,fi[0],fi[1],fi[2],delx,dely,delz); } } @@ -322,8 +328,8 @@ void PairSpinMagelec::compute_single_pair(int ii, double fmi[3]) double **x = atom->x; double **sp = atom->sp; double local_cut2; - - double xi[3], rij[3], eij[3]; + double xi[3], eij[3]; + double delx,dely,delz; double spj[3]; int i,j,jnum,itype,jtype; @@ -342,8 +348,6 @@ void PairSpinMagelec::compute_single_pair(int ii, double fmi[3]) xi[1] = x[i][1]; xi[2] = x[i][2]; - eij[0] = eij[1] = eij[2] = 0.0; - jlist = firstneigh[i]; jnum = numneigh[i]; @@ -358,14 +362,14 @@ void PairSpinMagelec::compute_single_pair(int ii, double fmi[3]) spj[1] = sp[j][1]; spj[2] = sp[j][2]; - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; inorm = 1.0/sqrt(rsq); - eij[0] = inorm*rij[0]; - eij[1] = inorm*rij[1]; - eij[2] = inorm*rij[2]; + eij[0] = -inorm*delx; + eij[1] = -inorm*dely; + eij[2] = -inorm*delz; if (rsq <= local_cut2) { compute_magelec(i,j,rsq,eij,fmi,spj); @@ -380,36 +384,26 @@ void PairSpinMagelec::compute_magelec(int i, int j, double rsq, double eij[3], d { int *type = atom->type; int itype, jtype; + double meix,meiy,meiz; + double vx,vy,vz; itype = type[i]; jtype = type[j]; - double local_cut2 = cut_spin_magelec[itype][jtype]*cut_spin_magelec[itype][jtype]; - - if (rsq <= local_cut2) { - double meix,meiy,meiz; - double rx, ry, rz; - double vx, vy, vz; - - rx = eij[0]; - ry = eij[1]; - rz = eij[2]; - - vx = v_mex[itype][jtype]; - vy = v_mey[itype][jtype]; - vz = v_mez[itype][jtype]; + vx = v_mex[itype][jtype]; + vy = v_mey[itype][jtype]; + vz = v_mez[itype][jtype]; - meix = vy*rz - vz*ry; - meiy = vz*rx - vx*rz; - meiz = vx*ry - vy*rx; + meix = vy*eij[2] - vz*eij[1]; + meiy = vz*eij[0] - vx*eij[2]; + meiz = vx*eij[1] - vy*eij[0]; - meix *= ME[itype][jtype]; - meiy *= ME[itype][jtype]; - meiz *= ME[itype][jtype]; + meix *= ME[itype][jtype]; + meiy *= ME[itype][jtype]; + meiz *= ME[itype][jtype]; - fmi[0] += spj[1]*meiz - spj[2]*meiy; - fmi[1] += spj[2]*meix - spj[0]*meiz; - fmi[2] += spj[0]*meiy - spj[1]*meix; - } + fmi[0] += spj[1]*meiz - spj[2]*meiy; + fmi[1] += spj[2]*meix - spj[0]*meiz; + fmi[2] += spj[0]*meiy - spj[1]*meix; } /* ---------------------------------------------------------------------- */ diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index 0daafad756..55f537cf4f 100644 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -193,8 +193,16 @@ void PairSpinNeel::init_style() double PairSpinNeel::init_one(int i, int j) { - - if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + + g1[j][i] = g1[i][j]; + g1_mech[j][i] = g1_mech[i][j]; + g2[j][i] = g2[i][j]; + g3[j][i] = g3[i][j]; + q1[j][i] = q1[i][j]; + q1_mech[j][i] = q1_mech[i][j]; + q2[j][i] = q2[i][j]; + q3[j][i] = q3[i][j]; return cut_spin_neel_global; } diff --git a/src/SPIN/pair_spin_neel.h b/src/SPIN/pair_spin_neel.h index 934d4a93ad..f60d7d2dca 100644 --- a/src/SPIN/pair_spin_neel.h +++ b/src/SPIN/pair_spin_neel.h @@ -51,9 +51,9 @@ class PairSpinNeel : public PairSpin { // pseudo-dipolar and pseudo-quadrupolar coeff. - double **g1, **g1_mech; // exchange coeffs gij + double **g1, **g1_mech; // neel coeffs gij double **g2, **g3; // g1 in eV, g2 adim, g3 in Ang - double **q1, **q1_mech; // exchange coeffs qij + double **q1, **q1_mech; // neel coeffs qij double **q2, **q3; // q1 in eV, q2 adim, q3 in Ang double **cut_spin_neel; // cutoff distance exchange -- GitLab