Dynamics of vortex core switching

12 views
Skip to first unread message

Frosch

unread,
Sep 8, 2025, 10:56:47 AM (3 days ago) Sep 8
to mumax2
Hello, everyone. I am working on this magnetic vortex polarity reversal device. I am in the process of reproducing this article, specifically, I am trying to reproduce the graph in Figure 2. This graph in the image is what I managed to do (the blue line is the demagnetization energy, the dashed line is the exchange energy, and the dotted line is the total energy). You can see that the peak rise in total energy is low compared to that in the article. So, I imagine that this is the reason for the discrepancy in the results of the exchange energy and demagnetizing energy in relation to the article. I don't know if there is something wrong with my code, if I am misunderstanding the article, or if I am missing some parameter in the code. I posted this to see if anyone would have any ideas to help me. Thank you all.
------------------------------------------------------------------------//-----------------------------------------------------------------------

Temp = 0
FixDt = 1e-14

// Add energy table
TableAdd(B_ext)
TableAdd(Edens_demag)
TableAdd(Edens_exch)
TableAdd(Edens_total)
TableAdd(maxTorque)
OetoT := 1e-4

// Set up pulse Amp e time pulse
pulseAmp := 290*OetoT
pulseWidth := 80e-12

relaxTime := 1000e-12


// Geometria
sizeX := 500e-9
sizeY := 500e-9
sizeZ := 30e-9

Nx := 250      
Ny := 250        
Nz := 10

dx := sizeX/Nx   // 2 nm
dy := sizeY/Ny   // 2 nm
dz := sizeZ/Nz   // 3 nm

SetGridsize(Nx, Ny, Nz)
SetCellsize(dx, dy, dz)
setgeom(circle(sizeX))


// set up material parameters
Msat = 800e3
Aex = 13e-12
alpha = 0.01
Ku1 = 0
m = Vortex(-1, 1)

// Save set up
tableautosave(1e-12)
autosnapshot(m.Comp(2), (pulseWidth+relaxTime)/90)   // 90 fotos tiradas ao longo de pulseWidth+relaxTime


// Pulse

B_ext = vector( 0, -pulseAmp, 0 )
run( pulseWidth )

B_ext = vector( 0, 0, 0 )
run( relaxTime )

autosave(m.Comp(2), 100e-12)


Dynamics of vortex core switching in ferromagnetic nanodisk.pdf
energiasdt.png

Frosch

unread,
Sep 8, 2025, 11:01:38 AM (3 days ago) Sep 8
to mumax2
Correction: in B_ext = vector(0, -pulseAmp, 0), I actually used B_ext = vector(0, pulseAmp, 0) in the simulation
(the pulse is positive).

Антон Луценко

unread,
Sep 9, 2025, 1:55:08 PM (2 days ago) Sep 9
to mumax2
Hi! Regarding the script itself, I see autosave() in the last line. That means that the dynamics during run() above will not be saved. If you would like to save mz evolution in time, you would need to put the autosave() line before run()'s. 
Reply all
Reply to author
Forward
0 new messages