{ "cells": [ { "cell_type": "markdown", "id": "9b894f8a-2121-401f-a7f3-1bf34bf5f55d", "metadata": {}, "source": [ "# Layer" ] }, { "cell_type": "code", "execution_count": 1, "id": "b38f7c51", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Layer\n", " .id: iron oxide layer\n", " .material.id: Fe2O3 hematite\n", " .material.composition: Fe 2.0, O 3.0,\n", " .material.density (g/cm^3) Var.value = 5.25, .min = 0.0, .max = 5.25, .fit: False, .id: \n", " .thickness (nm) Var.value = 1000.0, .min = 0.0, .max = inf, .fit: False, .id: \n", " .roughness (nm, sigma) Var.value = 0.0, .min = 0.0, .max = inf, .fit: False, .id: \n", " .thickness_fwhm (nm) Var.value = 0.0, .min = 0.0, .max = inf, .fit: False, .id: \n", "\n" ] } ], "source": [ "import nexus as nx\n", "import numpy as np\n", "\n", "mat = nx.Material.Template(nx.lib.material.Fe2O3)\n", "\n", "layer = nx.Layer(id = \"iron oxide layer\",\n", " thickness = 1000, # in nanometer\n", " material = mat,\n", " # roughness = 30,\n", " # thickness_fwhm = 50\n", " )\n", "\n", "print(layer)" ] }, { "cell_type": "code", "execution_count": 2, "id": "b4094c22", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Layer\n", " .id: iron oxide layer\n", " .material.id: \n", " .material.composition: Fe 2.0, O 3.0,\n", " .material.density (g/cm^3) Var.value = 6.1, .min = 0.0, .max = 23.0, .fit: False, .id: \n", " .thickness (nm) Var.value = 1000.0, .min = 0.0, .max = inf, .fit: False, .id: \n", " .roughness (nm, sigma) Var.value = 0.0, .min = 0.0, .max = inf, .fit: False, .id: \n", " .thickness_fwhm (nm) Var.value = 0.0, .min = 0.0, .max = inf, .fit: False, .id: \n", "\n", "Layer\n", " .id: iron oxide layer\n", " .material.id: \n", " .material.composition: Fe 2.0, O 3.0,\n", " .material.density (g/cm^3) Var.value = 4.9, .min = 0.0, .max = 23.0, .fit: False, .id: \n", " .thickness (nm) Var.value = 1000.0, .min = 0.0, .max = inf, .fit: False, .id: \n", " .roughness (nm, sigma) Var.value = 0.0, .min = 0.0, .max = inf, .fit: False, .id: \n", " .thickness_fwhm (nm) Var.value = 0.0, .min = 0.0, .max = inf, .fit: False, .id: \n", "\n" ] } ], "source": [ "layer = nx.Layer(id = \"iron oxide layer\",\n", " thickness = 1000, # in nanometer\n", " # roughness = 30,\n", " # thickness_fwhm = 50\n", " composition = [[\"Fe\", 2], [\"O\", 3]],\n", " density = 5.3\n", " )\n", "\n", "layer.material.density = 6.1\n", "\n", "print(layer)\n", "\n", "layer.density = 4.9\n", "\n", "print(layer)" ] }, { "cell_type": "code", "execution_count": 3, "id": "4a4605b1-a22f-44b1-9629-3241e2a196f4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(0.9999952911043145+1.4925088081386838e-07j)\n" ] } ], "source": [ "# refractive index of a layer\n", "ref_index = layer.ElectronicRefractiveIndex(energy = 14412.5)\n", "\n", "print(ref_index)" ] }, { "cell_type": "code", "execution_count": 4, "id": "dc1596cf-303b-41c1-9315-7f538fada1b1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.1583868640530339\n" ] } ], "source": [ "#critical angle at 16 keV\n", "ang = layer.CriticalAngle(energy=16e3)\n", "\n", "print(ang * 180/np.pi)" ] } ], "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 }