Skip to main content

Light propagation in free space with fourier transform

Project description

pypi Language grade: Python

Light propagation

Lightprop2d includes class 'Beam2D' to transform intitial field distribution using fourier transform from x-y field profile to kx-ky spectrum. You can use both numpy and cupy backends with use_gpu key of Beam2D class.

You can install it as follows

pip install lightprop2d==1.0.4

If you want to use cupy to accelerate calculations, you must install extra packages with a command

pip install lightprop2d[gpu]

If you want to use pyfftw to accelerate calculations, you must install extra packages with a command

pip install lightprop2d[fftw]

Check out the Code Reference for details on the 'Beam2D' methods.

Example 1: Random beam propagation

import matplotlib.pyplot as plt
from lightprop2d import Beam2D, random_round_hole, um, nm

# All input data are in cm
# XY grid dimensions
npoints = 256
# XY grid widening
beam_radius = 25*um # 25 um
area_size = 200*um # 200 um
# Wavelength in cm
wl0 = 632*nm

beam = Beam2D(area_size, npoints, wl0, init_field_gen=random_round_hole, 
              init_gen_args=(beam_radius,))
              
plt.imshow(beam.iprofile)
plt.show()

beam.propagate(100*um)

plt.imshow(beam.iprofile)
plt.show()

Funding

This work is supported by the Russian Science Foundation under grant No. 21-12-00155.

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

lightprop2d-1.0.4.tar.gz (10.7 kB view hashes)

Uploaded Source

Built Distribution

lightprop2d-1.0.4-py3-none-any.whl (10.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page