Mumax3. Hysteresis loops. Grain size

1,506 views
Skip to first unread message

Одинокий Единорог

unread,
Aug 22, 2022, 3:32:35 AM8/22/22
to mumax2
Hello, Mumax community!

I have the similar question.

We simulated in Mumax3 the hysteresis loop of the permalloy's strip under the applied magnetic field. For this purpose we used ext_makegrains () function based on Voronoi tesselation to define grain-size regions. Our task is to obtain the dependence of the permalloy's coercivity vs. grain size.
The problem is that the hysteresis loop significantly differs from the experimental results for the same dimensions of the permalloy's strip (in the experiment the coercive field is about 5 Oe, but in the micromagnetic simulation it is several orders of magnitude greater).
Also, there is no clear dependence of the coercivity on the grain size.

We will be grateful for your help!
The results obtained are attached to this message.
The dependence of the anisotropy coefficient Kavg on the grain size was taken from the work: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7903595 (formula 12).

The code of our simulation test is below:

start := now()

SetGridsize(384,192, 1)
SetCellsize(2000e-9/384,1000e-9/192, 30e-9)

Msat = 800e3
Aex = 13e-12
alpha = 0.02
Ku1=5e2

anisu=vector(1,0,0)
m=uniform(1,0,0)


// define grains with region number 0-255
grainSize := 14e-9
randomSeed := 1234567

maxRegion := 255
ext_makegrains(grainSize, maxRegion, randomSeed)

// set random anisotropy per region

for i:=0; i<maxRegion; i++{
// random uniaxial anisotropy direction on the unit sphere
//axis := vector(randNorm(), randNorm(), randNorm())
axis := vector(1, 0, 0)
// note: axes are normalized by mumax3
AnisU.SetRegion(i, axis)

// random 10% anisotropy variation
    Aex1 := 1.3e-11
    K1 := 100
    Ku := 500
    L0 := sqrt(Aex1/K1)
    a := (K1/2) * pow((grainSize/L0),2)
    b := sqrt(pow(((K1/2)*pow((grainSize/L0),2)),2) + pow(Ku,2))
    Kavg := a + b
    Ku1.SetRegion(i, Kavg)
}

// reduce exchange coupling between grains by 10%

for i:=0; i<maxRegion; i++{
for j:=i+1; j<maxRegion; j++{
ext_ScaleExchange(i, j, 0.9)

}
}

m = uniform(1, 0, 0)
//relax the magnetization in saturated state
B_ext=vector(0.1,0,0)
relax()

Bmax  := 40.0e-3
Bstep :=  0.1e-3
MinimizerStop = 1e-9
TableAdd(B_ext)


for B:=Bmax; B>=-Bmax; B-=Bstep{
    B_ext = vector(B, 0, 0)

    minimize() // small changes best minimized by minimize()
    tablesave()
   //snapshot(m)

}


for B:=-Bmax; B<=Bmax; B+=Bstep{
    B_ext = vector(B, 0, 0)

    minimize() // small changes best minimized by minimize()
    tablesave()
    //snapshot(m)
}
save(regions)

wall := since(start).Seconds()
print("Total run time: ", wall)
image_2022-08-12_16-45-53.png

Felipe Garcia

unread,
Aug 25, 2022, 12:06:14 PM8/25/22
to mumax2
Hi,

I see your problem as a bit difficult. In your system everything is determined by the dipolar field in the boundaries of the system, which strongly fix the magnetization in the direction paralell to the surface. I would also compare the values of the remanence because it has a clear value in your simulations. Is it compatible with your experiments? Because if that is not the case, then you have another source of discrepancy. If it is, then it is already a good indication.

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/27c43d8c-37f8-4b4b-991b-263e1d458829n%40googlegroups.com.
Message has been deleted

Anastasia Mirage

unread,
Sep 7, 2022, 9:47:47 AM9/7/22
to mumax2
Hello Felipe!

Thank you for responding!
In the FMR experiment, we determined the saturation magnetization for a 30 nm NiFe film to be 689±10 emu/cm3, which is comparable to the value in the script.
As for the dipole field at the boundaries of the magnetic system, is there any way to neglect it, since the MOKE signal was taken from a sample (a piece of silicon wafer) covered with a NiFe film, with a size of several cm by several cm, which is much larger than the calculated area. For example, disable the demagnetizing field using the EnableDemag=false or NoDemagSpins=1 flags (or the setPBC function). Will this method be valid for comparing the hysteresis loop obtained in the Mumax3 micromagnetic package with experiment?

Thank you for your help in advance!

четверг, 25 августа 2022 г. в 19:06:14 UTC+3, pkwgarcias:

Felipe Garcia

unread,
Sep 7, 2022, 12:51:13 PM9/7/22
to mumax2
Hi,

I think it is not a good idea to remove the dipolar field completely because then it is possible to have a magnetization out of plane. One can do PBC but it depends on what is your interest because it will not mimic a 1cmx1cm, which also has borders. Also the aspect ratio of your sample looks closer to 1:1 and you are using a simulation area 2:1 which can also influence the final loop. I think one has to check what the aim is and, again, check if the remanence is different between experiments and simulations. I think this is a question that arises from time to time:  the loops in large permalloy samples but it is difficult to answer.

Best regards,
Felipe


Gaureesh K

unread,
Jun 29, 2023, 8:13:09 AM6/29/23
to mumax2
Hi,
I would like to ask if this issue was resolved.
Isn't the dipolar field term already included as a uniaxial anisotropy term in the effective anisotropy expression that you used (formula 12)
If so, would we be required to disable demag as it is already included?

ss1.png
ss2.png

If not, could someone pls explain why we include the Ku term?
Thanks in advance

Anonymous

unread,
Jun 29, 2023, 8:24:11 AM6/29/23
to mumax2
This was from the paper you mentioned :  https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7903595
However, there they are only talking of the case where the grain size is smaller than exchange length, does that mean no Ku term is needed to model demag when grain size is larger than exchange length?
Regards,
Gaureesh

asif md

unread,
Aug 31, 2023, 1:47:24 PM8/31/23
to mumax2
Hi Fedinan
i am new to use mumax3 for VSM as well as FMR , I run vsm code which is given in example on mumax3 and table had genrated as well, but i dont understand hoe can plot vsm curve from this obtaind table. please help.
thanks in advance 
Reply all
Reply to author
Forward
0 new messages