Three-dimensional electromagnetic field simulation and topology analysis
Project description
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, install with 'viz' extra: pip install vectorwaves[viz]
beam.plot_kspace_3d(plot_type='colored_vectors')
For tutorials and examples, please refer to the official documentation. Source code is available on GitHub.
Project details
Release history Release notifications | RSS feed
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 vectorwaves-1.0.0.tar.gz.
File metadata
- Download URL: vectorwaves-1.0.0.tar.gz
- Upload date:
- Size: 41.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e67173ce138b48155df4c71ba40b5add20344e57c566dbd6d4624a7f43e83810
|
|
| MD5 |
c1799962b989d27a026fdc9b13967362
|
|
| BLAKE2b-256 |
666f8af38110e62842a51bdb2e1d493e1879e187388bd8bf92d97ecc533a8d47
|
File details
Details for the file vectorwaves-1.0.0-py3-none-any.whl.
File metadata
- Download URL: vectorwaves-1.0.0-py3-none-any.whl
- Upload date:
- Size: 42.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a5e80bbdc533b301155600e8a851ec97269942e56d6b8193a4df3fd44141b19
|
|
| MD5 |
e528b847fd1e9fccd4befbbffb79a6a9
|
|
| BLAKE2b-256 |
f05bb2494100c73b44d521f02fadca573ba977076dc4bada6ea331d7530b63c7
|