{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Constrained Optimization" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "\n", "from optiland import optic, optimization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define a starting lens:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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U9cmfNedzUTrtpvu81VwkNoGo3rqmn1bqIftpomIiIio6zAYtYPdbtoJNt6pa96gY01tMzTf3X3tpuNZiL5RiE2XVE1ds4JOLA0EQm16okREREREawODURNJU0cQ+PH/5Zm6Zq3fqdduOpzwbyK64SKzquPZV8es7mSASB+rOkREREREq4jBqJm0PKTjPzCrO70bITZc6J+6FvNUddhumoiIiIiobRiMmkgMXQjtvU+0exhERERERLQEud0DICIiIiIiajcGIyIiIiIi6noMRkRERERE1PUYjIiIiIiIqOsxGBERERERUddjMCIiIiIioq7HYERERERERF2PwYiIiIiIiLreutvgVQgBAJifn2/zSIiIiIiIqJ3sTGBnhMWsu2BkP/mztm1t80iIiIiIiKgTzM/PI5lMLnqOJJYTn9YQwzBw8uRJJBIJSJLU7uGQRy6Xw/DwMI4fP47e3t52D4c6DF8f1AhfG7QYvj6oEb42CDArRfPz89i4cSNkefFVROuuYiTLMjZv3tzuYdAient7+QuKGuLrgxrha4MWw9cHNcLXBi1VKbKx+QIREREREXU9BiMiIiIiIup6DEbUMuFwGB/96EcRDofbPRTqQHx9UCN8bdBi+PqgRvjaoJVad80XiIiIiIiIVooVIyIiIiIi6noMRkRERERE1PUYjIiIiIiIqOsxGBERERERUddjMKKW+C//5b9g//79iMVi6Ovrq3vOsWPH8OY3vxmxWAwDAwP44Ac/iEql0tqBUlt84QtfwJYtWxCJRHDppZfiRz/6UbuHRG3w/e9/H29961uxceNGSJKEhx9+2He7EAIf+chHsGHDBkSjUVx11VV4/vnn2zNYaqmDBw/i1a9+NRKJBAYGBnDdddfh8OHDvnNKpRJuueUWpNNp9PT04Prrr8epU6faNGJqlS9+8Yu44IILnE1c9+3bh3/4h39wbufrglaCwYhaQlVV3HDDDXj/+99f93Zd1/HmN78ZqqriySefxF/91V/hq1/9Kj7ykY+0eKTUan/zN3+DAwcO4KMf/Sh+8pOf4MILL8TVV1+N8fHxdg+NWiyfz+PCCy/EF77whbq3//mf/zn+63/9r7j//vvxwx/+EPF4HFdffTVKpVKLR0qt9sQTT+CWW27BD37wAzzyyCPQNA1vfOMbkc/nnXNuv/12/O3f/i2++c1v4oknnsDJkyfxtre9rY2jplbYvHkzPv7xj+Ppp5/Gj3/8Y7zhDW/Ab/7mb+LnP/85AL4uaIUEUQs98MADIplM1hz/+7//eyHLshgbG3OOffGLXxS9vb2iXC63cITUanv37hW33HKL872u62Ljxo3i4MGDbRwVtRsA8e1vf9v53jAMMTQ0JD7xiU84x2ZnZ0U4HBb/43/8jzaMkNppfHxcABBPPPGEEMJ8LSiKIr75zW865zz33HMCgHjqqafaNUxqk1QqJf77f//vfF3QirFiRB3hqaeewvnnn4/BwUHn2NVXX41cLud86kPrj6qqePrpp3HVVVc5x2RZxlVXXYWnnnqqjSOjTvPiiy9ibGzM91pJJpO49NJL+VrpQnNzcwCA/v5+AMDTTz8NTdN8r49du3ZhZGSEr48uous6HnroIeTzeezbt4+vC1qxYLsHQAQAY2NjvlAEwPl+bGysHUOiFpicnISu63X/2x86dKhNo6JOZP8eqPda4e+I7mIYBm677Ta85jWvwXnnnQfAfH2EQqGaNax8fXSHn/3sZ9i3bx9KpRJ6enrw7W9/G+eccw6eeeYZvi5oRVgxotN25513QpKkRb/45paIiFbTLbfcgmeffRYPPfRQu4dCHWLnzp145pln8MMf/hDvf//7ceONN+IXv/hFu4dFaxArRnTa7rjjDtx0002LnrNt27ZlPdbQ0FBNJzK7a8zQ0NBpjY86XyaTQSAQqOkQdOrUKf53Jx/79XDq1Cls2LDBOX7q1Cm86lWvatOoqNVuvfVWfPe738X3v/99bN682Tk+NDQEVVUxOzvrqw7wd0l3CIVC2L59OwBgz549+Nd//Vd87nOfw+/8zu/wdUErwooRnbZsNotdu3Yt+hUKhZb1WPv27cPPfvYzXyeyRx55BL29vTjnnHOa9RSozUKhEPbs2YPHHnvMOWYYBh577DHs27evjSOjTrN161YMDQ35Xiu5XA4//OEP+VrpAkII3Hrrrfj2t7+N733ve9i6davv9j179kBRFN/r4/Dhwzh27BhfH13IMAyUy2W+LmjFWDGiljh27Bimp6dx7Ngx6LqOZ555BgCwfft29PT04I1vfCPOOeccvPOd78Sf//mfY2xsDB/+8Idxyy23IBwOt3fw1FQHDhzAjTfeiEsuuQR79+7FZz/7WeTzebz73e9u99CoxRYWFnDkyBHn+xdffBHPPPMM+vv7MTIygttuuw1/+qd/ih07dmDr1q24++67sXHjRlx33XXtGzS1xC233IIHH3wQ3/nOd5BIJJz1IclkEtFoFMlkEu95z3tw4MAB9Pf3o7e3Fx/4wAewb98+XHbZZW0ePTXTXXfdhTe96U0YGRnB/Pw8HnzwQTz++OP4X//rf/F1QSvX7rZ41B1uvPFGAaDm65//+Z+dc1566SXxpje9SUSjUZHJZMQdd9whNE1r36CpZT7/+c+LkZEREQqFxN69e8UPfvCDdg+J2uCf//mf6/6euPHGG4UQZsvuu+++WwwODopwOCyuvPJKcfjw4fYOmlqi3usCgHjggQecc4rFovhP/+k/iVQqJWKxmPit3/ot8corr7Rv0NQSv/d7vydGR0dFKBQS2WxWXHnlleKf/umfnNv5uqCVkIQQovVxjIiIiIiIqHNwjREREREREXU9BiMiIiIiIup6DEZERERERNT1GIyIiIiIiKjrMRgREREREVHXYzAiIiIiIqKux2BERERERERdj8GIiIiIiIi6HoMRERERERF1PQYjIiIiIiLqegxGRERERETU9RiMiIiIiIio6/3/FUYJVOzoE/oAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lens = optic.Optic()\n", "\n", "# add surfaces\n", "lens.surfaces.add(index=0, thickness=np.inf)\n", "lens.surfaces.add(index=1, thickness=7, radius=50, material=\"N-KF9\", is_stop=True)\n", "lens.surfaces.add(index=2, thickness=30, radius=-1000)\n", "lens.surfaces.add(index=3)\n", "\n", "# set aperture\n", "lens.set_aperture(aperture_type=\"EPD\", value=15)\n", "\n", "# add field\n", "lens.fields.set_type(field_type=\"angle\")\n", "lens.fields.add(y=0)\n", "lens.fields.add(y=5)\n", "\n", "# add wavelength\n", "lens.wavelengths.add(value=0.55, is_primary=True)\n", "\n", "# draw lens\n", "lens.draw(num_rays=5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define optimization problem:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "problem = optimization.OptimizationProblem()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Add operands (targets for optimization):" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# 1. add focal length operand\n", "input_data = {\"optic\": lens}\n", "problem.add_operand(operand_type=\"f2\", target=50, weight=1, input_data=input_data)\n", "\n", "# 2. add seidel coefficient 1 operand\n", "input_data = {\"optic\": lens, \"seidel_number\": 1}\n", "problem.add_operand(operand_type=\"seidel\", target=0, weight=1, input_data=input_data)\n", "\n", "# 3. add RMS spot size operand\n", "input_data = {\n", " \"optic\": lens,\n", " \"surface_number\": -1,\n", " \"Hx\": 0,\n", " \"Hy\": 0,\n", " \"num_rays\": 5,\n", " \"wavelength\": 0.55,\n", " \"distribution\": \"hexapolar\",\n", "}\n", "\n", "problem.add_operand(\n", " operand_type=\"rms_spot_size\",\n", " target=0,\n", " weight=1,\n", " input_data=input_data,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define variables - constrain first radius:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "problem.add_variable(lens, \"radius\", surface_number=1, min_val=25, max_val=100)\n", "problem.add_variable(lens, \"radius\", surface_number=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let thickness to image surface vary:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "problem.add_variable(lens, \"thickness\", surface_number=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Check initial merit function value and system properties:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "╒════╤════════════════════════╤═══════════════════╕\n", "│ │ Merit Function Value │ Improvement (%) │\n", "╞════╪════════════════════════╪═══════════════════╡\n", "│ 0 │ 1677.84 │ 0 │\n", "╘════╧════════════════════════╧═══════════════════╛\n", "╒════╤════════════════╤══════════╤══════════╤═════════════╤═════════════╤════════════════════╕\n", "│ │ Operand Type │ Target │ Weight │ Value │ Delta │ Contribution (%) │\n", "╞════╪════════════════╪══════════╪══════════╪═════════════╪═════════════╪════════════════════╡\n", "│ 0 │ f2 │ 50 │ 1 │ 90.8039 │ 40.8039 │ 99.2323 │\n", "│ 1 │ seidel │ 0 │ 1 │ -0.00851671 │ -0.00851671 │ 4.32307e-06 │\n", "│ 2 │ rms spot size │ 0 │ 1 │ 3.58907 │ 3.58907 │ 0.767738 │\n", "╘════╧════════════════╧══════════╧══════════╧═════════════╧═════════════╧════════════════════╛\n", "╒════╤═════════════════╤═══════════╤═════════╤══════════════╤══════════════╕\n", "│ │ Variable Type │ Surface │ Value │ Min. Bound │ Max. Bound │\n", "╞════╪═════════════════╪═══════════╪═════════╪══════════════╪══════════════╡\n", "│ 0 │ radius │ 1 │ 50 │ 25 │ 100 │\n", "│ 1 │ radius │ 2 │ -1000 │ nan │ nan │\n", "│ 2 │ thickness │ 2 │ 30 │ nan │ nan │\n", "╘════╧═════════════════╧═══════════╧═════════╧══════════════╧══════════════╛\n" ] } ], "source": [ "problem.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define optimizer:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "optimizer = optimization.OptimizerGeneric(problem)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Run optimization:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ " message: CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH\n", " success: True\n", " status: 0\n", " fun: 0.00469683088966835\n", " x: [-7.492e-01 3.976e+00 3.419e+00]\n", " nit: 29\n", " jac: [ 5.230e-02 -2.422e-04 -2.830e-04]\n", " nfev: 140\n", " njev: 35\n", " hess_inv: <3x3 LbfgsInvHessProduct with dtype=float64>" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "optimizer.optimize(tol=1e-6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Print merit function value and system properties after optimization:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "╒════╤════════════════════════╤═══════════════════╕\n", "│ │ Merit Function Value │ Improvement (%) │\n", "╞════╪════════════════════════╪═══════════════════╡\n", "│ 0 │ 0.00469683 │ 99.9997 │\n", "╘════╧════════════════════════╧═══════════════════╛\n", "╒════╤════════════════╤══════════╤══════════╤════════════╤══════════════╤════════════════════╕\n", "│ │ Operand Type │ Target │ Weight │ Value │ Delta │ Contribution (%) │\n", "╞════╪════════════════╪══════════╪══════════╪════════════╪══════════════╪════════════════════╡\n", "│ 0 │ f2 │ 50 │ 1 │ 50.0004 │ 0.000354064 │ 0.00266906 │\n", "│ 1 │ seidel │ 0 │ 1 │ -0.0556716 │ -0.0556716 │ 65.9876 │\n", "│ 2 │ rms spot size │ 0 │ 1 │ 0.0399672 │ 0.0399672 │ 34.0097 │\n", "╘════╧════════════════╧══════════╧══════════╧════════════╧══════════════╧════════════════════╛\n", "╒════╤═════════════════╤═══════════╤══════════╤══════════════╤══════════════╕\n", "│ │ Variable Type │ Surface │ Value │ Min. Bound │ Max. Bound │\n", "╞════╪═════════════════╪═══════════╪══════════╪══════════════╪══════════════╡\n", "│ 0 │ radius │ 1 │ 25.0839 │ 25 │ 100 │\n", "│ 1 │ radius │ 2 │ 497.581 │ nan │ nan │\n", "│ 2 │ thickness │ 2 │ 44.19 │ nan │ nan │\n", "╘════╧═════════════════╧═══════════╧══════════╧══════════════╧══════════════╛\n" ] } ], "source": [ "problem.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Draw final lens:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lens.draw(num_rays=5)" ] } ], "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 }