VectorWaves
VectorWaves provides a framework for generating, computing, and analyzing fully three-dimensional electromagnetic fields and their topology through discrete plane-wave expansions.
Installation
pip install vectorwaves
For additional features, you can install the optional dependencies:
| Extra | Purpose |
|---|---|
viz |
Matplotlib and PyVista for visualizations |
progress |
Progress bars via tqdm |
gpu |
CUDA acceleration via CuPy |
all |
All the above |
To install,
pip install vectorwaves[extra]
Features
- Physics-oriented configuration system with
numpy,numba, and CuPy (GPU) backends. - Exact non-paraxial 3D propagation via Fibonacci-sphere discrete plane-wave expansions.
- Monochromatic and polychromatic sources with arbitrary envelopes, structured light support.
- Stochastic process generation for speckle-like fields.
- Fully analytic computation of E-fields, B-fields, spatial derivatives.
- Topological polarization analysis: C, Cᵀ, and Lᵀ point finding with 3D line tracing.
Quick Example
import vectorwaves as vw
# Generate a tightly-focused Laguerre-Gaussian beam
config = vw.get_config()
config.source.k_space.laguerre_gauss(p=1, l=2, sigma_k_perp=1)
config.source.randomize.off()
# Construct the beam and visualize its plane-wave modes
beam = vw.setup_beam(config)
# Requires matplotlib, included with 'viz' extra
beam.plot_kspace_3d(plot_type='matplotlib_scatter')
For tutorials and examples, please refer to the official documentation. Source code is available on GitHub.
Citing
If you use VectorWaves in your research, please cite it:
@software{soni_vectorwaves,
author = {Soni, Mayank},
title = {VectorWaves},
year = {2026},
doi = {10.5281/zenodo.21762335},
url = {https://github.com/M-Soni-Physics/VectorWaves}
}
Metadata
Release files for vectorwaves 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vectorwaves-1.0.1.tar.gz | 54.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vectorwaves-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 97.7 kB
Release files / vectorwaves-1.0.1.tar.gz
| Download URL | vectorwaves-1.0.1.tar.gz |
|---|---|
| Size | 54.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3c6a694cfe995b49a684536420fe2605dc0ab10762f02b0f0afd9cbcb3b3d200
|
|
BLAKE2b-256 checksum How to use checksums |
7075bf91468e262e25769c7fa5596bfa4f3a42eff4c4079231dfd3a806199708
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / vectorwaves-1.0.1-py3-none-any.whl
| Download URL | vectorwaves-1.0.1-py3-none-any.whl |
|---|---|
| Size | 43.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
91b62c89e918fee216292a4006dd51e858e93b002eea33e52a9ee37984dbfe61
|
|
BLAKE2b-256 checksum How to use checksums |
3d94eb0dd8fc35e6e617d86289f18e3f1c431f459bbb6aebb38e3ec2ee8b3930
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|