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.

Constants#

MU0float

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

Cfloat

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

KBfloat

(J/K) Boltzmann 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