magnopy.LSWT#

class magnopy.LSWT(spinham, spin_directions)[source]#

Linear Spin Wave theory.

It is created from some spin Hamiltonian and set of direction vectors, that defines the ground state.

Parameters:
spinhamSpinHamiltonian

Spin Hamiltonian.

spin_directions(M, 3) array-like

Directions of spin vectors. Only directions of vectors are used, modulus is ignored. If spin Hamiltonian contains non-magnetic atom, then only the spin directions for the magnetic atoms are expected. The order of spin directions is the same as the order of magnetic atoms in SpinHamiltonian.magnetic_atoms. See Notes for more details.

Attributes:
z(M, 3) numpy.ndarray

Spin directions (directions of local quantization axes).

p(M, 3) numpy.ndarray

Hybridized x and y components of the local coordinate system \(\mathbf{p} = \mathbf{x} + i \mathbf{y}\).

Mint

Number of spins in the unit cell

cell(3, 3) numpy.ndarray

Unit cell. Rows are vectors, columns are cartesian components.

spins(M, ) numpy.ndarray

Spin values of the magnetic centers.

Notes

Let the spin Hamiltonian contain three atoms Cr1, Br, Cr3 in that order. Assume that two atoms are magnetic (Cr1 and Cr3), one atom is not (Br). Then spin_directions is a (2, 3) array with spin_directions[0] being the direction for spin of Cr1 and spin_directions[1] being the direction of spin for Cr3.

Examples

>>> import magnopy
>>> spinham = magnopy.examples.cubic_ferro_nn()
>>> lswt = magnopy.LSWT(spinham=spinham, spin_directions=[[0, 0, 1]])

Methods:

A(k[, relative, units])

Computes part of the grand dynamical matrix.

B(k[, relative, units])

Computes part of the grand dynamical matrix.

E_2([units])

Computes the correction to the ground state energy that arises from the LSWT.

G(k[, relative])

Computes transformation matrix to the new bosonic operators.

GDM(k[, relative, units])

Computes grand dynamical matrix.

G_inv(*args, **kwargs)

This method was removed in v0.2.0 in favor of LSWT.G.

O([units])

Computes coefficient of the one-operator terms.

delta(k[, relative, units])

Computes constant delta term of the diagonalized Hamiltonian.

diagonalize(k[, relative, units])

Diagonalizes the Hamiltonian for the given k point.

omega(k[, relative, units])

Computes magnon's eigenenergies at the given k point.