# Spin Torque Standard Problem

The script implements a standard problem inlcuding spin transfer torque as proposed by Najafi et al. A square shaped sample with the material parameters of permalloy is relaxed in a vortex state. Then a spin polarized current is applied which results in an exitation of the vortex.

## Code

from magnum import *

# Define a world made of permalloy
world = World(
RectangularMesh((100, 100, 1), (1e-9, 1e-9, 10e-9)),
Body("all", Material.Py(xi=0.05,P=1.0, alpha=0.1)))

# Initialize Simulation: Set the magnetization to a predefined state
# with a vortex and relax
solver = create_solver(world, [StrayField, ExchangeField], log=True)
solver.state.M = vortex.magnetizationFunction(
solver.state.alpha = 0.3
solver.relax()

# save relaxed state for the next step
mag = solver.state.M

# Continue the simulation with the relaxed state and apply
# a DC current
solver = create_solver(world,
[StrayField, ExchangeField, SpinTorque, AlternatingCurrent], log=True)
solver.state.M = mag
solver.state.j_offs = (1e12, 0, 0)

# Create step handler that finds and saves the position of the
# vortex as well
odt = DataTableLog("sp5v02.odt")
("Vx", "Vortexcore X-pos.", "m"), ("Vy", "Vortexcore Y-pos.", "m"),
lambda s: vortex.findCore(solver, 50e-9, 50e-9, "all"))
vtkh = VTKStorage("./", "M")

# Simulate for 10 ns
solver.solve(condition.Time(10e-9))


## Results

As described in the paper of Najafi et al. the equilibrium position of the vortex core changes due to the direct spin-polarized current. Since the current is switched on instantaniously the vortex core performs a damped gyration around the new equilibrium position.

The time evolution of the magnetization rendered with ParaView

The contents of the odt file plotted with gnuplot