Skip to content

Numerical methods to estimate light beam propagation through optical media by solving its paraxial wave equation. (work in progress)

License

Notifications You must be signed in to change notification settings

carlos-antunis-physics/computational-beam-optics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Computational beam optics

Authors: Carlos Antunis Bonfim da S. Santos & Carlos Eduardo da S. Santana

Python Fortran numpy: 1.26.4 scipy: 8.2 matplotlib: 3.8.3 ipython: 8.22.2 scikit-image: 0.24.0

Computational optics python module

Understanding how to properly control light, besides a scientific research area of enormous impact, is an important source of novel technological applications. Provide a general analytical method which also encompass non-linear effects of optical media is impossible, thus numerical methods are widely applied both to estimate how light propagation is disturbed by optical responses (even the non-linear ones) of optical devices and design themselves.

About this python module

The python module developed in this repo is widely inspired on FiniteDiferenceBPM repository, implemented by José Carlos do A. Rocha.

Our main goal is to provide a python module with a wide range of computational methods used in our academic researchs at the Optics and Nanoscopy Group (GON). Besides some utils algorithms of phase optimization, the most of the algorithms arrenged here consists of methods to estimate the solutions of a Dirichlet Boundary Value Problem (BVP) for inhomogeneous non-linear elliptical partial differential equations such as

$$ \jmath\partial_z\psi(\textbf{r},z) = \frac{1}{2\kappa}\nabla^2_\perp\psi(\textbf{r},z) + \Delta{n}(\textbf{r},z)\psi(\textbf{r},z) + \mathrm{N}(\psi(\textbf{r},z))\psi(\textbf{r},z)\text{,} $$

defined here as non-linear and inhomogeneous Helmholtz paraxial equation.

Installing the python module on your personal computer

To obtain the python module optical provided by this repository, ensuring that your computer satisfy the required dependencies (listed in the top of this README), you will need only the optical/ directory as the python module on your python application at the main branch.

Direct download

Download the files on main branch directly here.

Download using git

Download the files on main branch using git:

git clone 'https://github.com/carlos-antunis-physics/computational-beam-optics.git'

Installing the python module in a Google Colab notebook

To obtain the python module optical provided by this repository on a Google Colab notebook add a cell and use the commands:

from google.colab import output

#  change directory to google colab root directory
%cd -q /content/

# clone git repository
!apt-get install git
%rm -r /content/computational-beam-optics/ /content/optical/
!git clone 'https://github.com/carlos-antunis-physics/computational-beam-optics'

# obtain python module directory
%mv ./computational-beam-optics/optical/ ./optical/
%rm -r ./computational-beam-optics/                 # remove other files

# enable widget visualization
!pip install ipympl
output.enable_custom_widget_manager()

About

Numerical methods to estimate light beam propagation through optical media by solving its paraxial wave equation. (work in progress)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published