Authors: Carlos Antunis Bonfim da S. Santos & Carlos Eduardo da S. Santana
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.
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
defined here as non-linear and inhomogeneous Helmholtz paraxial equation.
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.
Download the files on main
branch directly here.
Download the files on main
branch using git
:
git clone 'https://github.com/carlos-antunis-physics/computational-beam-optics.git'
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()