magnopy.LSWT.A#

method

LSWT.A(k, relative=False, units='meV')[source]#

Computes part of the grand dynamical matrix.

Parameters:
k(3,) array-like

Reciprocal vector

relativebool, default False

If relative=True, then k is interpreted as given relative to the reciprocal unit cell. Otherwise it is interpreted as given in absolute coordinates.

unitsstr, default "meV"

Added in version 0.3.0.

Units of energy. See Units of energy for the full list of supported units.

Returns:
A(M, M) numpy.ndarray

\(A_{\alpha\beta}(\boldsymbol{k})\).

See also

LSWT.B
LSWT.GDM

Notes

Before the diagonalization, the magnon Hamiltonian has the form

\[\begin{split}\mathcal{H} = \dots + \sum_{\boldsymbol{k}, \alpha} \boldsymbol{\mathcal{A}}(\boldsymbol{k})^{\dagger} \begin{pmatrix} \boldsymbol{A}(\boldsymbol{k}) & \boldsymbol{B}^{\dagger}(\boldsymbol{k}) \\ \boldsymbol{B}(\boldsymbol{k}) & \overline{\boldsymbol{A}(-\boldsymbol{k})} \end{pmatrix} \boldsymbol{\mathcal{A}}(\boldsymbol{k})\end{split}\]

where

\[\boldsymbol{\mathcal{A}}(\boldsymbol{k}) = \begin{pmatrix} a_1(\boldsymbol{k}), \dots, a_M(\boldsymbol{k}), a^{\dagger}_1(-\boldsymbol{k}), \dots, a^{\dagger}_M(-\boldsymbol{k}), \end{pmatrix}\]

This function computes the matrix \(\boldsymbol{A}(\boldsymbol{k})\).

Examples

>>> import magnopy
>>> spinham = magnopy.examples.cubic_ferro_nn()
>>> lswt = magnopy.LSWT(spinham=spinham, spin_directions=[[0, 0, 1]])
>>> lswt.A(k=[0, 0, 0.5], relative=True)
array([[1.+0.j]])