Spin Transport Solver

10 views
Skip to first unread message

Joel Mascarenhas

unread,
Jul 6, 2026, 8:19:53 AMJul 6
to Boris Computational Spintronics
Subject: Exercise 18.1 (single Pt SHE) — your forum script gives <S> = 0 on v3.80

Hi Serban,

I'm running Exercise 18.1 (spin Hall effect in a single Pt slab) on BORIS v3.80 via the Python/NetSocks interface, using the exact script you posted on the group (May 2024). The charge solve is correct but the spin accumulation comes out zero, and I can't find what differs.

I ran your script verbatim:

  ns = NSClient(); ns.configure(True)
  l,w,t = 320e-9, 320e-9, 40e-9
  Pt = ns.Conductor([0, 0, 0, l, w, t], [5e-9, 2e-9, 2e-9])
  Pt.modules(['transport'])
  Pt.param.elC = 7e6
  Pt.param.l_sf = 1.4e-9
  Pt.param.SHA = 0.1
  ns.setdefaultelectrodes()
  ns.setpotential(1e-2)
  ns.setode('LLG-SA', 'RK4')
  Pt.display('S')
  ns.computefields()

Volume averages afterwards:
  <Jc> = [-2.19e11, ~0, ~0] A/m^2   (correct: sigma*V/Lx along -x)
  <S>  = [5e-21, 4e-17, -2e-18] A/m  (i.e. zero to numerical noise)

So the charge transport is fine, but no spin accumulation develops. A few observations:
- The transport module is added and Jc is correct, so the transport solver is running for charge.
- I confirmed via the GUI panel that after configure(True) the "Static transport solver" starts Off. Turning it On (statictransportsolver 1) plus driving with Relax instead of computefields also gave <S> = 0.
- ns.setode() with no arguments returns an empty string on my build, so I can't confirm the ODE query, though setode('LLG-SA','RK4') is issued without error.

Is there an additional step needed on v3.80 to make the spin (S) part of the transport solver engage for a normal-metal-only mesh, or has the required setup changed since the forum post? A minimal working v3.80 command sequence for 18.1 would be a great help.

Thanks very much,
Joel M
Reply all
Reply to author
Forward
0 new messages