DMI#
- class micromagneticmodel.DMI(**kwargs)#
Dzyaloshinskii-Moriya energy term.
\[w^\text{T(O)} = D \mathbf{m} \cdot (\nabla \times \mathbf{m})\]\[w_x^\text{Cnv} = D ( \mathbf{m} \cdot \nabla m_{x} - m_{x} \nabla \cdot \mathbf{m} )\]\[w_y^\text{Cnv} = D ( \mathbf{m} \cdot \nabla m_{y} - m_{y} \nabla \cdot \mathbf{m} )\]\[w_z^\text{Cnv} = D ( \mathbf{m} \cdot \nabla m_{z} - m_{z} \nabla \cdot \mathbf{m} )\]\[w_x^\text{D2d} = D \mathbf{m} \cdot \left( \frac{\partial \mathbf{m}}{\partial y} \times \hat{y} - \frac{\partial \mathbf{m}}{\partial z} \times \hat{z} \right)\]\[w_y^\text{D2d} = D \mathbf{m} \cdot \left( \frac{\partial \mathbf{m}}{\partial z} \times \hat{z} - \frac{\partial \mathbf{m}}{\partial x} \times \hat{x} \right)\]\[w_z^\text{D2d} = D \mathbf{m} \cdot \left( \frac{\partial \mathbf{m}}{\partial x} \times \hat{x} - \frac{\partial \mathbf{m}}{\partial y} \times \hat{y} \right)\]- Parameters:
D (numbers.Real, dict, discretisedfield.Field) –
If a single unsigned value
numbers.Real
is passed, a spatially constant parameter is defined. For a spatially varying parameter, either a dictionary, e.g.D={'region1': 1e-3, 'region2': 5e-3}
(if the parameter is defined “per region”) ordiscretisedfield.Field
is passed.Note: Initialisation with
discretisedfield.Field
is currently incompatible with OOMMF.crystalclass (str) – One of the following crystalographic classes is allowed:
'Cnv_x'
,'Cnv_y
,Cnv_z
,'T'
,'O'
,D2d_x
,D2d_y
, or'D2d_z'
. Please note that this argument is case-sensitive.
Examples
Defining DMI energy term using a scalar.
>>> import micromagneticmodel as mm ... >>> dmi = mm.DMI(D=1e-3, crystalclass='T')
Defining DMI energy term using a dictionary.
>>> D = {'region1': 1e-3, 'region2': 5e-3} >>> dmi = mm.DMI(D=D, crystalclass='Cnv_z')
Defining the DMI energy term using
discretisedfield.Field
.
>>> import discretisedfield as df ... >>> region = df.Region(p1=(0, 0, 0), p2=(5e-9, 5e-9, 5e-9)) >>> mesh = df.Mesh(region=region, n=(5, 5, 5)) >>> D = df.Field(mesh, nvdim=1, value=5.7e-3) >>> dmi = mm.DMI(D=D, crystalclass='D2d')
An attempt to define the DMI energy term using a wrong value.
>>> dmi = mm.DMI(D=(1, 0, 0), crystalclass='T') # vector value Traceback (most recent call last): ... TypeError: ...
Methods
__add__
Binary
+
operator.__dir__
Default dir() implementation.
__eq__
Relational operator
==
.__iter__
Iterator.
__repr__
Representation string.
density
effective_field
energy
Properties
D
Descriptor allowing setting attributes with a value described as
descriptor
or a dictionary.crystalclass
Descriptor allowing setting attributes only with a subset of a predefined set.
name
Name.