fix precession/spin command

Syntax

fix ID group precession/spin style args
  • ID, group are documented in fix command

  • precession/spin = style name of this fix command

  • style = zeeman or anisotropy or cubic

    zeeman args = H x y z
      H = intensity of the magnetic field (in Tesla)
      x y z = vector direction of the field
    anisotropy args = K x y z
      K = intensity of the magnetic anisotropy (in eV)
      x y z = vector direction of the anisotropy
    cubic args = K1 K2c n1x n1y n1x n2x n2y n2z n3x n3y n3z
      K1 and K2c = intensity of the magnetic anisotropy (in eV)
      n1x to n3z = three direction vectors of the cubic anisotropy

Examples

fix 1 all precession/spin zeeman 0.1 0.0 0.0 1.0
fix 1 3 precession/spin anisotropy 0.001 0.0 0.0 1.0
fix 1 iron precession/spin cubic 0.001 0.0005 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0
fix 1 all precession/spin zeeman 0.1 0.0 0.0 1.0 anisotropy 0.001 0.0 0.0 1.0

Description

This fix applies a precession torque to each magnetic spin in the group.

Style zeeman is used for the simulation of the interaction between the magnetic spins in the defined group and an external magnetic field:

\[H_{Zeeman} = -g \sum_{i=0}^{N}\mu_{i}\, \vec{s}_{i} \cdot\vec{B}_{ext}\]

with:

  • \(\vec{B}_{ext}\) the external magnetic field (in T)

  • \(g\) the Lande factor (hard-coded as \(g=2.0\))

  • \(\vec{s}_i\) the unitary vector describing the orientation of spin \(i\)

  • \(\mu_i\) the atomic moment of spin \(i\) given as a multiple of the Bohr magneton \(\mu_B\) (for example, \(\mu_i \approx 2.2\) in bulk iron).

The field value in Tesla is multiplied by the gyromagnetic ratio, \(g \cdot \mu_B/\hbar\), converting it into a precession frequency in rad.THz (in metal units and with \(\mu_B = 5.788 eV/T\)).

As a comparison, the figure below displays the simulation of a single spin (of norm \(\mu_i = 1.0\)) submitted to an external magnetic field of \(\vert B_{ext}\vert = 10.0\; \mathrm{Tesla}\) (and oriented along the z axis). The upper plot shows the average magnetization along the external magnetic field axis and the lower plot the Zeeman energy, both as a function of temperature. The reference result is provided by the plot of the Langevin function for the same parameters.

_images/zeeman_langevin.jpg

The temperature effects are accounted for by connecting the spin \(i\) to a thermal bath using a Langevin thermostat (see fix langevin/spin for the definition of this thermostat).

Style anisotropy is used to simulate an easy axis or an easy plane for the magnetic spins in the defined group:

\[H_{aniso} = -\sum_{{ i}=1}^{N} K_{an}(\mathbf{r}_{i})\, \left( \vec{s}_{i} \cdot \vec{n}_{i} \right)^2\]

with \(n\) defining the direction of the anisotropy, and \(K\) (in eV) its intensity. If \(K > 0\), an easy axis is defined, and if \(K < 0\), an easy plane is defined.

Style cubic is used to simulate a cubic anisotropy, with three possible easy axis for the magnetic spins in the defined group:

\[H_{cubic} = -\sum_{{ i}=1}^{N} K_{1} \Big[ \left(\vec{s}_{i} \cdot \vec{n_1} \right)^2 \left(\vec{s}_{i} \cdot \vec{n_2} \right)^2 + \left(\vec{s}_{i} \cdot \vec{n_2} \right)^2 \left(\vec{s}_{i} \cdot \vec{n_3} \right)^2 + \left(\vec{s}_{i} \cdot \vec{n_1} \right)^2 \left(\vec{s}_{i} \cdot \vec{n_3} \right)^2 \Big] +K_{2}^{(c)} \left(\vec{s}_{i} \cdot \vec{n_1} \right)^2 \left(\vec{s}_{i} \cdot \vec{n_2} \right)^2 \left(\vec{s}_{i} \cdot \vec{n_3} \right)^2\]

with \(K_1\) and \(K_{2c}\) (in eV) the intensity coefficients and \(\vec{n}_1\), \(\vec{n}_2\) and \(\vec{n}_3\) defining the three anisotropic directions defined by the command (from n1x to n3z). For \(\vec{n}_1 = (1 0 0)\), \(\vec{n}_2 = (0 1 0)\), and \(\vec{n}_3 = (0 0 1)\), \(K_1 < 0\) defines an iron type anisotropy (easy axis along the \((0 0 1)\)-type cube edges), and \(K_1 > 0\) defines a nickel type anisotropy (easy axis along the \((1 1 1)\)-type cube diagonals). \(K_2^c > 0\) also defines easy axis along the \((1 1 1)\)-type cube diagonals. See chapter 2 of (Skomski) for more details on cubic anisotropies.

In all cases, the choice of \((x y z)\) only imposes the vector directions for the forces. Only the direction of the vector is important; its length is ignored (the entered vectors are normalized).

Those styles can be combined within one single command line.


Restart, fix_modify, output, run start/stop, minimize info:

By default, the energy associated to this fix is not added to the potential energy of the system. The fix_modify energy option is supported by this fix to add this magnetic potential energy to the potential energy of the system,

fix             1 all precession/spin zeeman 1.0 0.0 0.0 1.0
fix_modify      1 energy yes

This fix computes a global scalar which can be accessed by various output commands.

No information about this fix is written to binary restart files.

Restrictions

The precession/spin style is part of the SPIN package. This style is only enabled if LAMMPS was built with this package, and if the atom_style “spin” was declared. See the Build package doc page for more info.

The precession/spin style can only be declared once. If more than one precession type (for example combining an anisotropy and a Zeeman interactions) has to be declared, they have to be chained in the same command line (as shown in the examples above).