Dear all,
I am currently working on a simulation of magnetization of a coreshell nanoparticle. That means the core of a cubic geometry is antiferromagnetic and the shell is ferromagnetic material. Now, I am trying to simulate this in mumax+. I hope my code (below "...===...") explains my idea, however I am not sure whether it works as I would like.
Any suggestions are appreciated. Thank you.
Sincerely,
Miroslav Polách
=====================================================================
import numpy as np
from mumaxplus import Antiferromagnet, Grid, World
from mumaxplus.util import plot_field
# cell size
length, width, thickness = 3e-9, 3e-9, 3e-9
world = World(cellsize=(length, width, thickness))
# number of cells
n=8
nx, ny, nz = n, n, n
grid = Grid((nx, ny, nz))
# define "shell" as region 1
regions = np.zeros(grid.shape)
layers = [0, 1, -1, -2]
regions[:, :, layers] = 1
regions[:, layers, :] = 1
regions[layers, :, :] = 1
# magnet envirnment
np.random.seed(1984)
AFM = Antiferromagnet(world, grid, regions=regions, name="coreshell")
# material parameters - Wustite FeO
AFM.afmex_cell.set_in_region = (0, 2.7e-12)
AFM.afmex_nn.set_in_region = (0, -5.2e-12)
# material parameters - Magnetite Fe3O4
AFM.sub1.msat.set_in_region = (1, 0.48e6)
AFM.sub1.aex.set_in_region = (1, 7e-12)
AFM.sub1.kc1.set_in_region = (1, -13e3)
AFM.sub1.anisC1.set_in_region = (1, (1,0,0))
AFM.sub1.anisC2.set_in_region = (1, (0,1,0))
AFM.sub1.alpha.set_in_region = (1, 0.03)
AFM.sub2.msat.set_in_region = (1, 0.48e6)
AFM.sub2.aex.set_in_region = (1, 7e-12)
AFM.sub2.kc1.set_in_region = (1, -13e3)
AFM.sub2.anisC1.set_in_region = (1, (1,0,0))
AFM.sub2.anisC2.set_in_region = (1, (0,1,0))
AFM.sub2.alpha.set_in_region = (1, 0.03)
plot_field(AFM.full_magnetization, arrow_size=1, show=True, layer=n//2, title=False)
AFM.minimize(tol=1e-9, nsamples=20)
plot_field(AFM.full_magnetization, arrow_size=1, show=True, layer=n//2, title=False, out_of_plane_axis='z')
plot_field(AFM.full_magnetization, arrow_size=1, show=True, layer=n//2, title=False, out_of_plane_axis='x')
plot_field(AFM.full_magnetization, arrow_size=1, show=True, layer=n//2, title=False, out_of_plane_axis='y')