simulation of a paramagnet

149 views
Skip to first unread message

Miroslav Polach

unread,
Feb 26, 2025, 7:50:49 AM2/26/25
to mumax2
Dear collegues,
I am currently working on a project where I aim to simulate a nanoparticle consisting of both a paramagnetic and a ferromagnetic material. I was hoping to use Mumax3 for this purpose; however, I am struggling with defining the parameters for the paramagnetic material.

To simplify the problem, my initial model is as follows: I consider a 2D structure where the left side consists of a ferromagnetic material (magnetite Fe₃O₄), and the right side consists of a paramagnetic material (wüstite FeO).
two regions.png
To simulate this, I attempted the following approach:
----------------------------------------------------------------------------------------------------------------------------------------
Msat = 0.48e6      // Fe3O4 - saturation magnetization (A/m)
Aex = 7e-12           //             - exchange stiffness (J/m)
Kc1 = -13e3           //             - cubic anisotropy (J/m^3)
AnisC1 = vector(1,0,0)                      
AnisC2 = vector(0,1,0)

a0 := 5e-10             // unit cell 0.5 nm
ncell := 128                                

SetGridsize(ncell, ncell, 1)
SetCellsize(a0, a0, 2*a0)

// The paramagnetic region
DefRegion(1, Cuboid(ncell*a0, ncell*a0, 1).transl(ncell*a0/2, 0, 0))  
Msat.SetRegion(1,0)                      
Aex.SetRegion(1,1e-12)                    
Kc1.SetRegion(1,0)    
AnisC1.SetRegion(1, vector(0,0,0))    
AnisC2.SetRegion(1, vector(0,0,0))

m = RandomMagSeed(1)
relax()
save(m)
----------------------------------------------------------------------------------------------------------------------------------------
However, the results do not seem correct, or at least I am unsure if this implementation is sufficient. Additionally, I come from a mathematical background and am still trying to understand some fundamental aspects of modeling paramagnets versus ferromagnets, particularly regarding the applicability of the Landau-Lifshitz-Gilbert (LLG) equation to paramagnetic materials. 
If you have experience in this field, could you please guide me in the right direction? A reference or a link to relevant work would also be greatly appreciated, as I have not found much information on this topic.

Sincerely,
Miroslav

Josh Lauzier

unread,
Feb 28, 2025, 3:14:48 AM2/28/25
to mumax2
Hi,

Typically for micromagnetic simulations, you can treat the paramagnetic material as nonmagnetic/empty space. For an example of this, you can look to the synthetic anti-ferromagnet example in the mumax workshop (in session 4). This structure consists of a (ferromagnetic) FM layer, a (normal metal) NM spacer layer, and another FM layer. The normal metal spacer layer would be paramagnetic, and is simply treated as empty space. For most use cases this should be sufficient, unless you have some particularly exotic effect.

The way you're defining it is mostly fine. Two small changes I would make- set Aex to 0 in the paramagnetic region.  (Interestingly, in previous versions of mumax, having a nonzero aex would not affect the results. Setting M_sat to zero was sufficient It's only in the most recent version; this is likely due to a change made in calculating the exchange between boundaries.)

and also: One word of warning- you should also set m to (0,0,0) in the paramagnetic part explicitly. Otherwise it will show in things like the GUI where you're plotting m. It won't effect the dynamics (since M_sat and aex is 0), but it can be confusing, since it will still show arrows in the GUI and also if you save m to OVF. Alternatively, you can always make sure you're looking at m_full instead (based on your picture, it looks like you're already doing this). 

Instead of setting each parameter of region 1 like that, you can also just call the setgeom() command. It's equivalent, but simpler.

So the script might look something like


Msat = 0.48e6      // Fe3O4 - saturation magnetization (A/m)
Aex = 7e-12           //             - exchange stiffness (J/m)
Kc1 = -13e3           //             - cubic anisotropy (J/m^3)
AnisC1 = vector(1,0,0)                      
AnisC2 = vector(0,1,0)

a0 := 5e-10             // unit cell 0.5 nm
ncell := 128                                

SetGridsize(ncell, ncell, 1)
SetCellsize(a0, a0, 2*a0)

// The paramagnetic region
DefRegion(1, Cuboid(ncell*a0, ncell*a0, 1).transl(ncell*a0/2, 0, 0))  
Msat.SetRegion(1,0)                      
Aex.SetRegion(1,0)                    

Kc1.SetRegion(1,0)    
AnisC1.SetRegion(1, vector(0,0,0))    
AnisC2.SetRegion(1, vector(0,0,0))

m = RandomMagSeed(1)
m.setregion(1,uniform(0,0,0))
// Alternatively, instead of setting up all of region1, one can use setgeom(Cuboid(ncell*a0, ncell*a0, 1).transl(-ncell*a0/2, 0, 0))

relax()
save(m)

Both using regions and using setgeom now give me something that looks like

mumaxhelp4.jpg

Best,
Josh L.

Miroslav Polach

unread,
Feb 28, 2025, 11:08:31 AM2/28/25
to mumax2
Thank you for your help Josh

Dátum: piatok 28. februára 2025, čas: 9:14:48 UTC+1, odosielateľ: Josh Lauzier
Reply all
Reply to author
Forward
0 new messages