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, thenkis 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})\).
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]])