{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Solcore - Schrodinger_QW_absorption\n", "\n", "***\n", "\n", "Import libraries" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "from solcore import si, material\n", "from solcore.structure import Layer, Structure\n", "import solcore.quantum_mechanics as QM\n", "from solcore.constants import vacuum_permittivity, q" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we create the materials we need" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "bulk = material(\"GaAs\")(T=293, strained=False)\n", "barrier = material(\"GaAsP\")(T=293, P=0.1, strained=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As well as some of the layers" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "top_layer = Layer(width=si(\"30nm\"), material=bulk)\n", "inter = Layer(width=si(\"3nm\"), material=bulk)\n", "barrier_layer = Layer(width=si(\"15nm\"), material=barrier)\n", "bottom_layer = top_layer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We are going to calculate the absorption coefficient of InGaAs QWs of fixed thickness but different compositions" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "num_comp = 5\n", "comp = np.linspace(0.05, 0.25, num_comp)\n", "colors = plt.cm.jet(np.linspace(0, 1, num_comp))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The absorption coefficients will be calculated at these energies and stored in alfas" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "num_energy = 300\n", "E = np.linspace(1.15, 1.5, num_energy) * q" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We define some parameters need to calculate the shape of the excitonic absorption" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "alpha_params = {\n", " \"well_width\": si(\"7.2nm\"),\n", " \"theta\": 0,\n", " \"eps\": 12.9 * vacuum_permittivity,\n", " \"espace\": E,\n", " \"hwhm\": si(\"6meV\"),\n", " \"dimensionality\": 0.16,\n", " \"line_shape\": \"Gauss\"\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot results:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "\n", "# plt.figure(figsize=(4, 4.5))\n", "for j, i in enumerate(comp):\n", " # We create the QW material at the given composition\n", " QW = material(\"InGaAs\")(T=293, In=i, strained=True)\n", "\n", " # And the layer\n", " well_layer = Layer(width=si(\"7.2nm\"), material=QW)\n", "\n", " # The following lines create the QW structure, with different number of QWs and interlayers\n", " test_structure = Structure([barrier_layer, inter, well_layer, inter, barrier_layer], substrate=bulk)\n", "\n", " # Finally, the quantum properties are claculated here\n", " output = QM.schrodinger(test_structure, quasiconfined=0, num_eigenvalues=20, alpha_params=alpha_params,\n", " calculate_absorption=True)\n", "\n", " alfa = output[0]['alphaE'](E)\n", " plt.plot(1240 / (E / q), alfa / 100, label='{}%'.format(int(i * 100)))\n", "\n", "plt.xlim(826, 1100)\n", "plt.ylim(0, 23000)\n", "plt.xlabel('Wavelength (nm)')\n", "plt.ylabel('$\\\\alpha$ cm$^{-1}$')\n", "plt.legend(loc='upper right', frameon=False)\n", "plt.tight_layout()\n", "\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.6.3" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false } }, "nbformat": 4, "nbformat_minor": 2 }