{ "cells": [ { "cell_type": "markdown", "id": "5694bab4-62a7-472f-9f5a-904be0fe1304", "metadata": {}, "source": [ "# Optimizer - cavity" ] }, { "cell_type": "code", "execution_count": 1, "id": "fa52e5ca", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import nexus as nx\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy.signal import find_peaks\n", "\n", "# ------------------------- layers --------------------------\n", "lay_Fe = nx.Layer(id = \"Fe\",\n", " material = nx.Material.Template(nx.lib.material.Fe_enriched),\n", " thickness = 2)\n", "\n", "lay_B4C = nx.Layer(id = \"B4C\",\n", " material = nx.Material.Template(nx.lib.material.B4C),\n", " thickness = 15)\n", "\n", "lay_Pt_bottom = nx.Layer(id = \"Pt bottom\",\n", " material = nx.Material.Template(nx.lib.material.Pt),\n", " thickness = 15)\n", "\n", "# the inital guess for the top layer is 3nm here\n", "# set it to a Var object\n", "lay_Pt_top = nx.Layer(id = \"Pt top\",\n", " material = nx.Material.Template(nx.lib.material.Pt),\n", " thickness = nx.Var(3, min = 0, max = 10, fit = True, id = \"Pt top thickness\"))\n", "\n", "lay_substrate = nx.Layer(id = \"substrate\",\n", " material = nx.Material.Template(nx.lib.material.Si),\n", " thickness = nx.inf)\n", "\n", "sample = nx.Sample(id = \"cavity\",\n", " geometry = \"r\",\n", " layers = [lay_Pt_top,\n", " lay_B4C,\n", " lay_Fe,\n", " lay_B4C,\n", " lay_Pt_bottom,\n", " lay_substrate])\n", "\n", "beam = nx.Beam()\n", "beam.LinearSigma()\n", "\n", "exp = nx.Experiment(beam = beam,\n", " objects = sample,\n", " id = \"my exp\")\n", "\n", "# initialize a reflectivity object used for the optimization\n", "angles = np.linspace(0.01, 0.4, 1001)\n", "\n", "reflectivity = nx.Reflectivity(experiment = exp,\n", " sample = sample,\n", " energy = nx.lib.energy.Fe57,\n", " angles = angles)\n", "\n", "intensity = reflectivity()\n", "\n", "plt.semilogy(angles, intensity)\n", "plt.xlabel('angle (deg)')\n", "plt.ylabel('reflectivity')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 2, "id": "b12016c3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Run Optimizer instance with id: opt id \n", "\n", "Starting optimizer with 1 provided measurement dependencies and 1 fit parameter(s):\n", "\n", " no. | id | initial value | min | max\n", " 0 | Pt top thickness | 3 | 0 | 10\n", "\n", "Using 0 equality constraint(s) on parameter(s):\n", "\n", "Using 0 inequality constraint(s).\n", "\n", "Residual start value: 0.144184\n", "\n", "\n", "Calling NLopt solver with fit method Subplex\n", "\n", "Termination: parameter tolerance reached.\n", "\n", " cost = 2.969164e-04\n", " iterations: 50\n", "\n", "Optimizer finished with 1 fit parameter(s):\n", "\n", " no. | id | fit value | initial value | min | max\n", " 0 | Pt top thickness | 2.06448 | 3 | 0 | 10\n", "\n", "and 0 equality constraint(s) on parameter(s):\n", "\n", "and 0 inequality constraint(s).\n", "\n", "Optimized residual from 0.144184 to 0.0243687\n", "\n", "Optimizer instance finished. id:opt id\n", "\n", "\n" ] }, { "data": { "image/png": "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hfXr1wtHjhwRysvLhSeeeEIwm83Cs88+K98nHr6eA12nFr+eoV5jT4FWwcXia8kg1I///u//FoYNGyZYLBZh1qxZwpdffim/b/78+cKyZcu63f+1114TxowZI1gsFmHChAnC22+/3e39Xq9XePDBB4Xc3FzBarUKF198sXDw4MFYXEq/lLzOtrY24dJLLxWGDBkiJCQkCMXFxcLy5ctVCwf+QrnOyspKAUCvP/Pnzw/6MdWg9DUuXbpUyM/PFywWi1BYWCgsXbpUOHz4cAyvKLBQrrO4uDjgda5atUq+Tzx8bw50nfHyvfnzn/9cGDVqlJCYmChkZGQIc+bMEV555ZVujxcPX8+BrlOrX89Qf574CxSEYvG1NAiCIChXXyIiIiIaPNgjRERERLrFIERERES6xSBEREREusUgRERERLrFIERERES6xSBEREREusUgRERERLrFIERERES6xSBERHHhl7/8JUpLSyN+nLq6OuTk5ODYsWN93mfjxo0wGAxobGyM+PkkLpcLJSUl2LZtm2KPSUQDYxAiIvLzyCOPYPHixSgpKYnp81osFtxzzz247777Yvq8RHrHIERE5NPW1oY///nPuPXWW1V5/htuuAGfffYZ9u3bp8rzE+kRgxARRdW6detw/vnnIz09HVlZWfjGN76BI0eOyO8/duwYDAYD3nzzTSxYsAA2mw1TpkzBpk2buj3Os88+i6KiIthsNixZsgRPPvkk0tPT+33u5557Dueccw4SExMxbtw4/PGPf+z3/u+88w6sVivOPffcXrePGTMGSUlJWLBgQcBps88++wzz5s1DUlISioqKcMcdd8DhcMjvP3PmDK688kokJSVh+PDhePnll1FSUoLVq1fL98nIyMB5552HV155pd9xEpFyGISIKKocDgdWrlyJbdu2YcOGDTAajViyZAm8Xm+3+/385z/HPffcg507d2LMmDH49re/DbfbDQD4/PPP8aMf/Qh33nkndu7ciUsuuQSPPPJIv8/7v//7v3jooYfwyCOPYP/+/Xj00Ufx4IMPYu3atX1+zKefforp06d3u+3EiRO49tprcdVVV2Hnzp34/ve/j/vvv7/bfY4cOYLLL78c3/zmN7F79268+uqr+Oyzz3DbbbfJ97n55ptx+vRpbNy4EW+88QaeeeYZ1NTU9BrDrFmz8Omnn/Z7bUSkIEXPsiciGkBtba0AQNizZ48gCIJQWVkpABCee+45+T779u0TAAj79+8XBEEQli5dKlx55ZXdHueGG24Q0tLS5LdXrVolTJkyRX575MiRwssvv9ztY37zm98Ic+bM6XNsixcvFr73ve91u+2BBx4Qxo8f3+22++67TwAgNDQ0CIIgCLfeeqvwgx/8oNt9Pv30U8FoNArt7e3C/v37BQDC1q1b5fdXVFQIAISnnnqq28c9/fTTQklJSZ9jJCJlsSJERFFVUVGBb3/72xgxYgRSU1PlJuTjx493u9/kyZPlf+fn5wOAXDE5ePAgZs2a1e3+Pd/253A4cOTIEdx6661ISUmR/zz88MPdpuV6am9vR2JiYrfb9u/fj9mzZ3e7bc6cOd3e3rVrF1588cVuz3XZZZfB6/WisrISBw8ehNlsxrRp0+SPGTVqFDIyMnqNISkpCW1tbX2OkYiUZVZ7AEQU36666ioUFxfj2WefRUFBAbxeLyZOnAiXy9XtfgkJCfK/DQYDAPSaPgtWa2srALGvqGeIMZlMfX5cdnY2Ghoawnq+H/7wh7jjjjt6vW/YsGE4dOhQ0I9VX1+PIUOGhDwGIgoPgxARRU1dXR0OHjyIZ599FvPmzQMgNhWHauzYsdi6dWu323q+7S83NxcFBQU4evQobrjhhqCfZ+rUqfjrX//a7bZzzjkH//znP7vd9uWXX3Z7e9q0aSgvL8eoUaP6HL/b7caOHTvkHqTDhw8HDF179+7F1KlTgx4zEUWGU2NEFDUZGRnIysrCM888g8OHD+PDDz/EypUrQ36c22+/He+88w6efPJJVFRU4E9/+hPeffdduXIUyK9+9Ss89thj+MMf/oBDhw5hz549eOGFF/Dkk0/2+TGXXXYZ9u3b1y2g/OhHP0JFRQV++tOf4uDBg3j55Zfx4osvdvu4++67D1988QVuu+027Ny5ExUVFfjHP/4hN0uPGzcOCxcuxA9+8ANs2bIFO3bswA9+8AMkJSX1uoZPP/0Ul156acifIyIKD4MQEUWN0WjEK6+8gu3bt2PixIm466678Pvf/z7kxznvvPOwZs0aPPnkk5gyZQrWrVuHu+66q1c/j7/vf//7eO655/DCCy9g0qRJmD9/Pl588UUMHz68z4+ZNGkSpk2bhtdee02+bdiwYXjjjTfw1ltvYcqUKVizZg0effTRbh83efJkfPzxxzh06BDmzZuHqVOn4qGHHkJBQYF8n5deegm5ubm44IILsGTJEixfvhx2u73bNWzatAlNTU247rrrQv4cEVF4DIIgCGoPgogoVMuXL8eBAwcUX2r+9ttv46c//Sn27t0LozF6vyuePHkSRUVF+OCDD3DxxRcDAJYuXYopU6bgZz/7WdSel4i6Y48QEQ0KTzzxBC655BIkJyfj3Xffxdq1awfcIDEcV155JSoqKnDq1CkUFRUp9rgffvghWltbMWnSJJw5cwb33nsvSkpKcMEFFwAQzxqbNGkS7rrrLsWek4gGxooQEQ0K3/rWt7Bx40a0tLRgxIgRuP322/GjH/1I7WEF7b333sPdd9+No0ePwm63Y+7cuVi9ejWKi4vVHhqRrjEIERERkW6xWZqIiIh0i0GIiIiIdItBiIiIiHSLQYiIiIh0i0GIiIiIdItBiIiIiHSLQYiIiIh0i0GIiIiIdOv/A9+BfIw78AreAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# setup the optimizer\n", "class NexusOptimizer(nx.Optimizer):\n", " def __init__(self, measurements, id):\n", " super().__init__(measurements, id)\n", "\n", " def Residual(self):\n", " # calculate the reflectivity\n", " intensity = reflectivity()\n", " # get the index of the first minimum\n", " \n", " if (len(find_peaks(-intensity)[0]) < 1):\n", " return 1e30 # return large punish value\n", " min_index = find_peaks(-intensity)[0][0]\n", " \n", " # optimize for the intensity at the first minimum position\n", " # actually this is intensity[min_index] - 0 again because the intensity should be minimal\n", " residual = intensity[min_index]\n", " return residual\n", "\n", "# pass the reflectivity object to the optimizer\n", "opt = NexusOptimizer(measurements = [reflectivity],\n", " id = \"opt id\")\n", "\n", "# we use a local gradient-free algorithm here\n", "opt.options.method = \"Subplex\"\n", "\n", "# run the optimization\n", "opt()\n", "\n", "plt.semilogy(angles, reflectivity.result)\n", "plt.xlabel('angle (deg)')\n", "plt.ylabel('reflectivity')\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }