{ "cells": [ { "cell_type": "markdown", "id": "4879c2ee-e89d-42db-974e-a9572851ef20", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "# Analysing non-spin flip data (mark2)\n", "`refnx` recently added the ability to perform polarised neutron reflectometry analysis in v0.1.51. Here we analyse datasets that uses magnetic films and PNR as an extra contrast. The datasets of interest have the structure:\n", "\n", "`Si | SiO2 | Permalloy | Au | 2-mercaptoethanol | D2O`" ] }, { "cell_type": "code", "execution_count": 1, "id": "e30f7cbb-3f89-4c85-98eb-88a9d63af161", "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "# some necessary imports\n", "from importlib import resources\n", "\n", "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "import refnx\n", "from refnx.analysis import Parameter, Objective, CurveFitter, GlobalObjective\n", "from refnx.reflect import (\n", " SLD,\n", " Slab,\n", " Structure,\n", " MagneticSlab,\n", " PolarisedReflectModel,\n", " SpinChannel,\n", ")\n", "from refnx.dataset import Data1D" ] }, { "cell_type": "code", "execution_count": 2, "id": "bbed1272-9a1b-4c3c-8b13-4af3cc79ad55", "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "# create datasets from the NSF PNR data\n", "with resources.path(refnx.reflect) as pth:\n", " dd = \"c_PLP0007882.dat\"\n", " uu = \"c_PLP0007885.dat\"\n", "\n", " file_path_uu = pth / f\"tests/{uu}\"\n", " file_path_dd = pth / f\"tests/{dd}\"\n", "\n", "data_uu = Data1D(file_path_uu)\n", "data_dd = Data1D(file_path_dd)" ] }, { "cell_type": "code", "execution_count": 3, "id": "42b8e1c0-fb82-4464-bc83-1361154085ac", "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "# create SLD (Scattering Length Density) objects for each of the materials\n", "si = SLD(2.07, name=\"Si\")\n", "sio2 = SLD(3.47, name=\"SiO2\")\n", "au = SLD(4.66, name=\"Au\")\n", "mercapto = SLD(3.49, name=\"2-mercaptoethanol\")\n", "d2o = SLD(6.35, name=\"d2o\")\n", "\n", "py = SLD(9.0, name=\"permalloy\")" ] }, { "cell_type": "code", "execution_count": 4, "id": "0f72701b-509e-4cb0-a1a9-b72895a6ad5e", "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "# Now make Slabs that describe each layer. These can either be made from SLD objects,\n", "# or by using the `Slab` constructor directly.\n", "\n", "# sio2 slab has a thickness of 20 and roughness of 4 with the Si fronting medium\n", "sio2_l = sio2(20, 4)\n", "\n", "au_l = au(215, 4)\n", "mercapto_l = mercapto(8, 4)\n", "d2o_l = d2o(0, 4)" ] }, { "cell_type": "markdown", "id": "41824d88-3b7c-469f-808d-f714f8fad19f", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "Now let's make the Permalloy layer. To do this we need to utilise a `MagneticSlab` Component. The value of 1.75 represents a magnetic SLD correction of $1.75\\times 10^{-6}\\\\A^{-2}$. The value of `thetaM=90` (degrees) represents the angle of the magnetic moment in the plane of the sample. For the applied magnetic field to be the plane of the sample `Aguide=270` or `90`. For the magnetic moment to be parallel or antiparallel to the applied field `thetaM=90` or `270` degrees respectively." ] }, { "cell_type": "code", "execution_count": 5, "id": "b3b7ac26-f168-463f-aa78-9ac41b8e54fd", "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "# now make the Py layer\n", "py_thickness = Parameter(50, name=\"Py thickness\")\n", "py_roughness = Parameter(5, name=\"Py roughness\")\n", "\n", "\n", "py_l = MagneticSlab(py_thickness, py, py_roughness, 1.75, 90.0, name=\"Py slab\")" ] }, { "cell_type": "code", "execution_count": 6, "id": "e59f21af-9882-4477-bf22-dd2099ea5df8", "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "s = si | sio2_l | py_l | au_l | mercapto_l | d2o_l" ] }, { "cell_type": "code", "execution_count": 7, "id": "2866af82-074d-4e97-be9b-0290597ad1eb", "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "# Note that we're using the same structure to describe both spin channels.\n", "model_dd = PolarisedReflectModel(s, spin=SpinChannel.DOWN_DOWN, Aguide=270)\n", "model_uu = PolarisedReflectModel(s, spin=SpinChannel.UP_UP, Aguide=270)" ] }, { "cell_type": "code", "execution_count": 8, "id": "c9d39562-d2e2-4d85-ac8c-86d26047ca7c", "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "objective_dd = Objective(model_dd, data_dd)\n", "objective_uu = Objective(model_uu, data_uu)\n", "\n", "global_objective = GlobalObjective([objective_dd, objective_uu])" ] }, { "cell_type": "code", "execution_count": 9, "id": "a50782f1-4a2f-4db5-b059-d10002c159cc", "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "# select the parameters to be fitted and their bounds\n", "model_uu.scale.setp(vary=True, bounds=(0.9, 1.1))\n", "model_uu.bkg.setp(vary=True, bounds=(1e-7, 5e-6))\n", "model_dd.scale.setp(vary=True, bounds=(0.9, 1.1))\n", "model_dd.bkg.setp(vary=True, bounds=(1e-7, 5e-6))\n", "\n", "sio2_l.thick.setp(vary=True, bounds=(10, 25))\n", "sio2_l.rough.setp(vary=True, bounds=(1, 8))\n", "\n", "py_thickness.setp(vary=True, bounds=(38, 55))\n", "py_roughness.setp(vary=True, bounds=(1, 8))\n", "py.real.setp(vary=True, bounds=(9, 9.5))\n", "py_l.rhoM.setp(vary=True, bounds=(1.5, 3.0))\n", "\n", "au_l.thick.setp(vary=True, bounds=(200, 240))\n", "au_l.rough.setp(vary=True, bounds=(1, 8))\n", "au.real.setp(vary=True, bounds=(4.5, 4.66))\n", "\n", "mercapto_l.thick.setp(vary=True, bounds=(5, 15))\n", "mercapto_l.rough.setp(vary=True, bounds=(1, 8))\n", "mercapto.real.setp(vary=True, bounds=(3, 4))\n", "\n", "d2o_l.rough.setp(vary=True, bounds=(1, 8))\n", "d2o.real.setp(vary=True, bounds=(6.2, 6.36))" ] }, { "cell_type": "code", "execution_count": 10, "id": "30855431-e791-43a8-84ac-b68940b67587", "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "-1271.4413157228305: : 62it [01:21, 1.31s/it]\n" ] } ], "source": [ "fitter = CurveFitter(global_objective)\n", "fitter.fit(\"differential_evolution\", seed=1);" ] }, { "cell_type": "code", "execution_count": 11, "id": "eb94add9-fa9b-42d9-9734-15e1ceb75879", "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "image/png": "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RLyWEiERERHxWkqERERExGspERIRERGvpURIREREvJYSIREREfFaSoREREp9/vnn9OrVi5EjR7J37956X3/dddfRsWNHbrzxxiaITkSagtYaExEpNWDAABISEti5cyfr1q3jvffeq9f1K1euJC8vj0WLFvHhhx82UZQi4kpqERIRKRUSEkLfvn2JiorCz8+v3tePHz+eDh06NEFkItJUlAiJiMdLTU3ljjvuICIiAj8/P3r27Mm9995LVlZWna6fPXs2f/zjH+t0Xp8+fbjrrruYP39+I6MWkZZAiZCIeLQDBw4wYsQI9u7dy7vvvsu+fftYsGABK1asYPTo0Zw8efK819tsNj7//HOuvfba855XUlLCv/71L373u9+Rn59Px44dq5wTExPD4MGDq/ykpaU16jOKiPv4uDsAEZHziY+Px8/Pj6+++oo2bdoA0KNHD4YNG0afPn34v//7P1588cUar//+++/x9fUlNjb2vM9ZsGABvXv3Jj4+nr/+9a8cOHCAPn36VDonMTGx0Z9HRDyLWoRExGOdPHmS//3vf/z61792JkFlwsPD+elPf8rixYs535iPTz/9lKlTp2IYxnmf86c//Ym//e1vdO/enaCgICU9Il5CiZCIeKy9e/ficDgYNGhQtccHDRrEqVOnOH78eI33+OSTT2rtFnv00Ue57rrrnM+Jjo5m+/bt9Y534sSJ3HTTTSxdupTu3buzbt26et9DRJqXusZExOPVNstHTSO8du3aRVpaGpdffnmN1yYlJfHWW2+xa9cu577Bgwc3qEXo66+/rvc1IuJeSoRExGP17dsXwzDYtWsX1113XZXju3btonPnzgQHB1d7/aeffsqkSZMICAio8Rn3338/2dnZdO/e3bnPbrcTGRnZ6PhFxPOpa0xEPFZISAiTJk3ihRde4MyZM5WOpaen8/bbbzNr1qwar//kk0/4yU9+UuPxzz//nC1btrBt2zYSExOdP6+88gqHDx/m1KlTrvooIuKhNLO0iHi0vXv3cvHFFzNo0CD+/Oc/06tXL3bu3MmDDz6Ij48Pq1evpn379lWuy8zMpHv37qSlpREaGlrleHFxMYMHD+aOO+7g97//faVjhw8fpmfPnnz77beMHz++qT6aiHgAtQiJiEfr168fmzZtonfv3tx888307NmTyZMn079/f9auXVttEgTw2WefMXLkyGqTIIDnnnuO7Oxs7r777irHIiMjadu2rUaOiXgBtQiJSIvz6KOP8uyzz7J8+XJGjRpV7TnXXnstY8aM4Xe/+10zRyciLYmKpUWkxXn88ceJiopi/fr1jBw5EoulauP2mDFjuPXWW90QnYi0JGoREhEREa+lGiERERHxWkqERERExGspERIRERGvpURIREREvJYSIREREfFaSoRERETEaykREhEREa+lREhERES8lhIhERER8VpKhERERMRrKRESERERr/X/s1YR6M64bqkAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "plt.scatter(data_dd.x, data_dd.y, label=\"dd\", s=4)\n", "plt.plot(data_dd.x, objective_dd.generative())\n", "\n", "plt.scatter(data_uu.x, data_uu.y, label=\"uu\", s=4)\n", "plt.plot(data_uu.x, objective_uu.generative())\n", "\n", "plt.ylabel(\"R\")\n", "plt.xlabel(\"Q / $\\\\AA^{-1}$\")\n", "plt.yscale(\"log\")\n", "plt.xscale(\"log\")\n", "plt.legend();" ] } ], "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.13.0" } }, "nbformat": 4, "nbformat_minor": 5 }