Skip to main content

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

  1. (recommended) install latest release from PyPI via pip by typing in the command line
py -m pip install SpinWaveToolkit --user
  1. or install from GitHub any branch via pip by typing in the command line
py -m pip install https://github.com/CEITECmagnonics/SpinWaveToolkit/tarball/<branch-name> --user
older installation approaches (not recommended)
  1. or copy the SpinWaveToolkit folder to your site-packages folder 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 Material class.
  • 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

spinwavetoolkit-1.3.0.tar.gz (64.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spinwavetoolkit-1.3.0-py3-none-any.whl (67.1 kB view details)

Uploaded Python 3

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

Hashes for spinwavetoolkit-1.3.0.tar.gz
Algorithm Hash digest
SHA256 f0a462b18e1ab89381d2727da796e2560514d0c666fab53d7f412f6242179fe6
MD5 4a3af1cfbc5ea8bd4b65755568faa5d6
BLAKE2b-256 104c1f9b84996b00d49842a4b1152f24b73201c052e29e5c372dd9e7f402e309

See more details on using hashes here.

Provenance

The following attestation bundles were made for spinwavetoolkit-1.3.0.tar.gz:

Publisher: release.yml on CEITECmagnonics/SpinWaveToolkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spinwavetoolkit-1.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for spinwavetoolkit-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 586aa3e27d2a6f3873de6189d1201198d0cbad1ca0b03f02f561927ec4a6d572
MD5 255f8963ba00467a7a7d803425f833ee
BLAKE2b-256 1d7be1022ab0251f4147a7bad48d10824c6686b408ac2894a996ed7903b3dd2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for spinwavetoolkit-1.3.0-py3-none-any.whl:

Publisher: release.yml on CEITECmagnonics/SpinWaveToolkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page