magnon.magnons

Classes

MagnonSpectrum

A class to build and diagonalize the Linear Spin Wave Hamiltonian from exchange interactions.

Functions

_single_q_energy_worker(args)

Compute and return sorted real magnon energies at a k-point.

Module Contents

class magnon.magnons.MagnonSpectrum(atoms, interactions, calc=None, supercell=(1, 1, 1), name=None, num_threads=1, **kwargs)

A class to build and diagonalize the Linear Spin Wave Hamiltonian from exchange interactions.

Parameters:
  • atoms (ase.Atoms object) – The Atoms object of the system to which the magnon spectrum pertains.

  • interactions (magnon.interactions.InteractionList object) – The InteractionList object of the exchange interactions to use for the spectrum calculation.

  • num_threads (int) – The number of threads to use for parallel calculations.

  • mag_order_vect (numpy.ndarray, dtype: float) – Wavevector for Q-commensurate spin vector ordering.

  • mag_order_axis (numpy.ndarray, dtype: float) – The rotation axis around which the Q-commensurate spin vector ordering rotations are to occur

  • ham_prefactor (float) – Choice of Hamiltonian prefactor convention.

  • spins_are_unit (bool) – Whether to use the unit spin model, or dimensionful spins.

  • supercell (array-like) – Size of the calculation cell with respect to the primitive cell

  • name (str) – The name of the calculation

u

The u vectors for each site. See magnon.magnons.MagnonSpectrum._generate_uv_vectors().

Type:

numpy.ndarray, dtype: float

v

The v vectors for each site. See magnon.magnons.MagnonSpectrum._generate_uv_vectors().

Type:

numpy.ndarray, dtype: float

S

Spin quantum numbers.

Type:

numpy.ndarray, dtype: float

usm_factors

Unit spin model conversion factors.

Type:

numpy.ndarray, dtype: float

See also

This

_num_threads = 1
interactions
atoms
cell_vectors = None
interaction_matrix = None
calc = None
name = None
supercell = (1, 1, 1)
spin
_build_interaction_matrix()
static _generate_uv_vectors(spin_vectors)

Compute u and v vectors from spin orientation vectors for LSWT calculation

Parameters:

spin_vectors (numpy.ndarray) –

Return type:

(numpy.ndarray, numpy.ndarray)

calculate_eigen_energy(k)

Compute the eigenvalues of the Hamiltonian at wavevector k. The Hamiltonian in the rotated frame approach [1] is built and diagonalized using the treatment for generalized quadratic bosonic Hamiltonians [2].

Parameters:

k (ndarray, shape (3,)) – Wavevector in reciprocal space.

Returns:

hamiltonian_eigs – Eigenvalues of the Bogoliubov-transformed Hamiltonian.

Return type:

ndarray

References

get_band_structure(path)

Gets the magnon bandstructure along a path given by an ASE BandPath object. This is a wrapper for band_structure() which enables handling of k-space paths and bandstructures using ASE objects.

Parameters:

path (ASE.dft.kpoints.BandPath object) – The path along which to compute the bandstructure.

Returns:

An ASE BandStructure object containing the magnon bandstructure.

Return type:

ase.spectrum.band_structure.BandStructure

band_structure(path_kc)

Computes the bands energies for a set of reciprocal space points.

Parameters:

path_kc (array-like) – The reciprocal space path along which to compute the bandstructure, given in Cartesian coordinates.

Returns:

The band energies along the specified path.

Return type:

numpy.ndarray

get_dos(kpts=(10, 10, 10))

Computes the magnon density of states.

Parameters:

kpts (array-like, dtype=int) – The dimensions of the Monkhorst-Pack grid to sample.

Return type:

ase.spectrum.dosdata.RawDOSData object

magnon.magnons._single_q_energy_worker(args)

Compute and return sorted real magnon energies at a k-point.

This is a multiprocessing-friendly worker function for use with MagnonSpectrum. It must be defined at module level to be pickleable.

Parameters:

args (tuple) –

Tuple of (instance, q_c) where:
instanceMagnonSpectrum

Instance of the MagnonSpectrum class.

q_carray_like

k-point in scaled Cartesian coordinates.

Returns:

energies – Sorted real eigenvalues of the magnon Hamiltonian at the given k-point.

Return type:

ndarray

Notes

The k-point is converted to cartesian space (multiplied by 2*pi). Only the real parts of the eigenvalues are returned.