Skip to content

Commit

Permalink
Merge pull request #88 from ubermag/improved-zhang-li-support
Browse files Browse the repository at this point in the history
Improved zhang li support
  • Loading branch information
lang-m authored Jul 23, 2024
2 parents 545fd95 + 8c4fba8 commit 5fe74f5
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 11 deletions.
35 changes: 28 additions & 7 deletions mumax3c/scripts/driver.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import numbers

import discretisedfield as df
import micromagneticmodel as mm
import numpy as np
Expand Down Expand Up @@ -56,16 +58,35 @@ def driver_script(driver, system, compute=None, ovf_format="bin4", **kwargs):

if system.dynamics.get(type=mm.ZhangLi):
(zh_li_term,) = system.dynamics.get(type=mm.ZhangLi)
u = (
zh_li_term.u
if isinstance(zh_li_term.u, df.Field)
else df.Field(
if isinstance(zh_li_term.u, df.Field) and zh_li_term.u.nvdim == 3:
u = zh_li_term.u
elif isinstance(zh_li_term.u, df.Field) and zh_li_term.u.nvdim == 1:
zero_field = df.Field(
mesh=system.m.mesh,
nvdim=1,
value=0.0,
)
u = zh_li_term.u << zero_field << zero_field
elif isinstance(zh_li_term.u, numbers.Real):
u = df.Field(
mesh=system.m.mesh,
nvdim=3,
value=(1.0, 0.0, 0.0),
norm=zh_li_term.u,
value=(zh_li_term.u, 0.0, 0.0),
)
)
elif isinstance(zh_li_term.u, dict):
if isinstance(list(zh_li_term.u.values())[0], numbers.Real):
u_values = {
key: (value, 0.0, 0.0) for key, value in zh_li_term.u.items()
}
else:
u_values = zh_li_term.u
u = df.Field(
mesh=system.m.mesh,
nvdim=3,
value=u_values,
)
else: # array_like
u = df.Field(mesh=system.m.mesh, nvdim=3, value=zh_li_term.u)

mu_B = mm.consts.e * mm.consts.hbar / (2.0 * mm.consts.me)

Expand Down
6 changes: 2 additions & 4 deletions mumax3c/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
"TestDamping.test_field",
"TestDynamics.test_field_field",
"TestSlonczewski.test_field_values",
"TestZhangLi.test_field_scalar",
"TestZhangLi.test_time_tcl_scalar_u",
"TestUniaxialAnisotropy.test_field_vector",
"TestUniaxialAnisotropy.test_scalar_field",
"TestUniaxialAnisotropy.test_field_field",
Expand All @@ -54,10 +54,8 @@
"TestSlonczewski.test_single_values",
"TestSlonczewski.test_single_values_finite_temperature",
"TestSlonczewski.test_dict_values",
"TestZhangLi.test_dict_scalar",
"TestZhangLi.test_time_scalar_scalar",
"TestZhangLi.test_time_func_scalar_u",
"test_multiple_drives_compute",
"TestZhangLi.test_scalar_scalar",
"TestPrecession.test_scalar",
"TestDMI.test_scalar",
"TestDMI.test_dict",
Expand Down

0 comments on commit 5fe74f5

Please sign in to comment.