Can we simulated noncollinear frustrated ferromagnet in mumax3?

356 views
Skip to first unread message

Kacho Imtiyaz Ali Khan

unread,
Apr 5, 2021, 8:07:36 AM4/5/21
to mumax2
Dear all,
In literature  [Adv. Mater. 2017, 1701144], frustrated ferromagnet (Fe3Sn2) was simulated using 3D object oriented micromagnetic framework (OOMMF).
I am wondering, can we also simulate noncollinear frustrated ferromagnet (Fe3Sn2) in mumax3 and how much it is correct?


Thanks in advance

Regards,
Kacho Imtiyaz Ali Khan
(Research scholar)
Department of Physics, IIT Delhi 110016.

Maxwel G. Monteiro Junior

unread,
Apr 5, 2021, 5:06:13 PM4/5/21
to mumax2
Dear Kacho,

It seems from the last section of the article their procedure for simulation was:

Set exchange stiffness and saturation parameters for the system based on both models and experiment
Set a vector for anisotropy that has two components: one in the perpendicular direction given by Ku_perp and one simply given by Ku that is at an angle with the c-axis (this angle depends on the temperature according to their proposed model).
Relax the system at 0 temperature but assuming that the parameters at their respective value @300K are going to lead the system to the proper equilibrium at that temperature.

This is a pretty straightforward procedure to do on mumax, which you can do with the stock functions available If I understood their description correctly. For the anisotropy just follow the example that defines it on mumax (https://mumax.github.io/examples.html#example7) but instead of a single anisotropy axis with a single constant, define one perpendicular to the ab plane, and another one at the relevant angle(Temperature) to the c-axis, then set anisU as the vector sum of both components multiplied by their proper constants.

About the correctness, I quickly calculated the exchange length for the parameters they defined and it actually seems that they used a larger cell size than their proposed exchange length (of ~8nm, they used a cell size of 10x10x10nm³). I'd say because they used a very high value of damping and simulated very close to equilibrium conditions they ended up not deviating so much from the expected results, but do be careful about setting this up (the care should be the same for both OOMMF and mumax though).

Regards,
Max

Kacho Imtiyaz Ali Khan

unread,
Apr 6, 2021, 2:49:38 AM4/6/21
to mumax2
Thank you Max,
On your valuable suggestion, I tried to simulate the system for 300K, so I am only using the anisotropy const related to 300K (along the c-axis) and got some consistent results for
Ku1 = 0.19e6
anisU = vector(0,0,1)

Still, I have some doubts:
1) when we use the "relax" command to minimize the energy of the system in mumax3, i found that, relax command disables the precession term of LLG due to which the thermal effect is completely removed during relaxation. I want to know whether I am getting the correct results or not?

2) I found in the literature [Nature Communications volume 8, Article number: 1717 (2017)], frustrated ferromagnets are simulated with the help of J1-J2-J3 classical Heisenberg model,
I want to how close is our simulation to this model?






Maxwel G. Monteiro Junior

unread,
Apr 6, 2021, 12:39:31 PM4/6/21
to mumax2
Dear Kacho, regarding your questions:

1) Neglecting the precession term is not strictly the same as removing thermal effects. The first term in the LLG equation (that represents precession around the effective field due to the magnetization itself and external fields) already does not consider thermal fluctuations if you do not specifically add the thermal field (see sec. III F of the mumax paper https://aip.scitation.org/doi/pdf/10.1063/1.4899186). Note also that mumax utilizes the Landau-Lifshitz (i.e explicit) form of the LLG equation (eq. (2) of the same paper). This means that neglecting the field term makes the system go straight into alignment to the effective field as per the second term of the explicit form, and it does lead to very small residual torques meaning the system is at least approaching equilibrium. There is of course the possibility that your system stops at a particularly flat region of phase space or at a saddle point, but because the first term does not necessarily represent fluctuations but precession around the effective field, it might not help that much to keep it turned on looking for the energy minimum. However, any doubts about these properties can still be tested directly by using run() instead of relax() to simulate an approach to equilibrium using the full equation, just use a long time (e.g run(50e-9)) and see if you can match the results from relax() by that procedure. Note that a "long time" is relative to your particular system of course and should be particular to each setup. Finally, if for any reason you suspect it does take fluctuations for the system to reach a certain state that you are looking for, you can always add a thermal field and consider expected values from a series of simulations to be your final state.

2) To properly evaluate the J1-J2-J3 model in comparison to full micromagnetics would take a bit more than just looking at their model. What I think is safe to say however is that from looking at that paper, the authors have built a fully atomistic model for a hypothetical square lattice and this can be extended immediately only to other atomic lattices through some extra work. There are some works in literature comparing the classical Heisenberg model to the micromagnetic one and even multiscale models binding them together (see e.g https://journals.aps.org/prb/abstract/10.1103/PhysRevB.77.224428), but in general you should be able to reproduce systems like the one the original post proposes using micromagnetics, as long as using the correct parameters and assumptions (not too strong inhomogeneities in the neighboring cell angles for instance) derived from first principles and/or experiments.

Regards,
Max

jpla...@rams.colostate.edu

unread,
Apr 6, 2021, 5:22:12 PM4/6/21
to mumax2
Hello,

A minor clarification- I believe Mumax also explicitly disables thermal fluctuations when using relax() or minimize() (even if you have a finite temperature set). It doesn't just neglect precession. If you believe thermal fluctuations are important, you will want to use run()

Maxwel G. Monteiro Junior

unread,
Apr 6, 2021, 7:00:47 PM4/6/21
to mumax2
This is true, mumax automatically disables the thermal field for both relax() and minimize(), thank you for clarifying!

Regards,
Max
Reply all
Reply to author
Forward
0 new messages