Welcome to Poke’s documentation!
Poke is a ray-based physical optics package that aims to better integrate raytrace models with diffraction models, and add more physics to the optical modeling pipeline. Poke was developed as a part of a NASA Space Technology Graduate Research Opportunity which emphasised modeling of astronomical telescopes equipped with coronagraphs, but is applicable to a wide range of optical modeling problems.
Summary
What this software does:
Allows the users to run raytraces of optical systems in Ansys Zemax OpticStudio (Zemax) and SYNOPSYS CODE V through the Rayfront class
Access the optical path difference (OPD) of a given wavefront computed with ray data
Compute the polarization aberrations of an optical system with polarization ray tracing
Perform physical optics propagation with Gaussian beamlet decomposition
Simulate and design multilayer thin film stacks
Permits the reading and writing of Rayfront data to a binary file for broad distribution of optical system data that isn’t limited to a raytrace
Soft Requirements
Using Poke requires that at least one person in your workflow has access to Zemax or CODE V, which require the following packages that are not installed by default with Poke
Zemax: zosapi by Michael Humphreys
CODE V: pywin32 by Mark Hammond et al, which may be installed by default
Furthermore, there are some raytracer-specific quirks with using Poke and running raytraces in Jupyter/IPython notebooks, see Using Jupyter Notebooks & Raytracer Specifics for guidance on navigating them.
Getting Started
To get started with your first Rayfront model, check out Intro to Poke: The Rayfront
Contents:
- poke
- Installation
- Intro to Poke: The Rayfront
- Using Jupyter Notebooks & Raytracer Specifics
- Intro to Poke: Polarization Ray Tracing
- Intro to Poke: Gaussian Beamlet Decomposition
- Generating a Jones Pupil and propagating it with HCIPy & Poppy
- PRT Defining Surface Types
- Loading Refractive Index Data
- Simulating Multilayer Thin Films
- About Poke