magnopy.LSWT#

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

Linear Spin Wave theory.

It is created from some spin Hamitlonian and set of direction vectors, that define the orientation of spins.

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 spinham.atoms.spins.

Attributes:
z(M, 3) numpy.ndarray

Spin directions.

p(M, 3) numpy.ndarray

Hybridized x and y components of the local coordinate system.

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.

Notes

If spin Hamiltonian contains three atoms Cr1, Br, Cr3 in that order. Assume that two atoms are magnetic (Cr1 and Cr2), 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 Cr2.

Examples

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

Methods:

A(k[, relative])

Part of the Grand dynamical matrix.

B(k[, relative])

Part of the Grand dynamical matrix.

GDM(k[, relative])

Grand dynamical matrix.

G_inv(k[, relative])

Inverse of the transformation matrix to the new bosonic operators.

delta(k[, relative])

Constant energy term of the diagonalized Hamiltonian.

diagonalize(k[, relative])

Diagonalize the Hamiltonian for the given k point and return all possible quantities at once.

omega(k[, relative])

Properties:

E_2

Correction to the ground state energy that arises from the LSWT.

O

Coefficient before the one-operator terms.