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.
API Sections
SpinWaveToolkit#
This module provides analytical tools in spin-wave physics.
Submodules#
blsModelling Brillouin light scattering signal.
Classes#
MaterialClass for magnetic materials used in spin wave research.
MacrospinEquilibriumCompute the static macrospin equilibrium direction.
SingleLayerCompute spin-wave characteristics in dependance to k-vector for a single layer using an analytical model of Kalinikos and Slavin.
SingleLayerNumericCompute spin-wave characteristics in dependance to k-vector for a single layer using a numerical approach by Tacchi et al.
DoubleLayerNumericCompute spin-wave characteristics in dependance to k-vector for a double layer using a numerical model of Gallardo et al.
SingleLayerSCcoupledCompute 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#
|
Convert wavelength to wavenumber. |
|
Convert wavenumber to wavelength. |
|
Wrap angle in radians to range |
|
Search for a root of a continuous function within an interval [a, b]. |
|
Simple bisection method of root finding. |
|
Find all roots of a continuous function |
|
Returns Bose-Einstein distribution for given chemical potential and temperature. |
|
Convert spherical coordinates to cartesian. |
|
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