Hi Josh Lauzier,
Apology for the delayed response. I have coupled questions with this issue
1.
freelayerthickness undefined: This is the code from the supplementary section provided along with this paper (Mumax3 tutorial second paper, link given)
J. Appl. Phys. 134, 171101 (2023)
I ran the code still the problem persisted with given error in CMD
"F:\mumax3 file\mumax3 simulation file temporary\Spin Qubit Simulation>mumax3 test.txt
//mumax 3.10 windows_amd64 go1.11 (gc)
//CUDA 12080 Quadro RTX 6000(24575MB) cc7.5 , using CC 75 PTX
//(c) Arne Vansteenkiste, Dynamat LAB, Ghent University, Belgium
//This is free software without any warranty. See license.txt
//********************************************************************//
// If you use mumax in any work or publication, //
// we kindly ask you to cite the references in references.bib //
//********************************************************************//
//output directory: test.out/
setgridsize(256,64,3)
setcellsize(1e-9,1e-9,1e-9)
setpbc(4,0,0)
Msat = 580e3
Aex = 15e-12
Dind = 3.0e-3
Ku1 = 0.8e6
AnisU = vector(0,0,1)
alpha = 0.1
//Custom Fields implementation for exchange between the 2 FM layers
cellsize:=1e-9
AFMAex:=-5e-13
Ms:=580e3
prefactorZ := Const( (2 * AFMAex) / (cellsize*cellsize*Ms))
up := Mul(prefactorZ,Mul(Add(Mul(Const(-1),m),Shifted(m,0,0, 2)),Shifted(Const(1),0,0,2)))
down := Mul(prefactorZ,Mul(Add(Mul(Const(-1),m),Shifted(m,0,0,-2)),Shifted(Const(1),0,0,-2)))
Hc :=Add(up,down)
AddFieldTerm(Hc)
freelayerthickness=2e-9
// define 2 layers
defregion(1,layer(2))
defregion(2,layer(0))
setgeom(layer(0).add(layer(2)))
//define initial magnetization
m.setregion(1,neelskyrmion(-1, 1))
m.setregion(2,neelskyrmion(1, -1))
Minimize()
// define constants and set slonczewksi parameters
xi_SOT := -2
AlphaH := 0.15
Pol = alphaH
Lambda = 1
Epsilonprime = alphaH*xi_SOT/2
Fixedlayer = vector(0,-1,0)
// define current
J = vector(0,0,2e11)
autosave(m,1e-10)
tableAutosave(1e-11)
ext_bubblemz = -1
tableAdd(ext_bubblepos)
run(2e-8)
I am using the files to run the code; names are given in the attached screenshot. How can I resolve the problem?
2.
FM thickness not explicitly defined: I ran a code where the FM thickness is not explicitly defined. The objective of the code is to record the stray field at a certain distance(90nm) from the FM(nanomagnet) while the nanomagnet is driven by SOT torque. In this case, I have used torque like equation (
type) and converted it to SOT as per the tutorial provided in the earlier section.
To record the magnetic field at that distance, I defined 45 layers along z axis, placed the 6nm FM at the top 3 layers, and recorded the stray field at the bottom layer. I defined the region where the FM is located. But in this case, I didn't define any free-layer thickness (thickness of the FM). I didn't manage to define, actually.
If I am not wrong, the damping, like torque, is inversely proportional to the FM layer thickness. At the same time stray field magnitude also depends on the volume of nanomagnets.
I want to know how mumax3 considers the thickness where. Does it consider only 6nm (3cells) or wrongly consider 90nm (whole grids)
The code is provided here. Nc is the total number of layers in z axis. is damping like torque, consider the whole 96nm thickness or only the 6nm thickness defined by the variable d. how can I check the effect of the damping, like torque? I would appreciate your help regarding this matter
Na:=64
Nb:=128
l:=2e-9
w:=2e-9
v:=2e-9
d:=6.0e-9
Nc:=ceil(d/v)+45
// CofeB Ms=1.1e6, Aex=1.5e-11, alpha=0.006
//YIG Ms=1.4e5, Aex=3.5e-12, alpha=0.0005
//CoNi Ms=5.8e5, Aex=1.5e-11, alpha=0.01
//Ni Ms=4.8e5, Aex=1.0e-12, alpha=0.01
//FreeLayerThickness=d
setmesh(Na,Nb,Nc,l,w,v,0,0,0)
Ax:=1.5e-11//1.0e-11//1.5e-11//3e-11
alp:=0.01//0.005//0.01//0.01
alpha=alp//NiFe, CoFeB
//h:=d*Nc
rd:=100e-9
ec:=1.1
//GammaLL=(2.1/2.003)*1.76e11
//For FMR
j_pulse := 1e12 // in (T) // high pulse for FMR experiment
thick:=3e-9 //Pt thickness
f1 := 6.80e9
jvar:=j_pulse*sin(2*pi*f1*t)
j = vector(0, 0, j_pulse*sin(2*pi*f1*t))//
//jvar:=j_pulse*exp(-pow(t-5e-12,2)/(2*pow(2e-11,2)))
//j=vector(0,0,j_pulse*exp(-pow(t-5e-12,2)/(2*pow(2e-11,2))))
// j_pulse*exp(-pow(t-5e-12,2)/(2*pow(2e-11,2))))
xi_SOT:= alp//alp//0.01 //1.0 field like torque and damping like torque ratio (bj/aj)
shiftx:=l+0.5*rd-0.5*Na*l
shifty:=w+0.5*rd*ec-0.5*Nb*w
shiftz:=0.5*(Nc*v-d) //(Nc-1)*v//0//0.5*(Nc-2)*v
dip:=10
nano1:=cylinder(rd,d).scale(1,ec,1).transl(shiftx,shifty,shiftz)
setgeom(nano1)/
//saveas(geom, "nanos")
defregion(1,nano1)
defregion(2,nano1.Inverse())
K:=jvar*thick // Sheet current density flowing along x direction
//B_ext=vector(208e-3,mu0*K/2,0) // B in Y direction
th:=0.05*pi
B_ext=vector(208e-3,0,0)
ms:=0.58e6//0.8e5//1.0e6//1.4e6 //Co change from 1.4e6
ku:=3.5e5//1e6//8e5
Msat.setregion(1,ms)
Msat.setregion(2,0)
Ku1.setregion(1, ku)
Ku1.setregion(2, 0)
anisU.setregion(1, vector(0, 0, 1))
save(anisU)
Aex.setregion(1, Ax)
m.setregion(1, uniform(0.1,0.14,0.99))
relax()
//Temp=300
dx1:=ceil(0.5*rd/l)//+dip/2//Na/2//256//Na/2 //;floor(rd*ec/(2*w))
dy1:=ceil(0.5*rd*ec/w)//+2 ///0.5*rd/w+(200e-9)/w-1 //2*floor(rd/(2*w))+52
dz1:=0
for l1:=dz1;l1<dz1+1;l1++ {
for j1 := dx1; j1 < dx1+1; j1++ {
for k1 := dy1; k1 < dy1+1; k1++ {
TableAdd(Crop(B_demag.Comp(0), j1, j1+1, k1, k1+1, l1, l1+1))
TableAdd(Crop(B_demag.Comp(1), j1, j1+1, k1, k1+1, l1, l1+1))
TableAdd(Crop(B_demag.Comp(2), j1, j1+1, k1, k1+1, l1, l1+1))
}
}
}
fixedlayer = vector(0,1, 0)
alphaH:= 0.55 //beta W
pol = alphaH
lambda=1
epsilonprime= xi_SOT*alphaH/2
autosave(B_demag,5e-12)
tableautosave(5e-12)
run(20e-9)
save(m)