Open bowenphys opened 9 months ago
I checked the source codes and found that the atomistic part only support the bulk dmi.
function relax_system()
sim = Sim(mesh, driver="SD", name="skx")
set_mu_s(sim, mu_s_1)
init_m0(sim, m0_fun)
J = 50 * k_B
add_exch(sim, J, name="exch")
add_dmi(sim, 0.5*J, name="dmi")
Hz = 0.2 * J / mu_s_1
add_zeeman(sim, (0,0,Hz))
relax(sim, maxsteps=2000, stopping_dmdt=0.1)
save_vtk(sim, "skx", fields=["exch", "dmi"])
end
A possible solution for the interfacial dmi is to use the micromagnetic code by mapping the parameters from atomistic model to micromagnetic model using A=J/2a and D=D_0^2/a^2.
We will tidy up JuMag code soon and add the interfacial dmi for atomistic part then.
JuMag.cuda_using_double(true)
mesh = CubicMeshGPU(nx=150, ny=50, nz=1, pbc="xy")
function m0_fun(i,j,k, dx, dy, dz) r2 = (i-70)^2 + (j-25)^2 if r2 < 10^2 return (0.01, 0, -1) end return (0,0,1) end
function relax_system() sim = Sim(mesh, driver="SD", name="skx") set_mu_s(sim, mu_s_1) init_m0(sim, m0_fun)
J = 50 k_B add_exch(sim, J, name="exch") add_dmi(sim, 0.5J, name="dmi", type = "bulk")
Hz = 0.2 * J / mu_s_1 add_zeeman(sim, (0,0,Hz))
relax(sim, maxsteps=2000, stopping_dmdt=0.01)
save_vtk(sim, "skx", fields=["exch", "dmi"])
end
relax_system()
Closest candidates are: add_dmi(::JuMag.AtomicSimGPU, ::Real; name) got unsupported keyword argument "type" @ JuMag C:\Users\11302.julia\packages\JuMag\yH1A2\src\atomistic\sim.jl:212 add_dmi(::JuMag.AbstractSim, ::Real; name, type) @ JuMag C:\Users\11302.julia\packages\JuMag\yH1A2\src\add_field.jl:263 add_dmi(::JuMag.AbstractSim, ::Any) got unsupported keyword argument "type" @ JuMag C:\Users\11302.julia\packages\JuMag\yH1A2\src\add_field.jl:297 ...
Stacktrace: [1] kwerr(::@NamedTuple{type::String}, ::Function, ::JuMag.AtomicSimGPU{Float64}, ::Float64) @ Base .\error.jl:165 [2] relax_system() @ Main c:\Users\11302\Desktop\Code\Julia\JuMag\test.jl:24 [3] top-level scope @ c:\Users\11302\Desktop\Code\Julia\JuMag\test.jl:35