Class SpinOrbitTorque

java.lang.Object
org.episteme.apps.apps.physics.spintronics.SpinOrbitTorque

public class SpinOrbitTorque extends Object
Spin-Orbit Torque (SOT) calculations for heavy metal / ferromagnet bilayers.

SOT enables efficient magnetization switching via Spin Hall Effect (SHE).

Physics

A charge current J_c in the heavy metal (Pt, Ta, W) generates a transverse spin current via the Spin Hall Effect: $$ J_s = \theta_{SH} \frac{\hbar}{2e} J_c $$ This spin current exerts a torque on the adjacent ferromagnet.

References

  • Liu, L. et al. (2012). "Spin-Torque Switching with the Giant Spin Hall Effect of Tantalum". Science, 336(6081), 555-558. DOI: 10.1126/science.1218197
  • Miron, I. M. et al. (2011). "Perpendicular switching of a single ferromagnetic layer induced by in-plane current injection". Nature, 476, 189-193. DOI: 10.1038/nature10309
Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Constructor Details

  • Method Details

    • calculateDampingLikeTorque

      public Real[] calculateDampingLikeTorque(Real currentDensity, FerromagneticLayer layer, Real[] currentDirection)
      Calculates the damping-like SOT vector (Anti-damping torque). $$ \tau_{DL} = \tau_0 (\mathbf{m} \times (\hat{\sigma} \times \mathbf{m})) $$ where σ is the spin polarization direction (perpendicular to current and normal).
      Parameters:
      currentDensity - Charge current density in HM (A/m²)
      layer - Ferromagnetic layer receiving the torque
      currentDirection - Unit vector of current flow (usually x)
      Returns:
      Damping-like torque vector
    • calculateFieldLikeTorque

      public Real[] calculateFieldLikeTorque(Real currentDensity, FerromagneticLayer layer, Real[] currentDirection)
      Calculates the field-like SOT vector. $$ \tau_{FL} = \tau_{FL,0} (\mathbf{m} \times \hat{\sigma}) $$
    • getMetal

      public SpinOrbitTorque.HeavyMetal getMetal()
    • getThickness

      public Real getThickness()
    • calculateRashbaTorque

      public Real[] calculateRashbaTorque(Real currentDensity, FerromagneticLayer layer, Real rashbaParameter)
      Rashba-induced field-like torque at the interface. $$ \tau_{Rashba} = \frac{\alpha_R m_e}{\hbar e} J_c (\mathbf{m} \times \hat{y}) $$
      Parameters:
      currentDensity - Charge current in x-direction
      layer - Target ferromagnetic layer
      rashbaParameter - α_R (eV·Å) - typically 0.1-1.0
    • calculateOrbitalTorque

      public static Real[] calculateOrbitalTorque(Real currentDensity, FerromagneticLayer layer, SpinOrbitTorque.OrbitalHallMaterial oheMaterial, Real oheThickness, Real[] currentDirection)
      Orbital Hall Effect (OHE) torque. Similar structure to SHE but with orbital-to-spin conversion at interface.
    • calculateFieldFreeTorque

      public Real[] calculateFieldFreeTorque(Real currentDensity, FerromagneticLayer layer, Real[] currentDirection, AntiferromagneticMaterial afm, Real[] biasDirection)
      Combined SOT + Exchange Bias for field-free switching. Uses effective field from AFM layer to break symmetry.
      Parameters:
      currentDensity - Charge current density
      layer - FM layer
      currentDirection - Current direction
      afm - Antiferromagnetic material providing exchange bias
      biasDirection - Direction of exchange bias field
      Returns:
      Total effective field including SOT equivalent + bias
    • calculateSwitchingProbability

      public double calculateSwitchingProbability(Real currentDensity, Real pulseDuration, Real temperature, FerromagneticLayer layer, Real attemptFrequency)
      SOT switching probability for a given pulse. Uses Néel-Brown thermal activation model.
      Parameters:
      currentDensity - Current density
      pulseDuration - Pulse duration (s)
      temperature - Temperature (K)
      layer - Target layer
      attemptFrequency - f_0, typically 1e9-1e10 Hz
      Returns:
      Switching probability [0, 1]