DmiTensor#
- class DmiTensor#
Bases:
object
Contains the DMI parameters of a ferromagnet.
In mumax⁺, the Dzyaloshinskii-Moriya interaction is defined by the energy density
\[\varepsilon_{\text{DMI}} = \frac{1}{2} D_{ijk} \left[ m_j \partial_i m_k - m_k \partial_i m_j \right]\]with summation indices running over \(x\), \(y\), and \(z\). The DMI strengths and chiral properties are contained in the dmi tensor \(D_{ijk}\). This tensor is antisymmetric in it’s magnetic indices (\(D_{ijk} = - D_{ikj}\)) and hence can be fully described by only 9 elements.
DmiTensor()
has 9 Parameter properties:xxy
,xxz
,xyz
,yxy
,yxz
,yyz
,zxy
,zxz
, andzyz
. These 9 parameters fully define the dmi tensor of a ferromagnet. The parameters can be set separately, or can be set through one of the following methods:Neumann boundary conditions are determined by
\[2 A \, n_i\partial_i\mathbf{m} = \mathbf{\Gamma} ,\]where \(A\) is the exchange constant and
\[\Gamma_k = m_j n_i D_{ijk}\]with \(n_i\) being the component of the surface normal in the \(i\) th direction.
Examples
>>> world = World(cellsize=(1e-9,1e-9,1e-9)) >>> magnet = Ferromagnet(world, Grid((64,64,1))) >>> magnet.dmi_tensor.xxz = 3e-3 >>> magnet.dmi_tensor.yyz = 3e-3
>>> world = World(cellsize=(1e-9,1e-9,1e-9)) >>> magnet = Ferromagnet(world, Grid((64,64,1))) >>> magnet.dmi_tensor.set_interfacial_dmi(3e-3)
See also
Ferromagnet.dmi_tensor
,Ferromagnet.dmi_field
,Ferromagnet.dmi_energy
,Ferromagnet.dmi_energy_density
- __init__(impl)#
Create a DmiTensor from a cpp DmiTensor instance.
Warning
The end user should not create DmiTensor instances. Each Ferromagnet already has a DmiTensor as an attribute which can be used to set the DMI parameters. See
Ferromagnet.dmi_tensor
.- Parameters:
impl (_mumaxpluscpp.DmiTensor)
- make_zero()#
Set all DMI parameters to zero.
- set_interfacial_dmi(value)#
Set interfacial DMI parameters for an interface in the xy-plane.
Using this function is equivalent to:
>>> dmi_tensor.make_zero() >>> dmi_tensor.xxz = value >>> dmi_tensor.yyz = value
- Parameters:
value – The interfacial DMI strength. This value is used to set individual DMI parameters of the DMI tensor. The value can be anything which can be used in
Parameter.set()
.
- set_bulk_dmi(value)#
Set bulk DMI parameters.
Using this method is equivalent to:
>>> dmi_tensor.make_zero() >>> dmi_tensor.xyz = value >>> dmi_tensor.yxz = -value >>> dmi_tensor.zxy = value
- Parameters:
value – The bulk DMI strength. This value is used to set individual DMI parameters of the DMI tensor. The value can be anything which can be used in
Parameter.set()
.
- property xxy: Parameter#
Dzyaloshinskii-Moriya interaction strength parameter D_xxy (J/m²).
- Returns:
DMI strength parameter D_xxy
- Return type:
- property xyz: Parameter#
Dzyaloshinskii-Moriya interaction strength parameter D_xyz (J/m²).
- Returns:
DMI strength parameter D_xyz
- Return type:
- property xxz: Parameter#
Dzyaloshinskii-Moriya interaction strength parameter D_xxz (J/m²).
- Return type:
- property yxy: Parameter#
Dzyaloshinskii-Moriya interaction strength parameter D_yxy (J/m²).
- Return type:
- property yyz: Parameter#
Dzyaloshinskii-Moriya interaction strength parameter D_yyz (J/m²).
- Return type:
- property yxz: Parameter#
Dzyaloshinskii-Moriya interaction strength parameter D_yxz (J/m²).
- Return type:
- property zxy: Parameter#
Dzyaloshinskii-Moriya interaction strength parameter D_zxy (J/m²).
- Return type: