{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Tutorial 4b: Raytracing Aspheres and Freeforms\n", "\n", "Consolidating conic surfaces, even/odd aspheric models, and freeform surfaces.\n" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "nbsphinx-toctree" ] }, "source": [ "### July 2024" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This tutorial shows how even aspheres can be modeled in Optiland. We will first assess a simple spherical lens, then compare it to an even asphere." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T10:15:37.052149Z", "iopub.status.busy": "2026-03-24T10:15:37.051808Z", "iopub.status.idle": "2026-03-24T10:15:40.749532Z", "shell.execute_reply": "2026-03-24T10:15:40.748969Z" } }, "outputs": [], "source": [ "import numpy as np\n", "\n", "from optiland import analysis, optic" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Spherical Singlet" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's define a simple singlet:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T10:15:40.751815Z", "iopub.status.busy": "2026-03-24T10:15:40.751533Z", "iopub.status.idle": "2026-03-24T10:15:40.889202Z", "shell.execute_reply": "2026-03-24T10:15:40.888676Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\kdani\\AppData\\Local\\Temp\\ipykernel_11504\\3998103300.py:25: DeprecationWarning: Optic.update_paraxial is deprecated and will be removed in v0.7.0; use optic.updater.update_paraxial() instead.\n", " spherical.update_paraxial()\n" ] }, { "data": { "text/plain": [ "(
, )" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "spherical = optic.Optic()\n", "\n", "# add surfaces\n", "spherical.surfaces.add(index=0, radius=np.inf, thickness=np.inf)\n", "spherical.surfaces.add(\n", " index=1,\n", " thickness=7,\n", " radius=20.0,\n", " is_stop=True,\n", " material=\"N-SF11\",\n", ")\n", "spherical.surfaces.add(index=2, thickness=21.56201105)\n", "spherical.surfaces.add(index=3)\n", "\n", "# add aperture\n", "spherical.set_aperture(aperture_type=\"EPD\", value=20.0)\n", "\n", "# add field\n", "spherical.fields.set_type(field_type=\"angle\")\n", "spherical.fields.add(y=0)\n", "\n", "# add wavelength\n", "spherical.wavelengths.add(value=0.587, is_primary=True)\n", "\n", "spherical.update_paraxial()\n", "\n", "spherical.draw(num_rays=10)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T10:15:40.891666Z", "iopub.status.busy": "2026-03-24T10:15:40.891432Z", "iopub.status.idle": "2026-03-24T10:15:41.008843Z", "shell.execute_reply": "2026-03-24T10:15:41.008242Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "(
,\n", " [])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spot = analysis.SpotDiagram(spherical)\n", "spot.view()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we can see, this lens shows a significant amount of spherical aberration, as is typical for such a lens." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2. Aspherical Singlet" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's now define an asphere which has improved spherical aberration performance.\n", "\n", "We define the \"surface_type\" attribute as \"even_asphere\" and we supply a list of coefficients of the aspheric terms. The aspheric surface sag equation is\n", "\n", "$z(r) = \\frac{r^2}{R(1 + \\sqrt{1 - (1 + \\kappa)\\frac{r^2}{R^2}})} + \\alpha_2r^2 + \\alpha_4r^4 + \\alpha_6r^6 + \\ldots$\n", "\n", "where $z$ is the sag, $R$ is the radius of curvature, $r$ is the radial distance from the optical axis, and $\\alpha_2, \\alpha_4, \\alpha_6, \\ldots$ are the coefficients of the asphere. The coefficient list provided to the surface is simply $[\\alpha_2, \\alpha_4, \\alpha_6, \\ldots]$." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T10:15:41.011192Z", "iopub.status.busy": "2026-03-24T10:15:41.010978Z", "iopub.status.idle": "2026-03-24T10:15:41.113056Z", "shell.execute_reply": "2026-03-24T10:15:41.112393Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\kdani\\AppData\\Local\\Temp\\ipykernel_11504\\2330462024.py:32: DeprecationWarning: Optic.update_paraxial is deprecated and will be removed in v0.7.0; use optic.updater.update_paraxial() instead.\n", " asphere.update_paraxial()\n" ] }, { "data": { "text/plain": [ "(
, )" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0cAAAFzCAYAAAD1znIRAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAd4RJREFUeJzt3Qd4lFX6NvCb9N57J40khIReFRVQQUGxgAroiutaVv3WXfVvW3td+ypWVJQOtrWsYltREUjoLfSS3ntvk+96zmRSgEACSd4p9++63muYEnIyOXln7jnnPGdAS0tLC4iIiIiIiCycldYNICIiIiIiMgYMR0RERERERAxHREREREREegxHREREREREDEdERERERER6DEdEREREREQMR0RERERERHoMR0RERERERABstG6AOdDpdKiqqoKdnR0GDBigdXOIiIiIiKiDlpYWNDQ0wMXFBVZWXY8PMRz1AglGr776qtbNICIiIiKiU/j73/8ONze3Lu9nOOoFMmJkeLLt7e01TcQS1CQRcwSLTof9hXqC/YV6gv2FeoL9hfqjv9TX16vBDMP79q4wHPUCwy9GgpHW4aixsVG1gScXOh32F+oJ9hfqCfYX6gn2F+rP/nK6r2FBBiIiIiIiIoYjIiIiIiIiPYYjIiIiIiIihiMiIiIiIiI9hiMiIiIiIiJWqyMioq5INaApU6agqKiobcNr2Thv+fLlSE5O1rp5REREvY4jR0REdFK2traYNm0a0tLS1LFv3z54e3sjKSlJ66YRERH1CZMKR1u3blUbrU6dOhUjR47E2rVrT6h7/s477+Diiy/GhAkT8Ne//hUZGRmn/X9Xr16NGTNmYPz48fjTn/6E3bt39+FPQURkOu644w4ViAwee+wx7kNCRERmy6TCUW1tLWJiYnD//fef9P6PP/4YK1euxIMPPoiPPvoIDg4OuOuuu9SOuF354Ycf1G65f/nLX7B06VLExsaqrykpKenDn4SIyDS4urri3nvvVf+WD50uuOACrZtERETUZ0wqHBlGg0724iyjRitWrMCf//xnnH/++SpEPfnkkygsLDxhhKmjZcuWYebMmbjssssQGRmpgpWEqq+++qqPfxoiItMaPZLzI0eNiIjInJlNQYbs7GwUFxdj9OjRbbe5uLggMTERu3btUlPtTrbYWObQz58/v+02WWws/8fOnTu7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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "asphere = optic.Optic()\n", "\n", "# add surfaces\n", "asphere.surfaces.add(index=0, radius=np.inf, thickness=np.inf)\n", "asphere.surfaces.add(\n", " index=1,\n", " thickness=7,\n", " radius=20.0,\n", " is_stop=True,\n", " material=\"N-SF11\",\n", " surface_type=\"even_asphere\",\n", " conic=0.0,\n", " coefficients=[\n", " -2.248851e-4,\n", " -4.690412e-6,\n", " -6.404376e-8,\n", " ], # <-- coefficients for asphere\n", ")\n", "asphere.surfaces.add(index=2, thickness=21.56201105)\n", "asphere.surfaces.add(index=3)\n", "\n", "# add aperture\n", "asphere.set_aperture(aperture_type=\"EPD\", value=20.0)\n", "\n", "# add field\n", "asphere.fields.set_type(field_type=\"angle\")\n", "asphere.fields.add(y=0)\n", "\n", "# add wavelength\n", "asphere.wavelengths.add(value=0.587, is_primary=True)\n", "\n", "asphere.update_paraxial()\n", "\n", "asphere.draw(num_rays=5)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2026-03-24T10:15:41.115109Z", "iopub.status.busy": "2026-03-24T10:15:41.114902Z", "iopub.status.idle": "2026-03-24T10:15:41.231613Z", "shell.execute_reply": "2026-03-24T10:15:41.230724Z" } }, "outputs": [ { "data": { "image/png": "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O8M8fL6ytPLX8V6avMUbUDcQa2D38Kh07NixNGnSJOrduzd98skndPjwYVq1alWV1/Fu7ufOnaO6pLCwUEwucl2AuoFYA7uHfaV5FM0eIQybLN5++2168cUX6erVq5VeFx0dTXFxcUZeHbXNwYMHxebE9rS5rr0CsQZ2zU8//SR8ldetWydszTqefvppsVimKnPII488Qk5OTrR3716qKzZv3ix8ww3rDtQJFsUAcBew0LM/9H/+859a/+y0tDThy81+1s2aNav1zwe1i1Mtfx4AqoJH4JmZmSI2SG0vOWcTzYcffgihthMwsgYAAAmAzRoAACQAYg0AABIAsQYAAAmAWAMAgARArAEAQAIg1gAAIAEQawAAkACINQAASADEGgAAJABiDQAAEgCxBgAACYBYAwCABECsAQBAAiDWAAAgARBrAACQAIg1AABIAMQaAAAkAGINAAASALEGAAAJgFgDAIAEQKwBAEACINYAACABTnVdAWB/lJWVUUlJSV1XA1gRZ2dncnR0rOtqqAqINag1FEWhpKQkyszMrOuqgFrAx8eHgoKCSKPR1HVVVAHEGtQaOqFu2LAheXh44CZW8UM5Pz+fUlJSxHGjRo3qukqqAGINas30oRNqf3//uq4OsDLu7u7inQWbf3OYRO4eTDCCWkFno+YRNbAPdL815icsA8Qa1CowfdgP+K0tC8QaAAAkAGINAAASALEGwAxWrlxJTZs2JTc3N4qMjKTDhw9XmX/9+vXCDGD44msNyc3NpalTp1KTJk3EhFy7du1o1apV+vNXr16tUIbuFRMTo8+XkJBA/fv3FzZinsx74YUXqLS01AqtAOoSeIMAcAe2bt1KM2fOFELKQr18+XKKjo6mixcvCnGsDC8vL5GnMhsul7l//3767LPPxIPghx9+oMmTJ1NwcDA9/vjjFBISQrdu3TK6ZvXq1bR06VJ65JFH9F42LNTszxwbGyvyjx49WixKeeONNyzeFqAOUQCoBQoKCpRz586Jd9no3r27MmXKFP1xWVmZEhwcrCxevLjSa9atW6d4e3tXWW779u2VV155xSjtnnvuUebOnVvpNREREcpTTz2lP961a5fi4OCgJCUl6dM++ugjxcvLSykqKjJZxoEDBxS+9TMyMvRpJ06cEGlXrlwxqv+OHTuUVq1aKe7u7sqQIUOUvLw8Zf369UpYWJji4+OjTJs2TSktLVXdb26LwAwCpCQ+NZdi49PEuzUpLi6mY8eOUd++ffVpDg4O4jguLq7Ka9nMERYWJkbIAwYMoLNnzxqd79mzJ3377beUmJgoFpIcOHCALl26RA8//LDJ8rgeJ0+epPHjx+vTuA4dO3akwMBAfRqP+rOzsyt8XnXhhS0rVqygLVu20O7du+nHH3+kQYMG0a5du8Rr48aN9PHHH9O2bdvu6nOAecAMAqRj29HrtOHgNcorKqV6rk40ukcYDe0WYpXPSktLE6YGQzFk+PjChQuVXte6dWtau3YtderUibKysujtt98W4swCyjZq5v3336eJEyeKYycnJ/EQWLNmDd1///0my/zkk0+obdu2ohzDVaGm6qY7dzewf/RHH31E4eHh4njo0KFCoJOTk8nT01PY2Hv37i0eMsOGDburzwJ3BmINpIJH0izUPBIN9fWgtLwicdwlzJfCG3iSrRAVFSVeOlhgWWh5JPrqq6/qxfrgwYNidM0j8J9//pmmTJkibNaGI3mmoKCAPv/8c5o/f36tfQeesNQJte4hwLZ1FmrDNN2ycmBdINZAKpKzC8WImoXawUFDAfVcKSEjX6RbQ6wDAgLEUmkeTRrVIzlZTOqZC0/4denShf7880+9+L700kv09ddfiwlChkfhbObgUXh5sWZTA5slePLQEK5Dec8UXV2rUz/+68FUnQ3hCVJTaVqt1uzPATUHNmsgFYFebsL0wSNqrVYR73zM6dbAxcWFunbtSvv27dOnsTjxseHI2RwxPH36tD6oEZsY+MWmD0P4wWBK/NgEwh4iDRo0MErnOnC5hqPbPXv2CE8UNlNUheED6PLly2Z/F1A3QKyBVPDomW3UPKLjETW/87E1TSDsYse25E8//ZTOnz9PkyZNory8PBo3bpw+D49458yZoz9+5ZVXhCsei+Dx48fpySefpGvXrtH//d//ifMspr169RI+0Txxd+XKFeGbvWHDBjGJZwiPxtlEorvWEJ6MZFEeNWoUnTp1iv7zn//QvHnzhDnF1dW1yu81e/ZsYXfnScpFixaJtKNHj4pJVWB7wAwCpIMnE9lGzaYPHlFb21bNk2epqam0YMECMWkXEREhvCMMJ/Z4YYrhKDkjI4MmTJgg8vv6+orROftBG4522cuCBX7kyJGUnp4u7Navv/46PfPMM0afzxOVPAlpykuER+I7d+4UDxAeZderV4/GjBkjHhZ3gs0ufA3/9bBkyRLh+TF9+vRKvVFA3aJh/706rgOwAwoLC8XosVmzZhVW8oHahUfy7MXBDxTeIMBa4De3LDCDAACABECsAQBAAmCzBsDOeOCBB4SfOpALjKwBAEACINagVsGIzn7Ab21ZINagVtCtfONVeMA+0P3W5Vc9gpoBmzWoFdgfmN3EdCvtOO4E9uhT74iahZp/a/7NsbO5ZYCfNag1uKvxIpHMzMy6rgqoBVioOT4JHsqWAWINah2Ok8FxMYB6YdMHRtSWBWINAAASgAlGAACQAIg1AABIAMQaAAAkAGINAAASALEGAAAJgFgDAIAEQKwBAEAC/j+BPHaZSLWJZQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "(
,\n", " [])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spot = analysis.SpotDiagram(asphere)\n", "spot.view()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see that the rays now focus much closer to the optical axis and that the spot size has reduced significantly." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Conclusions:\n", "\n", "- This tutorial introduced the even asphere surface type.\n", "- To use an aspheric surface, we simply specify surface_type='even_asphere' and provide the list of aspheric coefficients." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This tutorial used an asphere that had alredy been optimized for minimal wavefront error. We ignored these details here, but future tutorials will elaborate on the asphere optimization process." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "---\n", "## Part 2: Freeform Surfaces\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "nbsphinx-toctree" ] }, "source": [ "### September 2024" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This tutorial demonstrates how freeform surfaces can be modeled in Optiland. Several freeform types are supported, including polynomial and Chebyshev surfaces.\n", "\n", "In this tutorial, we will design a unique singlet lens with the following properties:\n", "\n", "- rays from on-axis field point intersect the image plane at y=3mm\n", "- RMS spot size is minimized\n", "\n", "This is rather unique (and perhaps not all that useful), as rays from the on-axis field point in a standard lens are generally centered on the optical axis." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "\n", "from optiland import analysis, optic, optimization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Preparation:\n", "\n", "We start by defining a freeform lens class, which has a freeform as its first surface.\n", "\n", "The freeform surface is defined as:\n", "\n", "$z(x, y) = \\frac{r^2}{R \\cdot (1 + \\sqrt{(1 - (1 + k) \\cdot r^2 / R^2)})} + \\sum\\limits_{i}\\sum\\limits_{j}{C_{i, j} \\cdot x^i \\cdot y^j}$\n", "\n", "where\n", "\n", "- $x$ and $y$ are the local surface coordinates\n", "- $r^2 = x^2 + y^2$\n", "- $R$ is the radius of curvature\n", "- $k$ is the conic constant\n", "- $C_{i, j}$ is the polynomial coefficient for indices $i, j$" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "class Freeform(optic.Optic):\n", " def __init__(self):\n", " super().__init__()\n", "\n", " # add surfaces\n", " self.surfaces.add(index=0, radius=np.inf, thickness=np.inf)\n", "\n", " # ======== Add polynomial freeform here =====================================\n", " self.surfaces.add(\n", " index=1,\n", " radius=100,\n", " thickness=5,\n", " surface_type=\"polynomial\", # <-- surface_type='polynomial'\n", " is_stop=True,\n", " material=\"SF11\",\n", " coefficients=[],\n", " )\n", " # ===========================================================================\n", "\n", " self.surfaces.add(index=2, thickness=100)\n", " self.surfaces.add(index=3)\n", "\n", " # add aperture\n", " self.set_aperture(aperture_type=\"EPD\", value=25)\n", "\n", " # add field\n", " self.fields.set_type(field_type=\"angle\")\n", " self.fields.add(y=0)\n", "\n", " # add wavelength\n", " self.wavelengths.add(value=0.55, is_primary=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We simply need to specify the surface type as 'polynomial' to make the first surface a freeform. Note that we did not pass coefficients to the surface, which implies all coefficients will be zero.\n", "\n", "Let's generate and view the starting point lens, which will simply be spherical, as the freeform coefficients are all zero." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(
, )" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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vzy70O8111wjPT095X5KAAAANY1QBXisSnXttddm96lWAQAAlB9zqgAPWb58uZx22mlmDlwsFpNQKCQtLS1mn7lwAAAA5UGoctGTUxWNRqXWfm79mYPBICfnFWznnXc2F3djEQ1YqGy8x7yF4+UtHC/v4Zh5Sy0fr2gmE1gZoRhClYt1cnrllVeW+6kAAAAAqJCMEIlEit5flxordtWYZDJpKgA6rKqWkrj+zJ/73OfkT3/6k6l+oLJxvLyHY+YtHC9v4Xh5D8fMW2r5eKUyUy705/b5irejoFLlor8snaNSa+LxuFn8NxwOmwsqG8fLezhm3sLx8haOl/dwzLyl1o9XZJQKlYXufwAAAAAwAYQqAAAAAJgAQhUMnUP2rW99y2xR+The3sMx8xaOl7dwvLyHY+YtHK+x0agCAAAAACaAShUAAAAATAChCgAAAAAmgFAFAAAAABNAqAIAAACACSBU1bgPPvhALrjgAjniiCNkr732ks9//vNy4403mkXe7N5880355je/KXvuuadZUfv2228v23OGyN133y2HH364OR7HH3+8vPLKK+V+ShCR2267Tb7+9a/LvvvuK5/5zGfkxz/+sSxfvtzxmGg0Kv/+7/8uBx54oOyzzz5y+umnS09PT9meM3J+/etfy6677iq/+MUvsrdxvCrPmjVr5JxzzjHHRP/f+spXviKvvvpq9n7tv3XDDTfIZz/7WXP/d77zHXnvvffK+pxrVSKRkOuvv95xjnHzzTebY2TheJXX888/Lz/60Y/kkEMOMX//Hn30Ucf9pRyfDRs2yE9/+lPZb7/9ZP/99zfnlYODg1JrCFU1Tk/49A1z1llnye9//3s59dRT5Y9//KNcd9112cf09/fL9773PZkzZ47ccccd8v3vf1/+4z/+Q+69996yPvda9Ze//EWuvPJK09r0t7/9rSxcuFBOOeUUWbduXbmfWs3T/5yOOuooE670PaSrz+t7Z2hoKPuYK664Qh577DG55JJLzPto7dq15kQd5bV06VLzN23bbbd13M7xqiwbN26UE088UQKBgPzyl780HzDpCWFLS0v2Mfqh31133SVnnnmmCcqRSMT8jdSAjOmlx+IPf/iD/OQnP5F77rnHHIff/OY35nzD/hiOV/no/0/6d++MM84oeH8px0c/5Hj77bfN/3tXXXWVvPDCC/Lzn/9cao62VAfsbr/99tQRRxyR3b/nnntSn/70p1OxWCx729VXX5068sgjy/QMa9vXv/711CWXXJLdTyQSqUMOOSR12223lfV5Id+6detSn/jEJ1LPPfec2e/r60vtvvvuqYcffjj7mHfeecc85qWXXirjM61tAwMDqS9+8Yupv/3tb6lvfetbqcsvv9zczvGqPPp/z4knnlj0/mQymTr44INTv/nNb7K36XHcY489Ug899NA0PUtYfvCDH6TOP/98x22nnXZa6qc//am5zvGqLPq37ZFHHsnul3J83n77bfN1S5cuzT7mySefTO26666pNWvWpGoJlSrk0cqU/VO/l156ST72sY9JMBjM3rbHHnvIu+++az41xPTRYZmvv/667L777tnbfD6f7LbbbuY4ofLeS8p6P7322mumemU/fltttZXMnj2b41dGOrxPh7XYj4vieFUerRp+5CMfMZ+q6xDbY489Vu67777s/StXrjTDM/VvoqWpqUl23HFHefnll8v0rGvXzjvvLM8884w5X1BvvPGGvPjii2bouuJ4VbZSjo/+LWxubpbtt98++xh9vJ6b1NrUhEC5nwAqy4oVK0xZ/oc//GH2Nn1DbbbZZo7HdXR0ZO+zBzBMrfXr15sx6tbv36L77rk7KK9kMmnm5uyyyy6yzTbbZN8v+uGE/gfkPn7M0ymPP//5z+aDCh2S5MbxqsyTPB2iftxxx8kJJ5xg5lJdfvnl5jgddthh2ePS2dnp+DqOWXl84xvfkIGBAfnyl79sTrL176LOyTn00EPN/RyvylbK8dFte3u7434dnqvnhrV2DAlVVeqaa64Zs5mEjnPWT13tk391nOxBBx0kX/ziF6fhWQLVXf146623zKRsVKYPP/zQBF+dBxAOh8v9dFACPSnXT8S/+93vmv3tttvOvM80aGmoQmV5+OGH5aGHHpILL7xQtt56a1m2bJmZp9jV1cXxQtUhVFWpr371q6Y73Gjmzp2bvd7d3S0nn3yyKdWfffbZjsfpJxTuJgjWvvvTC0yttrY28fv9BY8Hx6KyAtUTTzxhGhvMmjUre7seIx3C2dfX56h+cPzKQytU+rvXv5cWrQTrJGttgKAfTnG8KsuMGTNk/vz5jtt0/69//au5bh0X/YRcH2s/ZtrUB9Pr6quvNh1qtXOc0qr9qlWrTDMfDVUcr8pWyvHRx/T29jq+TodN6/SQWvs7yZyqKqWlWK1CjXax5khpherb3/62+cTvvPPOMyV6Ow1aepKhbxLLU089JVtuuSVD/6aZHjM9Tk8//bTjk1sds67HCeWlnTQ1UGlLWm0jbP/gQulcEB0WYT9+OmxTKyYcv+n3yU9+0nS1uvPOO7MXrYJoa2HrOsersuhwWmt+jkX3tTut0vecnsjp30T73Ead27HTTjtN+/OtdcPDw3nnFPrBoNVSneNV2Uo5Pvq3UD94eu2117KPefbZZ825ic69qiVUqmqcFaj0PySdR2X/tMH6VEJPMG666Saz7oB+4qRDLZYsWWLar2P66VyCxYsXmxO+HXbYQX73u9+ZlqhjVSYx9TRQ6VAXHVLW0NBg2m9bE3u1Da1udZ0WbYnf2toqjY2Nctlll5n/lDiBmH76+7fmu1n0OGlF2Lqd41VZtDHFv/zLv8itt95qGlVoK3xtVGGNsKirq5NjjjlGbrnlFpk3b545KdQPOHS4ma6fg+mla7vpsdLmLgsWLDDD//QDC123SnG8yk/Xk9L59PZ5i3qc9G+eHrexjo9WirXxyIUXXmjarusH8JdeeqkcfPDB5nG1pE5bAJb7SaB8HnjgATn//PML3qefNNgX/9UTRp0UrCccRx99tJmAivLQZiK6ZpiW5LUEr+vm1NonQpVIF04sRCvAVujVtT10HQ9tkBCLxUwnTe1kZh9agfI56aSTZNGiRWbhZsXxqjyPP/64XHvtteZEUJso6QdN9nnAelqji9hr2NJP0D/60Y+aY6ajKzC9tEmFLhz7yCOPmA9t9X2jQwF1nUVrtAzHq7z0XE+nf7jp8Ez9ALeU46OL/1566aXmvalB+YADDjDnJfrhYi0hVAEAAADABDCnCgAAAAAmgFAFAAAAABNAqAIAAACACSBUAQAAAMAEEKoAAAAAYAIIVQAAAAAwAYQqAAAAAJgAQhUAoGboIsy6SLNedCHLciy0aX1/a4FhAID3Bcr9BAAAGG8wOfnkk4ve/4lPfEJuvPHGovfr137hC1+QpqYmmW677LKLPPTQQ/KLX/xCYrHYtH9/AMDUIFQBADzFCiZujz32mFx88cVy1FFHjfr1DQ0NMmPGDCmHYDBovnc4HCZUAUAVYfgfAMBTrGBiv+hQvl/+8pdywgknyEEHHTSuf++BBx6Q/fffXx5//HE58sgjZa+99pKf/OQnMjw8LA8++KAZMvjpT39aLrvsMkkkEtmv09tvvvlmOffcc2WfffaRww47TP7nf/5Hent75dRTTzW3/fM//7O8+uqrU/BbAABUEkIVAMDTNFDp/KSPf/zj8q//+q+b9G9ogLrrrrvkoosukmuuuUaee+45Oe200+TJJ580Ye2CCy6Qe++9V/77v//b8XVLliwxlbM777xT9t57bxOwzjvvPPmnf/on+e1vfyubb7652U+lUpP00wIAKhGhCgDgWclkUs4++2zx+/1y4YUXSl1d3Sb9OyMjI3LmmWfKdtttZ8LZgQceKH//+9/lnHPOkQULFpiqkzaX0Plcdnvuuad86Utfki222EK++c1vysDAgGy//famWrblllvK8ccfL++884709PRM0k8MAKhEhCoAgGddd9118vLLL5vGD42NjZv870QiEVNVsnR2dspmm21m5l9ZOjo6zNA+u2233dbxNWqbbbZxfI1yfx0AoLrQqAIA4El//vOfzRC7q666ylSKJiIQCIx5m1bBtDJW7DFWlazQbe6vAwBUFypVAADPWbZsmfzsZz+T733ve7LHHnuU++kAAGoclSoAgKesX7/eNJHQ9agOPfRQWbt2reN+nV/V3t5etucHAKg9hCoAgKc88cQTsmrVKnM55JBD8u6fM2eOaZMOAMB0qUvR5xUAUCN0baljjjlGjj322LI+j8WLF5tW8NpgAwDgfcypAgDUFF2HSluk9/f3T/v3fuGFF8z3/q//+q9p/94AgKlDpQoAUDN0yKCuSaXmzp0rPt/0fraoiwx3d3eb6/X19TJjxoxp/f4AgKlBqAIAAACACWD4HwAAAABMAKEKAAAAACaAUAUAAAAAE0CoAgAAAIAJIFQBAAAAwAQQqgAAAABgAghVAAAAADABhCoAAAAAmABCFQAAAADIpvv/4BRGFI6DwBsAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lens = Freeform()\n", "lens.draw(num_rays=5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now define the optimization problem. Let's start with the two operands: 1) RMS spot size and 2) real ray y-intercept." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "problem = optimization.OptimizationProblem()\n", "\n", "# RMS spot size operand\n", "input_data = {\n", " \"optic\": lens,\n", " \"surface_number\": -1,\n", " \"Hx\": 0,\n", " \"Hy\": 0,\n", " \"wavelength\": 0.55,\n", " \"num_rays\": 5,\n", "}\n", "problem.add_operand(\n", " operand_type=\"rms_spot_size\",\n", " target=0,\n", " weight=1,\n", " input_data=input_data,\n", ")\n", "\n", "# Real y-intercept operand\n", "input_data = {\n", " \"optic\": lens,\n", " \"surface_number\": -1,\n", " \"Hx\": 0,\n", " \"Hy\": 0,\n", " \"Px\": 0,\n", " \"Py\": 0,\n", " \"wavelength\": 0.55,\n", "}\n", "problem.add_operand(\n", " operand_type=\"real_y_intercept\",\n", " target=3,\n", " weight=1,\n", " input_data=input_data,\n", ") # <-- target=3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will include the first 9 polynomial coefficients of our surface as variables. We will not add bounds for the coefficients." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u2552\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2555\n", "\u2502 \u2502 Merit Function Value \u2502 Improvement (%) \u2502\n", "\u255e\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n", "\u2502 0 \u2502 12.1244 \u2502 0 \u2502\n", "\u2558\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255b\n", "\u2552\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2555\n", "\u2502 \u2502 Operand Type \u2502 Target \u2502 Min. Bound \u2502 Max. Bound \u2502 Weight \u2502 Eff. Weight \u2502 Value \u2502 Delta \u2502 Contrib. [%] \u2502\n", "\u255e\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n", "\u2502 0 \u2502 rms spot size \u2502 0 \u2502 \u2502 \u2502 1 \u2502 1 \u2502 1.768 \u2502 1.768 \u2502 25.77 \u2502\n", "\u2502 1 \u2502 real y intercept \u2502 3 \u2502 \u2502 \u2502 1 \u2502 1 \u2502 0 \u2502 -3 \u2502 74.23 \u2502\n", "\u2558\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255b\n", "\u2552\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2555\n", "\u2502 \u2502 Variable Type \u2502 Surface \u2502 Value \u2502 Min. Bound \u2502 Max. Bound \u2502\n", "\u255e\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n", "\u2502 0 \u2502 polynomial_coeff \u2502 1 \u2502 0 \u2502 \u2502 \u2502\n", "\u2502 1 \u2502 polynomial_coeff \u2502 1 \u2502 0 \u2502 \u2502 \u2502\n", "\u2502 2 \u2502 polynomial_coeff \u2502 1 \u2502 0 \u2502 \u2502 \u2502\n", "\u2502 3 \u2502 polynomial_coeff \u2502 1 \u2502 0 \u2502 \u2502 \u2502\n", "\u2502 4 \u2502 polynomial_coeff \u2502 1 \u2502 0 \u2502 \u2502 \u2502\n", "\u2502 5 \u2502 polynomial_coeff \u2502 1 \u2502 0 \u2502 \u2502 \u2502\n", "\u2502 6 \u2502 polynomial_coeff \u2502 1 \u2502 0 \u2502 \u2502 \u2502\n", "\u2502 7 \u2502 polynomial_coeff \u2502 1 \u2502 0 \u2502 \u2502 \u2502\n", "\u2502 8 \u2502 polynomial_coeff \u2502 1 \u2502 0 \u2502 \u2502 \u2502\n", "\u2558\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255b\n" ] } ], "source": [ "for i in range(3):\n", " for j in range(3):\n", " problem.add_variable(\n", " lens,\n", " \"polynomial_coeff\",\n", " surface_number=1,\n", " coeff_index=(i, j),\n", " )\n", "\n", "problem.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's optimize and observe the merit function improvement." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "optimizer = optimization.OptimizerGeneric(problem)\n", "res = optimizer.optimize(tol=1e-9)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u2552\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2555\n", "\u2502 \u2502 Merit Function Value \u2502 Improvement (%) \u2502\n", "\u255e\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n", "\u2502 0 \u2502 0.000131646 \u2502 99.9989 \u2502\n", "\u2558\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255b\n", "\u2552\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2555\n", "\u2502 \u2502 Operand Type \u2502 Target \u2502 Min. Bound \u2502 Max. Bound \u2502 Weight \u2502 Eff. Weight \u2502 Value \u2502 Delta \u2502 Contrib. [%] \u2502\n", "\u255e\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n", "\u2502 0 \u2502 rms spot size \u2502 0 \u2502 \u2502 \u2502 1 \u2502 1 \u2502 0.011 \u2502 0.011 \u2502 99.97 \u2502\n", "\u2502 1 \u2502 real y intercept \u2502 3 \u2502 \u2502 \u2502 1 \u2502 1 \u2502 3 \u2502 -0 \u2502 0.03 \u2502\n", "\u2558\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255b\n", "\u2552\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2555\n", "\u2502 \u2502 Variable Type \u2502 Surface \u2502 Value \u2502 Min. Bound \u2502 Max. Bound \u2502\n", "\u255e\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n", "\u2502 0 \u2502 polynomial_coeff \u2502 1 \u2502 8.02064e-09 \u2502 \u2502 \u2502\n", "\u2502 1 \u2502 polynomial_coeff \u2502 1 \u2502 -0.0368829 \u2502 \u2502 \u2502\n", "\u2502 2 \u2502 polynomial_coeff \u2502 1 \u2502 0.00113539 \u2502 \u2502 \u2502\n", "\u2502 3 \u2502 polynomial_coeff \u2502 1 \u2502 3.78297e-10 \u2502 \u2502 \u2502\n", "\u2502 4 \u2502 polynomial_coeff \u2502 1 \u2502 -3.5218e-08 \u2502 \u2502 \u2502\n", "\u2502 5 \u2502 polynomial_coeff \u2502 1 \u2502 2.79246e-08 \u2502 \u2502 \u2502\n", "\u2502 6 \u2502 polynomial_coeff \u2502 1 \u2502 0.00113329 \u2502 \u2502 \u2502\n", "\u2502 7 \u2502 polynomial_coeff \u2502 1 \u2502 -5.5307e-07 \u2502 \u2502 \u2502\n", "\u2502 8 \u2502 polynomial_coeff \u2502 1 \u2502 -5.51327e-08 \u2502 \u2502 \u2502\n", "\u2558\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255b\n" ] } ], "source": [ "problem.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we plot the lens and view a spot diagram." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(
, )" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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Vq9eLc5/L7zwgu75YsZnYGCAfvrTn9JRRx1FRx99tLiuDAaDVGtAVNU4fMHHB8xll11Gv/3tb+miiy6i3//+93TXXXep2/j9fvrud79LHR0d9Mgjj9D3vvc9+q//+i968skny7rvtcpf/vIXuvXWW4W16a9//WuaN28eXXjhhdTb21vuXat5+J/TGWecIcQVH0PcfZ6PnVAopG5zyy230Isvvkg33HCDOI56enrEhTooLxs3bhTntLlz5+rWY7wqi8HBQTrvvPPIYrHQL3/5S3GDiS8IGxoa1G34pt9jjz1Gl156qRDKDodDnCNZIIPSwmPxu9/9jn784x/TE088Icbh4YcfFtcb2m0wXuWD/z/xee8nP/lJzueLGR++ybFlyxbxf++2226jt99+m37+859TzcGW6gBoeeihh1KnnHKKuvzEE0+kjjnmmFQ0GlXX3X777anTTjutTHtY23zta19L3XDDDepyIpFIrV69OrV+/fqy7hfIpre3N3XwwQen3nzzTbE8NDSUOvTQQ1PPPfecus3WrVvFNu+++24Z97S2CQQCqS996Uupv//976lvfvObqZtvvlmsx3hVHvy/57zzzsv7fDKZTK1atSr18MMPq+t4HFesWJF69tlnS7SXQOH73/9+6uqrr9atu/jii1M//elPxWOMV2XB57bnn39eXS5mfLZs2SJet3HjRnWbV155JbVs2bLUvn37UrUEIlUgC45Mae/6vfvuu3TggQeS1WpV161YsYK2b98u7hqC0sFpmR999BEdeuih6jqTyUTLly8X4wQq71hilOPpww8/FNEr7fjNmDGDJk+ejPErI5zex2kt2nFhMF6VB0cN99tvP3FXnVNszzrrLHrqqafU53ft2iXSM/mcqODxeGjRokX03nvvlWmva5clS5bQ66+/Lq4XmE8++YT+8Y9/iNR1BuNV2RQzPnwurK+vp4ULF6rb8PZ8bVJrpQmWcu8AqCx27twpwvI/+MEP1HV8QE2ZMkW3XUtLi/qcVoCBiaW/v1/kqCt/fwVezqzdAeUlmUyK2pylS5fSnDlz1OOFb07wP6DM8UOdTnn485//LG5UcEpSJhivyrzI4xT1s88+m84991xRS3XzzTeLcVqzZo06Ll6vV/c6jFl5+PrXv06BQID+5V/+RVxk83mRa3JOPPFE8TzGq7IpZnx43tzcrHue03P5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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lens.draw(num_rays=5)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "(
,\n", " [])" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spot = analysis.SpotDiagram(lens)\n", "spot.view()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We clearly see that the front surface of our lens appears to be tilted, which forces the on-axis rays to intercept the image plane near y=3mm." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Conclusions:\n", "\n", "- We introduced freeform surfaces in Optiland.\n", "- We optimized a singlet lens for minimal spot size and for an off-axis real ray intercept point.\n", "- Additional freeform surfaces are available and can be found in the optiland.geometries module or the documentation." ] } ], "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.13.2" } }, "nbformat": 4, "nbformat_minor": 2 }