switch of a stt-MRAM ,the Slonczewski model.

73 views
Skip to first unread message

asif md

unread,
Jul 14, 2025, 6:17:19 AM7/14/25
to mumax2
Respected sir 
Dr. Jonathan Leliaert Dr. Jeroen Mulkers
Dr. Josh Lauzier
Sir, I am encountering an issue with the code provided below. 

1. In the code provided below, the excitation source is represented by the current J. How can I define these pulses with different pulse widths, like 20 ns and 30 ns?

2. The thickness of the free layer in MTJ by the below code is represented by sizeZ = 5 nm. Where or how can I define the thickness of the spacer and fixed layer?

// geometry sizeX := 160e-9 sizeY := 80e-9 sizeZ := 5e-9 Nx := 64 Ny := 32 setgridsize(Nx, Ny, 1) setcellsize(sizeX/Nx, sizeY/Ny, sizeZ) setGeom(ellipse(sizeX, sizeY)) // set up free layer Msat = 800e3 Aex = 13e-12 alpha = 0.01 m = uniform(1, 0, 0) // set up fixed layer polarization angle := 20 px := cos(angle * pi/180) py := sin(angle * pi/180) fixedlayer = vector(-px, -py, 0) // set up fixed and spacer layer parameters lambda = 1 Pol = 0.5669 epsilonprime = 0 // send current Jtot := 0.008 // total current in A area := sizeX*sizeY*pi/4 jc := Jtot / area // current density in A/m2 J = vector(0, 0, jc) // schedule output & run autosave(m, 100e-12) tableautosave(10e-12) run(1e-9)

Thank you so much

Josh Lauzier

unread,
Jul 14, 2025, 2:48:17 PM7/14/25
to mumax2
Hi,

The easiest way is to just use multiple run statements like:

J= vector(0,0,0)
run(1e-9)
J=vector(1,0,0)
run(20e-9)
J= vector(0,0,0)
run(1e-9) 

And adjust the length of the run() appropriately. You can do this in a for-loop for multiple pulses.

For the fixed layer thickness, you can set the FixedLayer variable explicitly. There is no variable for the spacer layer, you need to deal with that implicitly by rescaling J or similar.

Best,
Josh L.
Reply all
Reply to author
Forward
0 new messages