magnopy.converter22.to_dmi#
- magnopy.converter22.to_dmi(parameter, matrix_form=False)[source]#
Extracts antisymmetric part (DMI) of the full matrix parameter.
\[C_{2,2} \boldsymbol{S}_{\mu} \boldsymbol{J} \boldsymbol{S}_{\nu} = C_{2,2} J_{iso} \boldsymbol{S}_{\mu} \cdot \boldsymbol{S}_{\nu} + C_{2,2} \boldsymbol{S}_{\mu} \boldsymbol{J}_S \boldsymbol{S}_{\nu} + C_{2,2} \boldsymbol{D} \cdot \left( \boldsymbol{S}_{\mu} \times \boldsymbol{S}_{\nu} \right)\]where vector \(\boldsymbol{D}\) is defined as
\[\begin{split}\begin{pmatrix} 0 & D^z & -D^y \\ -D^z & 0 & D^x \\ D^y & -D^x & 0 \\ \end{pmatrix} = \dfrac{\boldsymbol{J} - \boldsymbol{J}^T}{2} = \boldsymbol{J}_A\end{split}\]- Parameters:
- parameter(3, 3) array-like
Full matrix of the exchange parameter (\(\boldsymbol{J}\)).
- matrix_formbool, default False
Whether to return dmi in a matrix form instead of a vector.
- Returns:
- dmi(3,) or (3, 3) numpy.ndarray
Antisymmetric exchange (DMI).
If
matrix_form == False, then returns a vector \(\boldsymbol{D}\).If
matrix_form == True, then returns a matrix \(\boldsymbol{J}_A\).
See also
Examples
>>> from magnopy import converter22 >>> parameter = [[1, 3, 0], [-1, -2, 3], [0, 3, 9]] >>> converter22.to_dmi(parameter) array([0., 0., 2.]) >>> converter22.to_dmi(parameter, matrix_form = True) array([[ 0., 2., 0.], [-2., 0., 0.], [ 0., 0., 0.]])