magnopy.converter22.to_iso#

magnopy.converter22.to_iso(parameter, matrix_form=False)[source]#

Extracts isotropic part 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 \(J_{iso}\) is defined as

\[J_{iso} = \dfrac{tr(\boldsymbol{J})}{3}\]

This term can be written in the matrix form as

\[\begin{split}C_{2,2} J_{iso} \boldsymbol{S}_{\mu} \cdot \boldsymbol{S}_{\nu} &= C_{2,2} \boldsymbol{S}_{\mu} \boldsymbol{J}_{iso} \boldsymbol{S}_{\nu} \\ \boldsymbol{J}_{iso} &= \begin{pmatrix} J_{iso} & 0 & 0 \\ 0 & J_{iso} & 0 \\ 0 & 0 & J_{iso} \\ \end{pmatrix}\end{split}\]
Parameters:
parameter(3, 3) array-like

Full matrix of the exchange parameter (\(\boldsymbol{J}\)).

matrix_formbool, default False

Whether to return isotropic part of the matrix instead of isotropic parameter.

Returns:
isofloat or (3, 3) numpy.ndarray

Isotropic parameter.

  • If matrix_form == False, then returns a number \(J_{iso}\).

  • If matrix_form == True, then returns a matrix \(\boldsymbol{J}_{iso}\).

Examples

>>> from magnopy import converter22
>>> matrix = [[1, 3, 4], [-1, -2, 3], [4, 0, 10]]
>>> converter22.to_iso(matrix)
3.0
>>> converter22.to_iso(matrix, matrix_form=True)
array([[3., 0., 0.],
       [0., 3., 0.],
       [0., 0., 3.]])