no-reciprocal transmission dispersion relation

39 views
Skip to first unread message

IMPACT lut

unread,
Jul 16, 2026, 12:08:55 AMJul 16
to mumax2
hello everyone
         I  want to study the no-reciprocal  spin wave propagation caused by i-DMI between a double-layer film composed of a ferromagnetic layer and a heavy metal layer (FM/HM). However, my dispersion relation is filled with a lot of noise signals. I adjusted the amplitude and the width of the excitation antenna, but the problem still remained unsolved. Therefore, I came here seeking help from everyone.

Below is my mumax3 script, the frequency spectrum obtained through one-dimensional Fourier transformation, and the dispersion relation.
sesan.png频域.png
setGridSize(1800,50,2)
setCellSize(2e-9, 2e-9, 2.5e-9)
OutputFormat = OVF2_TEXT


Msat   = 1.25e6
Aex     = 15e-12
Dind   = 1e-3
//Ku1    = 0.3e6
AnisU = vector(0,1,0)
alpha = 0.01

m = uniform(0,1,0)

B_ext = vector(0,0.3,0)//偏置场
relax()
B_ext = vector(0,0.3,0)//偏置场

defregion(11,xrange(1500e-9,1600e-9))
alpha.setregion(11,0.5)
defregion(12,xrange(1600e-9,1700e-9))
alpha.setregion(12,1)
defregion(13,xrange(1700e-9,1800e-9))
alpha.setregion(13,1.5)

defregion(14,xrange(-1800e-9,-1700e-9))
alpha.setregion(14,1.5)
defregion(15,xrange(-1700e-9,-1600e-9))
alpha.setregion(15,1)
defregion(16,xrange(-1600e-9,-1500e-9))
alpha.setregion(16,0.5)

defregion(22,xrange(-1500e-9,1500e-9))//传播区域
alpha.setregion(22,0.001)
defregion(6,xrange(-4e-9,4e-9))//天线区域
B_ext.setregion(6, vector(0.01* sinc( 2*pi*50e9*(t-15e-9)),0.3,0))
autosave(m,0.5e-11)
tableAutosave(0.5e-11)
run(30e-9)

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

unread,
Jul 17, 2026, 3:56:34 AMJul 17
to mumax2
Hi,

I'm not particularly familiar with specifics of spin waves with i-DMI, but I have a few general recommendations.

1. MaxErr = 1e-7 or lower should decrease the amount of numerical noise that occurs due to time points being not perfectly aligned with the timer.
2. Gradually increasing absorbing boundary conditions (e.g. exponential with small coefficient, say alpha_slice *= 1.05 in a for loop) would suppress reflections much better than step-like alpha increase.
3. If you process data in Python, there is no need to have output format  OVF2_TEXT. You can work with binary just fine, and it would actually be even nicer – smaller file size and faster loading. You can load the OVFs with Ubermag's discretisedfield or unpack() (for multiple – unpack_preallocate_threaded()) from this simple script.
Reply all
Reply to author
Forward
0 new messages