About α(Landau-Lifshitz damping constan) and Relax()

42 views
Skip to first unread message

Leonard Zheng

unread,
Jul 6, 2024, 9:21:00 AMJul 6
to mumax2
Dear all:
I'm doing experiments with Skyrmion size. I have some questions about the effect of α on result, and Relax(): 
1, In my view, alpha will affect the speed of convergence, the larger alpha, the faster the convergence speed. Is this correct, and if so, how can I observe this phenomenon with MuMax3?
2, When using Relax(), is it still based on the LLG equation? 
3, I want to know the magnetic field and energy changes between the initial state and the end Relax(), but when I run the following script, I can't see the details of the evolution of the magnetic field.

Any response will help me a lot on learning MuMax3 and Skyrmion, thanks in advance.
1.txt

Josh Lauzier

unread,
Jul 6, 2024, 4:56:04 PMJul 6
to mumax2
Hi,

1) Using a higher alpha will indeed affect the convergence when using run(). A common trick is to use a large alpha to damp out the transitory behavior faster. It won't affect relax(), because relax() disables the precession term entirely.

2) Relax still solves LLG, but without the precession term (the one with alpha). Relax should be used when you're looking to get the system to the ground state, not if you're interested in the dynamics. By not having to solve this, it can be much faster than run(). With precession disabled, the effective field points towards decreasing energy, and you can thus minimize the energy by solving LLG. 

3) You can save the magnetic field and energy before and after relax(). There isn't a way to save things during relax, as it's not really meant to be a dynamic solver. However, you can recreate the effects of relax() while using Runwhile() instead, and setting the appropriate parameters (Bogacki Shampine solver, disable precession, and setting the appropriate stop conditions, etc). Just be a bit careful in how you interpret the results for intermediate stages. If you're interested in the intermediate stages, what you probably actually want is run() instead of relax(). You can save the quantities you're interested in using save() or saveas(). For instance, 'saveas(B_demag, "B_demag_initial")'.

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