{ "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.143937\n", "\n", "\n", "Calling NLopt solver with fit method Subplex\n", "\n", "Termination: parameter tolerance reached.\n", "\n", " cost = 2.922241e-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.06487 | 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.143937 to 0.0241754\n", "\n", "Optimizer instance finished. id:opt id\n", "\n", "\n" ] }, { "data": { "image/png": "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", "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.12.0" } }, "nbformat": 4, "nbformat_minor": 5 }