|
The code was corrected in January 2008; be sure to download the
latest version of the source files.
Class spinTEvolve is a modification
of OOMMF's spinxferevolve class aimed at simulating the effect
of polarized current on magnetic domain walls. It implements the
two spin-current terms modifying the Landau-Lifshitz-Gilbert equation
[1,2,3]. This code is distributed in the public domain.
Installation
- Get the spintevolve-files archive.
- Copy
the spintevolve.h and spintevolve.cc files into the “/app/oxs/local”
directory of your current OOMMF distribution (version 1.2a4 or
later).
- Recompile the OOMMF code.
- An example .mif file, dw-160-8-4-3D.mif, is
provided in the example archive
for a transverse DW in a 5000x160x4 nm3 nanowire. Copy all
the files into a directory before launching the script.
Theoretical background
The
convention from [2] in the case where the current
is aligned with the wire axis is used:
where J is the current density and P is the
current polarization. Electrons
flowing toward the right means that u>0.
Remarks
- From theory, the domain wall should move
in the direction of propagation of the electrons. Below the
so-called Walker breakdown, the initial velocity should be
equal to u and the terminal velocity equal to ß u.
The code successfully reproduced these results.
- This is the same model as the one proposed
by Zhang et al. [1] considering |bJ|=|u| and |cJ|=ß|u|.
The modified dm/dt is calculated in [Anv_SpinTEvolve::Calculate_dm_dt]
To calculate the time-derivative of the energy,
starting with the relation
and substituting
with –μ0 Heff and
dm/dt
with equation (1), we get

Evolver input/output (as it differs from the standard
Oxs_RungeKuttaEvolve)
- u
can be initialized as a ScalarField. Its unit is m/s. It can
also be modified in time with u_profile in
the same way as J with J_profile in the
Oxs_SpinXferEvolve class. [not tested]
- ß
has no unit and is constant over the entire mesh (up to now,
but this could be modified quite quickly).
- ave_u_output: output,
average of u over the entire mesh.
- spin_torque_output:
the part of dm/dt
coming from the spin-torque. Implemented in [Oxs_SpinXferEvolve::UpdateSpinTorqueOutputs]
- See the example dw-160-8-4-3D.mif for usage.
References
| [1] |
S.
Zhang and Z. Li, Roles of nonequilibrium conduction
electrons on the magnetization dynamics of ferromagnets,
Phys. Rev. Lett. 93, 127204 (2004). |
| [2] |
A.
Thiaville, Y. Nakatani, J. Miltat and Y. Suzuki, Micromagnetic
understanding of current-driven domain wall motion in patterned
nanowires, Europhys. Lett. 69, 990
(2005). |
| [3] |
A.
Vanhaverbeke and M. Viret, Simple model of current-induced
spin torque in domain walls, Phys. Rev. B 75,
024411 (2007). |
 |
|