Set of tools useful in spin wave research.
Project description
SpinWaveToolkit
SpinWaveToolkit is an open-source Python package which provides analytical tools for spin-wave physics and research.
[!TIP] This package could use some updating. If you want to contrubute, see CONTRIBUTING GUIDELINES.
Installation
Currently you can either
- (recommended) install latest release from PyPI via
pipby typing in the command line
py -m pip install SpinWaveToolkit --user
- or install from GitHub any branch via
pipby typing in the command line
py -m pip install https://github.com/CEITECmagnonics/SpinWaveToolkit/tarball/<branch-name> --user
older installation approaches (not recommended)
- or copy the SpinWaveToolkit folder to your
site-packagesfolder manually. Usually (on Windows machines) located at
C:\Users\<user>\AppData\Roaming\Python\Python<python-version>\site-packages
for user-installed modules, or at
C:\<python-installation-folder>\Python<python-version>\Lib\site-packages
for global modules.
Dependencies
The SpinWaveToolkit package is compatible with Python >3.7, and uses the following modules:
[!NOTE] If you encounter compatibility errors in contradiction with this list, let us know by posting your findings in a new Issue.
About
This package provides analytical tools in spin-wave physics. This section gives an overview of its capabilites. All functionalities are described in the SpinWaveToolkit Documentation.
Features:
- Calculation of the dispersion relation and derived quantities for several systems using analytical, semi-analytical, and numerical models. These include
- single magnetic layer (thin film) surrounded by dielectrics [^1] [^2],
- coupled magnetic double layer (e.g. a synthetic antiferromagnet) [^3],
- single magnetic layer inductively coupled to a superconducting layer from one side [^4].
- Simple magnetic material management using a
Materialclass. - Functions for modelling Brillouin light scattering (BLS) signal and experiments.
Example
Example of calculation of the spin-wave 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
For more examples (with images) look here.
Cite us
If you use SpinWaveToolkit in your work, please cite it as follows:
[1] Klíma, J. et al. "SpinWaveToolkit: Python package for (semi-)analytical calculations in the field of spin-wave physics" (2026) arXiv:2601.23227 [cond-mat.mes-hall] [2] Klíma, J., Krčma, J., & Wojewoda, O. "SpinWaveToolkit: Set of tools useful in spin wave research." GitHub, 2026. https://github.com/CEITECmagnonics/SpinWaveToolkit
BibTeX entry:
@misc{klima2026,
title={{SpinWaveToolkit}: {Python} package for (semi-)analytical calculations in the field of spin-wave physics},
author={Klíma, Jan and Wojewoda, Ondřej and Krčma, Jakub and Hrtoň, Martin and Pavelka, Dominik and Holobrádek, Jakub and Urbánek, Michal},
year={2026},
eprint={2601.23227},
archivePrefix={arXiv},
primaryClass={cond-mat.mes-hall},
url={https://arxiv.org/abs/2601.23227},
}
@online{swt,
author = {Klíma, Jan and Krčma, Jakub and Wojewoda, Ondřej},
title = {SpinWaveToolkit: Set of tools useful in spin wave research},
year = {2026},
publisher = {GitHub},
version = {1.3.0},
url = {https://github.com/CEITECmagnonics/SpinWaveToolkit},
language = {en},
}
All sources of models used within the SpinWaveToolkit are cited in their respective documentation. Consider citing them as well if you use these models.
[^1]: B. A. Kalinikos and A. N. Slavin, J. Phys. C: Solid State Phys., 19, 7013 (1986). [^2]: S. Tacchi et al., Phys. Rev. B, 100, 104406 (2019). [^3]: R. A. Gallardo et al., Phys. Rev. Applied, 12, 034012 (2019). [^4]: X.-H. Zhou et al., Phys. Rev. B, 110, L020404 (2024).
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file spinwavetoolkit-1.3.0.tar.gz.
File metadata
- Download URL: spinwavetoolkit-1.3.0.tar.gz
- Upload date:
- Size: 64.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0a462b18e1ab89381d2727da796e2560514d0c666fab53d7f412f6242179fe6
|
|
| MD5 |
4a3af1cfbc5ea8bd4b65755568faa5d6
|
|
| BLAKE2b-256 |
104c1f9b84996b00d49842a4b1152f24b73201c052e29e5c372dd9e7f402e309
|
Provenance
The following attestation bundles were made for spinwavetoolkit-1.3.0.tar.gz:
Publisher:
release.yml on CEITECmagnonics/SpinWaveToolkit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spinwavetoolkit-1.3.0.tar.gz -
Subject digest:
f0a462b18e1ab89381d2727da796e2560514d0c666fab53d7f412f6242179fe6 - Sigstore transparency entry: 1437692121
- Sigstore integration time:
-
Permalink:
CEITECmagnonics/SpinWaveToolkit@93291d9545bae9ea071dc5bed170817d7d441247 -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/CEITECmagnonics
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@93291d9545bae9ea071dc5bed170817d7d441247 -
Trigger Event:
release
-
Statement type:
File details
Details for the file spinwavetoolkit-1.3.0-py3-none-any.whl.
File metadata
- Download URL: spinwavetoolkit-1.3.0-py3-none-any.whl
- Upload date:
- Size: 67.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
586aa3e27d2a6f3873de6189d1201198d0cbad1ca0b03f02f561927ec4a6d572
|
|
| MD5 |
255f8963ba00467a7a7d803425f833ee
|
|
| BLAKE2b-256 |
1d7be1022ab0251f4147a7bad48d10824c6686b408ac2894a996ed7903b3dd2a
|
Provenance
The following attestation bundles were made for spinwavetoolkit-1.3.0-py3-none-any.whl:
Publisher:
release.yml on CEITECmagnonics/SpinWaveToolkit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spinwavetoolkit-1.3.0-py3-none-any.whl -
Subject digest:
586aa3e27d2a6f3873de6189d1201198d0cbad1ca0b03f02f561927ec4a6d572 - Sigstore transparency entry: 1437692135
- Sigstore integration time:
-
Permalink:
CEITECmagnonics/SpinWaveToolkit@93291d9545bae9ea071dc5bed170817d7d441247 -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/CEITECmagnonics
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@93291d9545bae9ea071dc5bed170817d7d441247 -
Trigger Event:
release
-
Statement type: