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”) or discretisedfield.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

  1. Defining DMI energy term using a scalar.

>>> import micromagneticmodel as mm
...
>>> dmi = mm.DMI(D=1e-3, crystalclass='T')
  1. Defining DMI energy term using a dictionary.

>>> D = {'region1': 1e-3, 'region2': 5e-3}
>>> dmi = mm.DMI(D=D, crystalclass='Cnv_z')
  1. 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')
  1. 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.