# SpinWaveToolkit
> [!WARNING]
> This module needs some updating, which is currently WIP. If you are a contributor, see [CONTRIBUTING GUIDELINES](CONTRIBUTING.md).
## Installation
> [!NOTE]
> Installation with `pip` from PyPI is currently a WIP. We hope it will be available soon.
Currently you can either
1. install from GitHub via `pip` by typing in the command line
```
py -m pip install https://github.com/CEITECmagnonics/SpinWaveToolkit/tarball/master --user
```
2. or copy the [SpinWaveToolkit][SWTpy] 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
> [!WARNING]
> This section lacks proof and was not much checked.
The SpinWaveToolkit module is compatible with Python >3.7, and uses the following modules:
- [numpy] >1.20,<2.0
- [scipy] >1.8
## About
This module provides analytical tools in spin-wave physics.
### Classes
`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.
`DoubleLayerNumeric` - Compute spin-wave characteristics in dependance to k-vector for a double layer using a numerical model of Gallardo.
`Material` - Class for magnetic materials used in spin wave research.
### Constants
`MU0` - Magnetic permeability of free space.
`NiFe` - Predefined material NiFe (permalloy).
`CoFeB` - Predefined material CoFeB.
`FeNi` - Predefined material FeNi (metastable iron).
`YIG` - Predefined material YIG.
### Functions
`wavenumber2wavelength` - Convert wavenumber to wavelength.
`wavelength2wavenumber` - Convert wavelength to wavenumber.
`wrapAngle` - Wrap angle in radians to range `[0, 2*np.pi)`.
`rootsearch` - Search for a root of a continuous function within an interval `[a, b]`.
`bisect` - Simple bisection method of root finding.
`roots` - Find all roots of a continuous function `f(x, *args)` within a given interval `[a, b]`.
### 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.
```Python
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
```
[SWTpy]:SpinWaveToolkit
[numpy]:https://numpy.org/
[scipy]:https://scipy.org/
Raw data
{
"_id": null,
"home_page": null,
"name": "SpinWaveToolkit",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "Ond\u0159ej Wojewoda <ondrej.wojewoda@ceitec.vutbr.cz>, Jan Kl\u00edma <jan.klima4@vutbr.cz>, Dominik Pavelka <dominik.pavelka@vutbr.cz>, Michal Urb\u00e1nek <michal.urbanek@ceitec.vutbr.cz>",
"keywords": "magnetism, physics, analytical, magnonic, spin-wave",
"author": null,
"author_email": "Ond\u0159ej Wojewoda <ondrej.wojewoda@ceitec.vutbr.cz>",
"download_url": "https://files.pythonhosted.org/packages/98/80/096e9157006b922af292d147fb3e603b9b6c0cecfe85df66869459aba9a6/spinwavetoolkit-1.0.0.tar.gz",
"platform": null,
"description": "# SpinWaveToolkit\r\n\r\n> [!WARNING]\r\n> This module needs some updating, which is currently WIP. If you are a contributor, see [CONTRIBUTING GUIDELINES](CONTRIBUTING.md).\r\n\r\n## Installation\r\n\r\n> [!NOTE]\r\n> Installation with `pip` from PyPI is currently a WIP. We hope it will be available soon.\r\n\r\nCurrently you can either \r\n1. install from GitHub via `pip` by typing in the command line\r\n```\r\npy -m pip install https://github.com/CEITECmagnonics/SpinWaveToolkit/tarball/master --user\r\n```\r\n2. or copy the [SpinWaveToolkit][SWTpy] folder to your `site-packages` folder manually. Usually (on Windows machines) located at\r\n```\r\nC:\\Users\\<user>\\AppData\\Roaming\\Python\\Python<python-version>\\site-packages\r\n```\r\nfor user-installed modules, or at \r\n```\r\nC:\\<python-installation-folder>\\Python<python-version>\\Lib\\site-packages\r\n```\r\nfor global modules.\r\n\r\n## Dependencies\r\n\r\n> [!WARNING]\r\n> This section lacks proof and was not much checked.\r\n\r\nThe SpinWaveToolkit module is compatible with Python >3.7, and uses the following modules:\r\n- [numpy] >1.20,<2.0\r\n- [scipy] >1.8\r\n\r\n## About\r\nThis module provides analytical tools in spin-wave physics.\r\n\r\n### Classes\r\n`SingleLayer` - Compute spin-wave characteristics in dependance to k-vector for a single layer using an analytical model of Kalinikos and Slavin.\r\n\r\n`SingleLayerNumeric` - Compute spin-wave characteristics in dependance to k-vector for a single layer using a numerical approach by Tacchi.\r\n\r\n`DoubleLayerNumeric` - Compute spin-wave characteristics in dependance to k-vector for a double layer using a numerical model of Gallardo.\r\n\r\n`Material` - Class for magnetic materials used in spin wave research.\r\n \r\n### Constants\r\n`MU0` - Magnetic permeability of free space.\r\n\r\n`NiFe` - Predefined material NiFe (permalloy).\r\n\r\n`CoFeB` - Predefined material CoFeB.\r\n\r\n`FeNi` - Predefined material FeNi (metastable iron).\r\n\r\n`YIG` - Predefined material YIG.\r\n \r\n### Functions\r\n`wavenumber2wavelength` - Convert wavenumber to wavelength.\r\n\r\n`wavelength2wavenumber` - Convert wavelength to wavenumber.\r\n\r\n`wrapAngle` - Wrap angle in radians to range `[0, 2*np.pi)`.\r\n\r\n`rootsearch` - Search for a root of a continuous function within an interval `[a, b]`.\r\n\r\n`bisect` - Simple bisection method of root finding.\r\n\r\n`roots` - Find all roots of a continuous function `f(x, *args)` within a given interval `[a, b]`.\r\n\r\n### Example\r\nExample 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.\r\n```Python\r\nimport numpy as np\r\nimport SpinWaveToolkit as SWT\r\n\r\nkxi = np.linspace(1e-6, 150e6, 150)\r\n\r\nPyChar = SWT.SingleLayer(Bext=20e-3, kxi=kxi, theta=np.pi/2,\r\n phi=np.pi/2, d=30e-9, weff=2e-6,\r\n boundary_cond=2, material=SWT.NiFe)\r\nDispPy = PyChar.GetDispersion()*1e-9/(2*np.pi) # GHz\r\nvgPy = PyChar.GetGroupVelocity()*1e-3 # km/s\r\nlifetimePy = PyChar.GetLifetime()*1e9 # ns\r\ndecLen = PyChar.GetDecLen()*1e6 # um\r\n```\r\n\r\n\r\n[SWTpy]:SpinWaveToolkit\r\n[numpy]:https://numpy.org/\r\n[scipy]:https://scipy.org/\r\n\r\n",
"bugtrack_url": null,
"license": null,
"summary": "Set of tools useful in spin wave research.",
"version": "1.0.0",
"project_urls": {
"Bug Reports": "https://github.com/CEITECmagnonics/SpinWaveToolkit/issues",
"Forum": "https://github.com/CEITECmagnonics/SpinWaveToolkit/discussions",
"Homepage": "https://github.com/CEITECmagnonics/SpinWaveToolkit"
},
"split_keywords": [
"magnetism",
" physics",
" analytical",
" magnonic",
" spin-wave"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c2d43cca13623416407fbbd2778ba2f0c96a3dfdcb16794814c736877d3163bd",
"md5": "45f0bfca8fd076736ab41d0c7c2c8357",
"sha256": "ef5c6a7099f98e4c549d725bfec066e49068603354f5b878122fc958088e953e"
},
"downloads": -1,
"filename": "spinwavetoolkit-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "45f0bfca8fd076736ab41d0c7c2c8357",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 24589,
"upload_time": "2025-08-07T10:50:55",
"upload_time_iso_8601": "2025-08-07T10:50:55.604183Z",
"url": "https://files.pythonhosted.org/packages/c2/d4/3cca13623416407fbbd2778ba2f0c96a3dfdcb16794814c736877d3163bd/spinwavetoolkit-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9880096e9157006b922af292d147fb3e603b9b6c0cecfe85df66869459aba9a6",
"md5": "9659e7a0b178705d208f7e85dd0c8170",
"sha256": "25993beb2c99d1663e1b7d8e5386599330fa93b44cae26404e553ae471d497a1"
},
"downloads": -1,
"filename": "spinwavetoolkit-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "9659e7a0b178705d208f7e85dd0c8170",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 22096,
"upload_time": "2025-08-07T10:50:58",
"upload_time_iso_8601": "2025-08-07T10:50:58.654480Z",
"url": "https://files.pythonhosted.org/packages/98/80/096e9157006b922af292d147fb3e603b9b6c0cecfe85df66869459aba9a6/spinwavetoolkit-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-07 10:50:58",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "CEITECmagnonics",
"github_project": "SpinWaveToolkit",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "spinwavetoolkit"
}