How to create a structure with two Bloch domain walls

14 views
Skip to first unread message

山山泽

unread,
Aug 21, 2025, 5:28:12 AMAug 21
to mumax2

"I want to set up a structure with two Bloch domain walls, as shown in the figure. The steps are: apply external magnetic fields with opposite directions to adjacent regions within three regions to obtain Bloch domain walls as spin wave guides. The initial magnetization in the magnetic material is randomly distributed, and a stable structure is achieved through three stages. First, divide the magnetic material waveguide into three regions, with the middle region being the gap width, as shown in the figure. Second, apply two external magnetic fields and perpendicular to the film surface with opposite directions to adjacent regions. The external magnetic field strength is 1T and decays exponentially over time as . Below is the code I wrote, but I don't know why the result does not match the expected image."

图1.png图2.png图3.pngFigure 1, Schematic diagram of applied magnetic field;
Figure 2, Schematic diagram of domain wall;
Figure 3, Schematic diagram of domain wall I wrote.  

  Finally, here is the code I wrote.

OutputFormat = OVF2_TEXT
SetGridSize(1000, 120, 2)
SetCellSize(2e-9, 2e-9, 1e-9)

a:= yrange(-120e-9,-20e-9)
b:= yrange(-20e-9,20e-9)
c:= yrange(20e-9,120e-9)
Defregion(3,a)
Defregion(4,b)
Defregion(5,c)
//Defregion(1,xrange(-1000.5e-9,-950e-9))
//Defregion(2,xrange(950.e-9,1000.e-9))
//Defregion(3,xrange(-950.e-9,950e-9))
Defregion(1,zrange(-1.e-9,0.e-9))
Defregion(2,zrange(0.e-9,1.e-9))

Msat.setregion(1,3.7e5)
Msat.setregion(2,11.94e5)

Ku1.setregion(1, 6.3e5)
anisU.setregion(1, vector(0, 0, 1))
Ku1.setregion(2, 12e5)
anisU.setregion(2, vector(0, 0, 1))
 
Aex.setregion(1,6.e-12)
Aex.setregion(2, 28e-12)
ext_ScaleExchange(1, 2, 0.5)

alpha.setregion(1,0.9)
alpha.setregion(2,0.9)

m.setInShape(a,uniform(0,0,1))
m.setInShape(b,uniform(0,0,-1))
m.setInShape(c,uniform(0,0,1))

save(m)


B_ext.setregion(3,vector(0,0, exp(-6*t)))
B_ext.setregion(4,vector(0,0, -exp(-6*t)))
B_ext.setregion(5,vector(0,0, exp(-6*t)))
autosave(m,1e-10)
tableautosave(1.e-10)
run(100.e-9)

Reply all
Reply to author
Forward
0 new messages