magnopy.converter422.from_biquadratic#

magnopy.converter422.from_biquadratic(B)[source]#

Computes tensor form of the biquadratic exchange parameter.

\[C_{4,2,2} B \left( \boldsymbol{S}_{\mu} \cdot \boldsymbol{S}_{\nu} \right)^2 = C_{4,2,2} \sum_{i,j,u,v} J_B^{ijuv} S_{\mu}^i S_{\mu}^j S_{\nu}^u S_{\nu}^v\]

where tensor \(\boldsymbol{J}_B\) is defined as

  • \(J_B^{ijuv} = B\) if \((ijuv)\) is one of

    \[\begin{split}\begin{matrix} (xxxx), & (xyxy), & (xzxz), \\ (yxyx), & (yyyy), & (yzyz), \\ (zxzx), & (zyzy), & (yyyy) \end{matrix}\end{split}\]
  • \(J_B^{ijuv} = 0\) otherwise.

Parameters:
Bfloat

Biquadratic exchange parameter.

Returns:
parameter(3, 3, 3, 3) numpy.ndarray

Tensor form of the biquadratic exchange parameter.

See also

to_biquadratic

Examples

>>> from magnopy import converter422
>>> parameter = converter422.from_biquadratic(B=1)
>>> parameter.shape
(3, 3, 3, 3)
>>> parameter
array([[[[1., 0., 0.],
         [0., 0., 0.],
         [0., 0., 0.]],

        [[0., 1., 0.],
         [0., 0., 0.],
         [0., 0., 0.]],

        [[0., 0., 1.],
         [0., 0., 0.],
         [0., 0., 0.]]],


       [[[0., 0., 0.],
         [1., 0., 0.],
         [0., 0., 0.]],

        [[0., 0., 0.],
         [0., 1., 0.],
         [0., 0., 0.]],

        [[0., 0., 0.],
         [0., 0., 1.],
         [0., 0., 0.]]],


       [[[0., 0., 0.],
         [0., 0., 0.],
         [1., 0., 0.]],

        [[0., 0., 0.],
         [0., 0., 0.],
         [0., 1., 0.]],

        [[0., 0., 0.],
         [0., 0., 0.],
         [0., 0., 1.]]]])