Skip to main content

Axiprop

A simple tool to compute optical propagation, based on the discrete Hankel and Fourier transforms

Contents

This library contains methods and convenience tools to model propagation of the 3D optical field. Computations can be done using a number of backends:

  • NumPy (CPU) optionally enhanced via mkl_fft or pyfftw
  • CuPy for GPU calculations via Nvidia CUDA API
  • ArrayFire for GPU calculations via CUDA or OpenCL APIs
  • PyOpenCL for GPU calculations via OpenCL API

Currently methods include:

Usage

Consider a laser,

k0 = 2 * np.pi / 0.8e-6            # 800 nm wavelength
tau = 35e-15/ (2*np.log(2))**0.5   # 35 fs FWHM duration
R_las = 10e-3                      # 10 mm radius

def fu_laser(kz, r):
    """
    Gaussian spot with the Gaussian temporal profile
    """
    profile_r = np.exp( -(r/R_las)**2 )
    profile_kz = np.exp( -( (kz-k0) * c * tau / 2 )**2 )
    return profile_r * profile_kz

and some focusing optics,

f_N = 40                      # f-number f/40 
f0 = 2 * R_las * f_N          # focal length

Define the propagator,

prop = PropagatorSymmetric((Rmax, Nr), (k0, L_kz, Nkz), Nr_end)

and setup the laser reflected from the focusing mirror

A0 = laser_from_fu( fu_laser, prop.kz, prop.r )
A0 = A0 * mirror_parabolic( f0, prop.kz, prop.r )

Use AXIPROP to compute the field after propagation of dz distance (e.g. dz=f0 for field at focus):

A0 = prop.step(A0, f0)

or evaluate it at Nsteps along some Distance around the focus,

dz =  Distance / Nsteps
zsteps = Nsteps * [dz,]
zsteps[0] = f0 - Distance/2
A_multi = prop.steps(A0, zsteps)

Plot the results using your favorite tools

example_image

For more info checkout the example notebooks for radial and cartesian cases, and also look for methods documentation.

Installation

Install axiprop by cloning the source

git clone https://github.com/hightower8083/axiprop.git
cd axiprop
python setup.py install

or directly via PiPy

pip install git+https://github.com/hightower8083/axiprop.git

Additional requirements

Note that, while base backend NP requires only NumPy and SciPy, other backends have specific dependencies:

Optional enhancements of utilities are achieved if Numba is installed.

Release files for axiprop 0.5.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for axiprop 0.5.7
File Size Uploaded
axiprop-0.5.7.tar.gz 36.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for axiprop 0.5.7
File Interpreter ABI Platform
axiprop-0.5.7-py3-none-any.whl Python 3 none any Details

Total release size: 76.1 kB

Release files / axiprop-0.5.7.tar.gz

Download URL axiprop-0.5.7.tar.gz
Size 36.4 kB
Tags Source
SHA-256 checksum
How to use checksums
130437a7ad3fa66f7ca1675b030bb392368fccff5ea71c5cb371bd37ee2218e6
BLAKE2b-256 checksum
How to use checksums
c36ff0b85596164009b9032aa5f5f96f6ff1e0907d09974d044c2ad62c0cdc21
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 9, 2025.

Transparency log

Release files / axiprop-0.5.7-py3-none-any.whl

Download URL axiprop-0.5.7-py3-none-any.whl
Size 39.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e6cb969817d71f0eac7de667f4ffe9a5cff77411fb98e328dadf52e43925d437
BLAKE2b-256 checksum
How to use checksums
abf21985c009335b6e019ffb821c66fa1e0012edfb35b75572452915efaa076f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 9, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.7 This release

2 release files

0.5.5

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

1 release file

0.5

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page