{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Off-axis Parabola" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "\n", "from optiland import optic" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Initialize an optic system\n", "system = optic.Optic()\n", "\n", "# add surfaces to the system\n", "system.surfaces.add(index=0, thickness=np.inf) # object at infinity\n", "system.surfaces.add(\n", " index=1,\n", " thickness=-100,\n", " radius=-200,\n", " conic=-1,\n", " material=\"mirror\",\n", " is_stop=True,\n", " dy=36,\n", ")\n", "system.surfaces.add(index=2)\n", "\n", "# add aperture\n", "system.set_aperture(aperture_type=\"EPD\", value=33)\n", "\n", "# add field\n", "system.fields.set_type(field_type=\"angle\")\n", "system.fields.add(y=0)\n", "\n", "# add wavelength\n", "system.wavelengths.add(value=0.587, is_primary=True)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "system.draw(num_rays=4)" ] } ], "metadata": { "kernelspec": { "display_name": ".venv", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.1" } }, "nbformat": 4, "nbformat_minor": 2 }