Co_EBID_Ms := 900e3 Co_EBID_Aex := 1.0e-11 Co_EBID_alpha := 0.5 NW_diam := 50e-9 Nw_sep := 15e-9 Msat = Co_EBID_Ms Aex = Co_EBID_Aex alpha = Co_EBID_alpha tableadd(Edens_demag) tableadd(Edens_exch) tableadd(Edens_total) Nx := 128 Ny := 128 Nz := 192 Csize := 1.25e-9 Xsize := Nx * Csize Ysize := Ny * Csize Zsize := Nz * Csize SetGridSize(Nx, Ny, Nz) SetCellSize(Csize, Csize, Csize) edgesmooth = 8 Sph1 := Ellipsoid(NW_diam, NW_diam, NW_diam).transl(-Nw_sep, 0, -NW_diam/2-Zsize/2) NW1_Ori := Cylinder(NW_diam, Zsize-NW_diam/2).transl(-Nw_sep, 0, -NW_diam/4-Zsize) NW1_Ori = NW1_Ori.add(Sph1) Sph2 := Ellipsoid(NW_diam, NW_diam, NW_diam).transl(Nw_sep, 0, -NW_diam/2-Zsize/2) NW2_Ori := Cylinder(NW_diam, Zsize-NW_diam/2).transl(Nw_sep, 0, -NW_diam/4-Zsize) NW2_Ori = NW2_Ori.add(Sph2) Out_Torque := 1e-4 setsolver(3) maxErr = 1e-7 Zcell_ini := 8 for Zcell := Zcell_ini; Zcell <= Nz; Zcell += 4 { if Zcell == Zcell_ini { setgeom(NW1_Ori.transl(0, 0, 4*Csize)) defRegion(1, NW1_Ori.transl(0, 0, 4*Csize)) m.setRegion(1, RandomMag()) RunWhile(maxTorque >= Out_Torque) save(m) save(B_demag) tablesave() setgeom(NW1_Ori.transl(0, 0, 4*Csize).add(NW2_Ori.transl(0, 0, 4*Csize))) defRegion(2, NW2_Ori.transl(0, 0, 4*Csize)) m.setRegion(2, RandomMag()) RunWhile(maxTorque >= Out_Torque) save(m) save(B_demag) tablesave() } else { NW1_new := NW1_Ori.transl(0, 0, Zcell*Csize) NWs := NW1_Ori.transl(0, 0, Zcell*Csize).add(NW2_Ori.transl(0, 0, (Zcell-4)*Csize)) setgeom(NWs) New_Mat1 := NW1_new.sub(NWs) defRegion(3, New_Mat1) m.setRegion(3, RandomMag()) RunWhile(maxTorque >= Out_Torque) save(m) save(B_demag) tablesave() NW2_new := NW2_Ori.transl(0, 0, Zcell*Csize) NWs = NW1_Ori.transl(0, 0, Zcell*Csize).add(NW2_Ori.transl(0, 0, Zcell*Csize)) setgeom(NWs) New_Mat2 := NW2_new.sub(NWs) defRegion(4, New_Mat2) m.setRegion(4, RandomMag()) RunWhile(maxTorque >= Out_Torque) save(m) save(B_demag) tablesave() } }