Skip to main content

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')

LG beam k-space

For tutorials and examples, please refer to the official documentation. Source code is available on GitHub.

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

vectorwaves-1.0.0.tar.gz (41.6 kB view details)

Uploaded Source

Built Distribution

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

vectorwaves-1.0.0-py3-none-any.whl (42.8 kB view details)

Uploaded Python 3

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

Hashes for vectorwaves-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e67173ce138b48155df4c71ba40b5add20344e57c566dbd6d4624a7f43e83810
MD5 c1799962b989d27a026fdc9b13967362
BLAKE2b-256 666f8af38110e62842a51bdb2e1d493e1879e187388bd8bf92d97ecc533a8d47

See more details on using hashes here.

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

Hashes for vectorwaves-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8a5e80bbdc533b301155600e8a851ec97269942e56d6b8193a4df3fd44141b19
MD5 e528b847fd1e9fccd4befbbffb79a6a9
BLAKE2b-256 f05bb2494100c73b44d521f02fadca573ba977076dc4bada6ea331d7530b63c7

See more details on using hashes here.

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