breaking domain walls to generate skyrmion bubbles in mumax3

374 views
Skip to first unread message

David Wang

unread,
Nov 7, 2023, 10:16:58 PM11/7/23
to mumax2
Hi,

I am trying to simulate the process in a homogeneous magnetic thin film (~tens of nm thick) with perpendicular anisotropy as follows:

Step 1. Initially the DMI is very small. The magnetic film has a relatively small perpendicular magnetic anisotropy so that the domains obtained by relax() in mumax are stripe or labyrinth domains. This step has been accomplished.

Step 2. Then I gradually increase the DMI values. What I want to realize in simulation is that the domain wall becomes Neel type at first, then as the DMI gets larger and larger the domain wall and the stripes break into more pieces, creating bubbles (skyrmions). Theoretically this should happen because the DMI favors the formation of domain walls.

However in the mumax3 simulation, what usually happens is that as the DMI increases, the stripe domains just get narrower and narrower but never breaks into bubbles. I sense that this is because breaking and creating new domain walls costs extra energy, which serves as an energy barrier between stripe domains and skyrmions, so the system cannot evolve to the true ground states of skyrmions. 

I am wondering whether there have been some strategies in mumax3 to overcome this energy barrier issue? Thanks.

Best,
Tianye 



Best,
Tianye

Felipe Garcia

unread,
Nov 8, 2023, 7:02:42 AM11/8/23
to mum...@googlegroups.com
Dear Tyane,

For a range of DMI, the skyrmions are metastable. Beyond another value Dc, the domain energy becomes negative (with respect to saturated state) and therefore the labyrinth state becomes the stable state. The system prefers to have domain walls other than saturated regions in that case. In that range of DMI, why would this produce bubbles if you already have domain walls? If you have a bubble (or domain wall) it would like to maximize its length not to break it. So it would like to make the bubbles/dw with more perimeter. That can be done perfectly without creating new bubbles. Anyway, creating new domain walls beyond this Dc costs no energy for Dc, Sigmadw(Dc)=SigmaDW(D=0)-Pi*D<0, where SigmaDw is the domain wall energy. To check if one is in this range is very simple because if one is in this range and starts from a saturated state with no PBC and starts to slowly increase the DMI, as you do, when one reaches Dc the borders will induce the creation of a sudden labyrinth structure. I think you have to compute the energy of your system because the skyrmions will be the true ground state for a range of DMI but your procedure will increase Dc until  the labyrinth becomes favorable. In the range where skyrmions are metastable but is below Dc, then your problem becomes the one of nucleating skyrmions. The energy barrier then is the energy barriers for the creation of skyrmions. Other procedures are more favorable then, as apply currents or so. 

Best regards,
Felipe

--
You received this message because you are subscribed to the Google Groups "mumax2" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mumax2+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mumax2/c7999a6b-2b9e-49a4-9cb2-cf5cd37ea0a9n%40googlegroups.com.

David Wang

unread,
Nov 8, 2023, 1:15:00 PM11/8/23
to mumax2
Dear Felipe,

Thank you very much for your message!

I think what you illustrated in the first half is consitent with the energy barrier mechanism I mentioned. To elaborate on this, suppose initially there is a rectangular stripe domain. Cutting it into several pieces of smaller rectangles (bubbles) would result in larger total perimeters of domain walls, which has lower energy than the initial long stripe state. However, in order to be cut into bubbles, either of the following two possible processes have to happen. Process 1 is: the initial domain wall of the stripe needs to break, which costs extra energy to start because this would shorten the domain wall length temporarily, and then the broken domain walls from both sides of the rectangular stripe grow and connect with each other, forming the cutted rectangles with larger total perimeter; Process 2 is: new domain walls need to nucleate out of the single-domain region inside the stripe, which costs extra energy at first due to local minima of total energy at single domain state in the "state space", and then the new domain walls connect to the initial domain walls of the rectangular stripe, forming cutted rectangles. Both of these two processes requires temporal extra energy to start, resulting in the energy barrier between stripe/labyrinth state and the bubble state, even if bubble state actually has lower energy than labyrinth. Even when the domain wall energy starts to becomes negative when the DMI is large, the transition from single domain to domain walls needs to overcome an energy barrier at first if the DMI is not way too large. Therefore an initial stipe or labyrinth domains do not spontaneously break into bubbles. This is why I said that broken domains would have lower energy than labyrinth but with an energy barrier in the transition.

What I was wondering is indeed as you said in the second half: how to overcome the energy barrier to nucleate bubbles once the sytem is in the labyrinth/stripe state. I agree that applying current is a good way, using the spin torque to nucleate new domain walls. I am wondering if there could be some other ways without electronic transport such as introducing fluctuations either by setting up the temperature parameter or directly introducing magnetization noises into the system, hopefully to form new domain walls out of single domain regions?


Best,
Tianye

aadi

unread,
Mar 14, 2024, 5:50:21 PM3/14/24
to mumax2
Hi, 
Could you explain how you got the stripe or labyrinth domain 
this is my code so far 

Setgridsize(512,512,32)//
SetCellSize(4e-6/512, 4e-6/512, 58e-9/32)// fro 58nm thick

Msat  = 3.76e5
Aex   = 1e-11
Ku1   = 3.5e5
Dind  = 1.07e-3
alpha = 0.2


m = RandomMag()// Random state

B_ext = vector(0, 0, 2e-2)// External magnetic field 200 Oe

relax()
saveas(m,"final mag.ovf")

Thank you for your time and consideration .


Reply all
Reply to author
Forward
0 new messages