Magnon Bandstructures in Python

Magnon is a Python library integrated with ASE for fast and accurate simulations of linear spin-wave theory band structures. The code is versatile and applicable to a broad range of magnetic systems, including: collinear and non-collinear materials, systems with Q-commensurate magnetic ordering, and cases where the exchange coupling includes off-diagonal Cartesian components such as the Dzyaloshinskii-Moriya interaction (DMI) and Kitaev interactions. The library includes a set of propedeutically structured tutorials, and a self-explanatory API that can be straightforwardly integrated into computational workflows to simulate magnon properties with quantitative accuracy.

Bandstructures in under 10 lines of code

It is straigthforward to take exchange coupling data from the literature and reproduce the corresponding magnon bandstructure. Using Magnon, the simple script below can be used to obtain the bandstructure of BCC iron.

import magnon

atoms, interactions = magnon.input.create_interacting_system('Iron_BCC.poscar', 'Iron_BCC_mag_moments', 'Iron_BCC_exchange', 2)

interactions = interactions.symmetrize(atoms)
primitive_atoms, primitive_interactions, _ = magnon.build.build_primitive_cell(atoms, interactions)

spectrum = magnon.MagnonSpectrum(primitive_atoms,primitive_interactions,num_threads=4)

path = primitive_atoms.get_cell().bandpath(path='GNPGHN', npoints=180)

bstruct = spectrum.get_band_structure(path)
bstruct.plot(emin=0, emax=0.7, filename='Iron_BCC_bands.png')
_images/Iron_BCC_bandstructure.png

Fig. 1 The bandstructure of BCC Iron calculated using the above example script.

Why use Magnon?

The core features of Magnon are:

  • Easy to use - Magnon bandstructures can be computed using less than 10 lines of Python code.

  • Scalable - Handles arbitrarily-complex atomistic structures using an efficient description of exchange couplings and symmetries.

  • Integrated - Interfaces with tools such as the Atomic Simulation Environment (ASE) to accelerate scientific workflows. The MagnonSpectrum class introduced in Magnon mirrors the widely-used ASE Phonons class.

  • Adaptable - Allows conventions for working with dimensionless or dimensional magnetic moments, different Hamiltonian conventions, and many standard input formats.

  • Open - Built for collaboration.

The code offers:

  • ASE-enabled reading of many widely-used atomic structure file formats

  • The ability to read exchange interaction data, and inspect their symmetries

  • The option to easily augment non-magnetic atomic structure files with a magnetic moment data file

  • A rapid set-up routine by simultaneously reading structural, magnetic and exchange-coupling data

  • The powerful InteractionList class for working efficiently with exchange coupling data at scale

  • In-built symmetrisation routines for generating full exchange couplings from a minimal description

  • Standardisation of couplings from arbitrary unit cells to standardized primitive cell

  • Support for ferromagnetic, antiferromagnetic, and non-collinear spin configurations

  • Support for multiple standard conventions for describing the Heisenberg Hamiltonian

  • The ability to convert between exchange couplings used within linear spin wave theory and semiquantum spin dynamics

  • An integrated MagnonSpectrum class for easy generation of reciprocal space paths and their bandstructures. Built with the same structure as the ASE Phonons class.

Contents