Juno
juno is a simulation package for optical system design using full wave propagation.
Getting Started
Installation
The best way to install is by creating an Anaconda environment. First download and install anaconda.
On Windows - Open Anaconda Powershell Prompt:
On Linux/Mac - Open Terminal:
$ git clone https://github.com/DeMarcoLab/juno.git
$ cd juno
$ conda env create -f environment.yml
$ conda activate juno
$ pip install -e .
Documentation
For more documentation, please see the website
Tutorial
For a tutorial walkthrough for using the package please see Tutorial
User Interface
To run the user interface:
$ juno_ui
Examples
The example folder contains a few simulation configurations using common lens types and setups:
- Focusing Lens (1D and 2D)
- Axicon Lens (2D)
- Telescope (1D and 2D)
For more information about all the available configuration parameters and options, please see Configuration.
Command Line
Simulations can be run from the commmand line.
$ python run_simulation.py config.yaml
This is useful for running large parameter sweeps on HPC setups.
Documentation
For more detailed documentation please see Documentation
Citation
@misc{https://doi.org/10.48550/arxiv.2212.12540,
doi = {10.48550/ARXIV.2212.12540},
url = {https://arxiv.org/abs/2212.12540},
author = {Dierickx, David and Cleeve, Patrick and Gorelick, Sergey and Whisstock, James C. and De Marco, Alex},
keywords = {Instrumentation and Detectors (physics.ins-det), Numerical Analysis (math.NA), Optics (physics.optics), FOS: Physical sciences, FOS: Physical sciences, FOS: Mathematics, FOS: Mathematics},
title = {Juno: a Python-based graphical package for optical system design},
publisher = {arXiv},
year = {2022},
copyright = {Creative Commons Attribution Share Alike 4.0 International}
}