API reference#

SpinWaveToolkit is an open-source Python package providing analytical tools for spin-wave physics and research.

Below you will find links to detailed documentation for constants, classes, functions, and submodules.

SpinWaveToolkit#

This module provides analytical tools in spin-wave physics.

Submodules#

bls

Modelling Brillouin light scattering signal.

Classes#

Material

Class for magnetic materials used in spin wave research.

MacrospinEquilibrium

Compute the static macrospin equilibrium direction.

SingleLayer

Compute spin-wave characteristics in dependance to k-vector for a single layer using an analytical model of Kalinikos and Slavin.

SingleLayerNumeric

Compute spin-wave characteristics in dependance to k-vector for a single layer using a numerical approach by Tacchi et al.

DoubleLayerNumeric

Compute spin-wave characteristics in dependance to k-vector for a double layer using a numerical model of Gallardo et al.

SingleLayerSCcoupled

Compute spin-wave characteristics in dependance to k-vector for a single ferromagnetic layer dipolarly coupled to a superconductor using a semi-analytical model of Zhou et al.

BulkPolariton

Compute wave characteristic in dependance to k-vector for the magnon-polariton in a bulk ferromagnet/thin film.

Constants#

MU0float

(N/A^2) magnetic permeability of free space.

Cfloat

(m/s) speed of free-space light.

KBfloat

(J/K) Boltzmann constant.

Hfloat

(J s) Planck constant.

HBARfloat

(J s) reduced Planck constant.

NiFeMaterial

Predefined material NiFe (permalloy).

CoFeBMaterial

Predefined material CoFeB.

FeNiMaterial

Predefined material FeNi (metastable iron).

YIGMaterial

Predefined material YIG.

Functions#

wavenumber2wavelength(wavenumber)

Convert wavelength to wavenumber.

wavelength2wavenumber(wavelength)

Convert wavenumber to wavelength.

wrapAngle(angle[, amin, amax])

Wrap angle in radians to range [amin, amax), by default [0, 2*np.pi).

rootsearch(f, a, b, dx[, args])

Search for a root of a continuous function within an interval [a, b].

bisect(f, x1, x2[, epsilon, args])

Simple bisection method of root finding.

roots(f, a, b[, dx, eps, args])

Find all roots of a continuous function f(x, *args) within a given interval [a, b].

distBE(w[, temp, mu])

Returns Bose-Einstein distribution for given chemical potential and temperature.

sphr2cart(theta, phi[, r])

Convert spherical coordinates to cartesian.

cart2sphr(x, y, z)

Convert cartesian coordinates to spherical.

Example#

Example of calculation of the dispersion relation f(k_xi), and other important quantities, for the lowest-order mode in a 30 nm thick NiFe (Permalloy) layer.

import numpy as np
import SpinWaveToolkit as SWT

kxi = np.linspace(1e-6, 150e6, 150)

PyChar = SWT.SingleLayer(Bext=20e-3, kxi=kxi, theta=np.pi/2,
                         phi=np.pi/2, d=30e-9, weff=2e-6,
                         boundary_cond=2, material=SWT.NiFe)
DispPy = PyChar.GetDispersion()*1e-9/(2*np.pi)  # GHz
vgPy = PyChar.GetGroupVelocity()*1e-3  # km/s
lifetimePy = PyChar.GetLifetime()*1e9  # ns
decLen = PyChar.GetDecLen()*1e6  # um
@authors:

Ondrej Wojewoda, ondrej.wojewoda@ceitec.vutbr.cz Jan Klima, jan.klima4@vutbr.cz Dominik Pavelka, dominik.pavelka@vutbr.cz Michal Urbanek, michal.urbanek@ceitec.vutbr.cz