Dear all,
I want to observe minimized enegy state for specific initial magnetization configuration in a specific structure (the picture is attached herewith). Even after setting proper grid size and cell size I am getting above mentioned error.
The code is geven below. Kindly help me in this matter.
Code:
// The exchange length lex = {Aex/ (0.5*mu0*Msat^2)}^0.5
// In this model lex = 7.58 nm approx
// We are considering cell dimension 0.5nm X 0.5nm X 3nm
// Define gridsize & cellsize
SetGridSize(256, 256, 1)
SetCellSize(128e-09/256, 128e-09/256, 3e-09/1)
// Setting the key-value
key := 000
//Define geometry
edgesmooth = 10
L := 50e-09
W := 10e-09
struc1 := cuboid(L,W,3e-09).transl(L/2,0,0)
struc2 := cuboid(L,W,3e-09).transl(-L/2,-W/2,0).rotz(pi/3)
struc3 := cuboid(L,W,3e-09).transl(-L/2,W/2,0).rotz(-pi/3)
main_struc := struc1.add(struc2).add(struc3)
setgeom(main_struc)
//Define regions
defregion(1,struc1)
defregion(2,struc2)
defregion(3,struc3)
save(regions)
//Define Material parameters for Leg#1
Msat.setregion(1,800e3) // Saturation Magnetization in A/m
Ku1.setregion(1,1e05) // 1st order uniaxial anisotropy constant in J/m^3
Aex.setregion(1,1.3e-11) // Exchange stiffness in J/m^3
alpha.setregion(1,0.02) // Landau-Lifshitz damping constant
anisU.setregion(1,vector(1,0,0))
Define Material parameters for Leg#2
Msat.setregion(2,800e3) // Saturation Magnetization in A/m
Ku1.setregion(2,1e05) // 1st order uniaxial anisotropy constant in J/m^3
Aex.setregion(2,1.3e-11) // Exchange stiffness in J/m^3
alpha.setregion(2,0.02) // Landau-Lifshitz damping constant
anisU.setregion(2,vector(1,0,0))
Define Material parameter for Leg#3
Msat.setregion(3,800e3) // Saturation Magnetization in A/m
Ku1.setregion(3,1e05) // 1st order uniaxial anisotropy constant in J/m^3
Aex.setregion(3,1.3e-11) // Exchange stiffness in J/m^3
alpha.setregion(3,0.02) // Landau-Lifshitz damping constant
anisU.setregion(3,vector(1,0,0))
//Define Initial Reduced Magnetization
m1 := uniform(1,0,0)
m2 := uniform(cos((-2*pi)/3),sin((-2*pi)/3),0)
m3 := uniform(cos((2*pi)/3),sin((2*pi)/3),0)
// 0 is equivalent to -, towards vertex
// 1 is equivalent to +, away from the vertex
if key == 000 {
m.setregion(1,-m1)
m.setregion(2,-m2)
m.setregion(3,-m3)
}
else if key == 001 {
m.setregion(1,-m1)
m.setregion(2,-m2)
m.setregion(3,m3)
}
else if key == 010 {
m.setregion(1,-m1)
m.setregion(2,-m2)
m.setregion(3,-m3)
}
else if key == 011 {
m.setregion(1,-m1)
m.setregion(2,m2)
m.setregion(3,m3)
}
else if key == 100 {
m.setregion(1,m1)
m.setregion(2,-m2)
m.setregion(3,-m3)
}
else if key == 101 {
m.setregion(1,m1)
m.setregion(2,-m2)
m.setregion(3,m3)
}
else if key == 110 {
m.setregion(1,m1)
m.setregion(2,m2)
m.setregion(3,-m3)
}
else key == 111 {
m.setregion(1,m1)
m.setregion(2,m2)
m.setregion(3,m3)
}
relax()
saveas(m,"m_<k>",key)
