{ "cells": [ { "cell_type": "markdown", "id": "088b3b93", "metadata": {}, "source": [ "# Multiple Quantum Wells and Finite Superlattices\n", "\n", "This notebook processes the results generated by next**nano**++ for the simulation of finite superlattices, as outlined in Paul Harrison's book [Quantum Wells, Wires and Dots (2nd e.d)](https://www.wiley.com/en-us/Quantum+Wells%2C+Wires+and+Dots%3A+Theoretical+and+Computational+Physics+of+Semiconductor+Nanostructures%2C+4th+Edition-p-9781118923368). The section refered to is titled \"Multiple Quantum Wells and Finite Superlattices\" (Section 3.10, pp. 95-96)\n", "\n", "In that section, $N$ repeats of 40Å GaAs / 40Å Ga0.8Al0.2As sandwiched between 200Å Ga0.8Al0.2As on the left and right. We will designate the coordinate $x=0$ as the start of the first well.\n", "\n", "## nextnanopy features covered\n", "This tutorial covers the following features of nextnanopy:\n", "* Setting up and executing a sweeping variable\n", "* Navgating the DataFolder output class to obtain the necessary values for plotting\n", "* Plotting graphs with matplotlib\n", "* Replacing a variable's value in an input file" ] }, { "cell_type": "markdown", "id": "25551007", "metadata": {}, "source": [ "## Python libraries used" ] }, { "cell_type": "code", "execution_count": 1, "id": "40c73238", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import nextnanopy as nn\n", "import os\n", "import re\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "id": "b21c7bf4", "metadata": {}, "source": [ "## Checking the configuration of nextnanopy\n", "\n", "The path directories in the config file must be set up. If they are not, refer to the [tutorial on setting up config files](https://github.com/nextnanopy/nextnanopy/blob/master/docs/examples/Example0_Set_up_the_configuration.ipynb)." ] }, { "cell_type": "code", "execution_count": 2, "id": "eb4d02dd", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "{'exe': 'C:\\\\Program Files\\\\nextnano\\\\2021_12_24\\\\nextnano++\\\\bin 64bit\\\\nextnano++_Intel_64bit.exe',\n", " 'license': 'C:\\\\Users\\\\brandon.loke\\\\Documents\\\\nextnano\\\\License\\\\License_nnp.lic',\n", " 'database': 'C:\\\\Program Files\\\\nextnano\\\\2021_12_24\\\\nextnano++\\\\Syntax\\\\database_nnp.in',\n", " 'outputdirectory': 'D:\\\\nextnano output',\n", " 'threads': 0}" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "software = 'nextnano++'\n", "nn.config.config[software]" ] }, { "cell_type": "markdown", "id": "1a56ad42", "metadata": {}, "source": [ "We want to obtain all the paths, so we set up a simple function to aid us." ] }, { "cell_type": "code", "execution_count": 3, "id": "c1f94490", "metadata": {}, "outputs": [], "source": [ "def get_directories(software):\n", " try:\n", " return nn.config.config[software]\n", " except:\n", " raise KeyError(f'Software name not recognised. Please choose one of: {list(nn.config.config.keys())}')\n", "\n", "exe, license, database, output_folder, threads = list(get_directories('nextnano++').values())" ] }, { "cell_type": "markdown", "id": "f669fa98", "metadata": {}, "source": [ "## Setting up the sweeping variable\n", "\n", "We will sweep through the variables using nextnanopy. We define\n", "* The input folder\n", "* The filename\n", "* The variable of interest\n", "* The values to be swept over. In this case, we want to simulate $2\\leq N \\leq 10$ wells\n", "\n", "We will utilise nextnanopy's Sweep class to aid in the sweeping of variables." ] }, { "cell_type": "code", "execution_count": 4, "id": "e32274fd", "metadata": {}, "outputs": [], "source": [ "input_folder = r'D:\\nextnano tutorials\\1DSuperlattice_N_Wells'\n", "filename = r'Superlattice_N_Wells.in'\n", "filepath = os.path.join(input_folder, filename)\n", "SweepVariable = 'NUMBER_OF_WELLS'\n", "SweepValues = np.arange(2,11,1)\n", "\n", "SweepingVariables = {SweepVariable: SweepValues}\n", "#We can always increase the size of the dictionary if we have\n", "#more variables we want to sweep over." ] }, { "cell_type": "code", "execution_count": 5, "id": "4209e13c", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Sweep\n", "fullpath: D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells.in\n", "Input variables: 10 elements\n", "\t$TEMPERATURE = 300 # Temperature (DisplayUnit:K)(ListOfValues:270, 280, 290, 300, 310, 320, 330)\n", "\t$WELL_WIDTH = 4.0 # Width of the quantum well (DisplayUnit:nm)(HighlightInUserInterface)(ListOfValues:5.0, 6.0, 7.0, 8.0, 9.0) (RangeOfValues:From=5.0,To=9.0,Step=1.0)\n", "\t$BARRIER_WIDTH = 4.0 # Width of the barrier (DisplayUnit:nm)(HighlightInUserInterface)(ListOfValues:7.0, 8.0, 9.0, 10.0, 11.0)(RangeOfValues:From=57.0,To=11.0,Step=1.0)\n", "\t$NUMBER_OF_WELLS = 4 # number of quantum wells (DisplayUnit:)(HighlightInUserInterface)(ListOfValues:2, 3, 4, 5, 6, 7, 8, 9, 10)(RangeOfValues:From=2,To=10,Step=1)\n", "\t$SUPERLATTICE_WIDTH = $NUMBER_OF_WELLS * ( $BARRIER_WIDTH + $WELL_WIDTH ) - $BARRIER_WIDTH # (DisplayUnit:nm)(DoNotShowInUserInterface)\n", "\t$LEFT_BARRIER_WIDTH = 20 # Width of the Separate Confinement Heterostructure (SCH) (on the left) (DisplayUnit:nm)\n", "\t$RIGHT_BARRIER_WIDTH = 20 # Width of the Separate Confinement Heterostructure (SCH) (on the right)(DisplayUnit:nm)\n", "\t$FINE_GRID_SPACING = 0.1 # (DisplayUnit:nm)(ListOfValues:0.1, 0.5, 1.0)(DoNotShowInUserInterface)\n", "\t$COARSE_GRID_SPACING = 1.0 # (DisplayUnit:nm)(ListOfValues:0.5, 1.0, 5.0)(DoNotShowInUserInterface)\n", "\t$ALLOY_X = 0.8\n" ] } ], "source": [ "sweep = nn.Sweep(SweepingVariables, filepath)\n", "print(sweep)" ] }, { "cell_type": "code", "execution_count": 6, "id": "fa065179", "metadata": {}, "outputs": [], "source": [ "sweep.save_sweep()" ] }, { "cell_type": "markdown", "id": "f38da27d", "metadata": {}, "source": [ "### Alternative way of getting the list of values\n", "In next**nano**++, some variables already have a list of values or a range of values set up. This can be grabbed from the raw input file with the following functions" ] }, { "cell_type": "code", "execution_count": 7, "id": "6662c443", "metadata": {}, "outputs": [], "source": [ "def grab_list_variables(input_file, VariableName):\n", " c = input_file.variables[VariableName].comment\n", " try:\n", " return np.array(list(map(float, re.search(r'(ListOfValues:)(.*?)\\)', c).group(2).split(','))))\n", " except:\n", " raise ValueError(\"No list of values found for variable in input file. Check that variable has ListOfValues in comment or manually create a list of values.\")\n", " \n", "def grab_range_variables(input_file, VariableName):\n", " c = input_file.variables[VariableName].comment\n", " try:\n", " return np.array(list(map(float, re.search(r'(RangeOfValues:)(.*?)\\)', c).group(2).split(','))))\n", " except:\n", " raise ValueError(\"No range of values found for variable in input file. Check that variable has RangeOfValues in comment or manually create a list of values.\") " ] }, { "cell_type": "markdown", "id": "63a63927", "metadata": {}, "source": [ "For example, if we wanted to get the default list of values for the $NUMBER_OF_WELLS variable in next**nano**++, we may do the following." ] }, { "cell_type": "code", "execution_count": 8, "id": "a5b08a7e", "metadata": {}, "outputs": [], "source": [ "input_file = nn.InputFile(filepath)" ] }, { "cell_type": "code", "execution_count": 9, "id": "80779c78", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "array([ 2., 3., 4., 5., 6., 7., 8., 9., 10.])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grab_list_variables(input_file, \"NUMBER_OF_WELLS\")" ] }, { "cell_type": "markdown", "id": "7a65d458", "metadata": {}, "source": [ "We will now execute the input file with the list of variables" ] }, { "cell_type": "code", "execution_count": 10, "id": "fdee1b77", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "================================================================================\n", "STARTING...\n", "================================================================================\n", "Starting execution as:\n", "C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\bin 64bit\\nextnano++_Intel_64bit.exe --license C:\\Users\\brandon.loke\\Documents\\nextnano\\License\\License_nnp.lic --database C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in --threads 0 --outputdirectory D:\\nextnano output\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS\\Superlattice_N_Wells__NUMBER_OF_WELLS_2_ --noautooutdir D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_2_.in \n", "\n", "nextnano++ (1.9.3 - 2021.122001) Jan 25 2022\n", "=============================================================================\n", "COPYRIGHT NOTICE \n", "=============================================================================\n", "Please read the file 'copyright_nextnano++.txt' in your installation folder \n", "for further information about the terms of copyright of the nextnano++ code \n", "and of third party source codes and libraries used in the nextnano++ code. \n", " \n", "In case this file is missing or seems incomplete or corrupted, please contact\n", "nextnano GmbH, Germany by submitting a support request on www.nextnano.de or \n", "by sending an email to support@nextnano.com in order to receive a new copy. \n", " \n", "ANY USE OF THE NEXTNANO++ CODE CONSTITUTES ACCEPTANCE OF THE TERMS OF THE \n", "COPYRIGHT NOTICE. \n", "=============================================================================\n", "\n", "\n", "=============================================================================\n", " PROCESSING FILE: D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_2_.in\n", "=============================================================================\n", "\n", "Start time: Wed 2022-03-09, 17:31:43 (+0100)\n", "\n", "Simulation process uses 16 of 16 available OpenMP threads (system default).\n", "\n", "BLAS and LAPACK libraries use 8 of 8 available threads (system default).\n", "\n", "Reading input file (D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_2_.in)...\n", "\n", "WARNING: Coordinate position -21 contains duplicate grid line. Duplicate is ignored.\n", "WARNING: Coordinate position 33 contains duplicate grid line. Duplicate is ignored.\n", "\n", "WARNING: Using database specified in command line.\n", "\n", "Reading database file (C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in)...\n", "\n", "\n", "Material database initialized.\n", "\n", "Checking license:\n", "\t Valid From: 2022-1-1 To: 2022-12-31\n", "\t Licensed to: E-mail: brandon.loke@nextnano.com-2022-12-31-de-0000-00-nxt3\n", "\n", "********* SETUP SIMULATION *****************************************************\n", "\n", "NOTE: Using output directory specified from command line (nextnanomat), \n", "\n", "NOTE: Setting output directory to: D:\\nextnano output\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS\\Superlattice_N_Wells__NUMBER_OF_WELLS_2_\\\n", "\n", "********* Simulation Grid *********\n", "\n", "Creating grid 1 using:\n", " pos = -21 \tspacing = 1\n", " pos = -20 \tspacing = 0.1\n", " pos = 32 \tspacing = 0.1\n", " pos = 33 \tspacing = 0.1\n", "\n", "Grid dimension: 532 * 1 * 1 \n", "Number of unique grid points: 532\n", "Range in 1-direction: -21 , ... , 33\n", "\n", "\n", "********* Rotation Matrix *********\n", " 1.0000000, 0.0000000, 0.0000000\n", " 0.0000000, 1.0000000, 0.0000000\n", " 0.0000000, 0.0000000, 1.0000000\n", "\n", "********* Periodicity *************\n", " 0-direction: not periodic\n", "\n", "\n", "Start initializing structure.\n", "Finished initializing structure.\n", "Structure initialization time: 0.001[s]\n", "\n", "Setting reference vacuum level to 6.3 eV.\n", "\n", "NOTE: Electron minimum density is 1e+10 cm^-3.\n", "NOTE: Hole minimum density is 1e+10 cm^-3.\n", "\n", "NOTE: Electron maximum density is 1e+30 cm^-3.\n", "NOTE: Hole maximum density is 1e+30 cm^-3.\n", "\n", "NOTE: Minimal recombination is DISABLED.\n", "\n", "***** Quantum Subgrid (quantum_region) ****** \n", " dimensions: (-20,32) (0,0) (0,0)\n", "Gridsize: \n", "Grid dimension: 521 * 1 * 1 \n", "Number of unique grid points: 521\n", "Range in 1-direction: -20 , ... , 32\n", "\n", "Calculating quantum density of states ... (quantum_region_Gamma)\n", "Calculating quantum density of states ... (quantum_region_HH)\n", "Calculating quantum density of states ... (quantum_region_LH)\n", "Calculating quantum density of states ... (quantum_region_SO)\n", "\n", "********* STRUCTURE OUTPUT *****************************************************\n", "\n", "Writing last region indices...\n", "Writing last material region indices...\n", "Writing material indices...\n", "Writing alloy compositions...\n", "\n", "********* START CALCULATION ****************************************************\n", "\n", "Determine dirichlet points for contacts...\n", "\n", "Calculating pseudomorphic strain...\n", "\n", "Calculating piezoelectric charges...\n", "\n", "Writing strain tensor (simulation system)...\n", "Writing hydrostatic strain...\n", "Determine intrinsic density...\n", "Intrinsic density time: 0.001[s]\n", "\n", "Discretizing Poisson equation...\n", "\n", "\n", "\n", "\n", "========= STARTING CALCULATION FOR BIAS POINT ==================================\n", "barrier_contact 0 V \n", "\n", "Determine electron Fermi level dirichlet values in contacts...\n", "Determine hole Fermi level dirichlet values in contacts...\n", "Initialize Fermi levels...\n", "Fermi level initialization time: 0[s]\n", "Initialize contacts as charge neutral...\n", "Determine potential Dirichlet values in Schottky and ohmic contacts...\n", "Update contact discretization in Poisson equation...\n", "\n", "Initialize electrostatic potential...\n", "Charge Neutrality time: 0.002[s]\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS *------------------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+05[carriers/cm^2]\n", " residual_fermi = 1.000000000e-05[eV]\n", "Set Fermi level range: -0 -0\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t15.05620524634519\n", " Newton achieved/desired residual: 1.27131411e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: Residual_EDensity = 8.110586149e+00 Residual_HDensity = 1.509499954e+00\n", "CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "CURRENT-POISSON: Residual_Potential = 4.347390162e-02\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t1.271314105600014e-12\n", " Newton achieved/desired residual: 1.24043999e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 272 521\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 452 521\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 422 521\n", " \n", "\n", "Computing densities...\n", "\n", "****** SOLVING QUANTUM-CURRENT-POISSON EQUATIONS *----------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+06[carriers/cm^2]\n", " residual_fermi = 1.000000000e-08\n", "Set Fermi level range: -0 -0\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.24712036813534e-12\n", " Newton achieved/desired residual: 1.19472476e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 250\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 100\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 6.697189500e-13 Residual_HDensity = 8.777610611e-14\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 7.105427358e-15\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 2 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.194724757734859e-12\n", " Newton achieved/desired residual: 1.19472476e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 272 521\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 452 521\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 422 521\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 4.877396399e-13 Residual_HDensity = 5.371765282e-14\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 0.000000000e+00\n", "\n", "*---- SOLVING QUANTUM-CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Calculating classical integrated carrier densities as function of energy.\n", "\n", "Calculating quantum integrated carrier densities as function of energy.\n", "\n", "Calculating classical energy-resolved carrier densities.\n", "\n", "Calculating quantum energy-resolved carrier densities.\n", "\n", "Solving Quantum Mechanics ---- (quantum regions without density only)\n", "\n", "\n", "Solving Quantum Mechanics ---- (determine k-dispersion only)\n", "\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", "Calculating integrated generation/recombination/injection rates...\n", "\n", "Calculating density-based (semi-classical) emission spectra.\n", "\n", "********* OUTPUT ***************************************************************\n", "\n", "Writing characteristics data(1)...\n", "Writing characteristics data(2)...\n", "\n", "Writing electrostatic potential...\n", "Writing electric field...\n", "\n", "Writing band gaps...\n", "Writing band edges...\n", "\n", "Writing electron mobility...\n", "Writing hole mobility...\n", "Writing integrated recombination rates...\n", "Writing recombination rate densities...\n", "Writing electron current density...\n", "Writing hole current density...\n", "Writing total currents...\n", "Writing power density...\n", "Writing Fermi levels...\n", "\n", "Writing results from quantum calculations...\n", "\n", "Writing carrier densities...\n", "\n", "Writing integrated energy-resolved densities...\n", "\n", "Writing energy-resolved densities...\n", "\n", "Writing emission spectra...\n", "\n", "Writing spontaneous emission density...\n", "Writing emission power density...\n", "\n", "********* FINISHED CALCULATION *************************************************\n", "\n", "End time: Wed 2022-03-09, 17:31:45 (+0100)\n", "Total Poisson Solver Time: 0.11[s]\n", "Total Quantum Solver Time: 0.175[s]\n", "Total Time of Matrix Elements Calculation: 0.229[s]\n", "Simulator Run Time: 2.071[s]\n", "\n", "================================================================================\n", "DONE.\n", "================================================================================\n", "================================================================================\n", "STARTING...\n", "================================================================================\n", "Starting execution as:\n", "C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\bin 64bit\\nextnano++_Intel_64bit.exe --license C:\\Users\\brandon.loke\\Documents\\nextnano\\License\\License_nnp.lic --database C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in --threads 0 --outputdirectory D:\\nextnano output\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS\\Superlattice_N_Wells__NUMBER_OF_WELLS_3_ --noautooutdir D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_3_.in \n", "\n", "nextnano++ (1.9.3 - 2021.122001) Jan 25 2022\n", "=============================================================================\n", "COPYRIGHT NOTICE \n", "=============================================================================\n", "Please read the file 'copyright_nextnano++.txt' in your installation folder \n", "for further information about the terms of copyright of the nextnano++ code \n", "and of third party source codes and libraries used in the nextnano++ code. \n", " \n", "In case this file is missing or seems incomplete or corrupted, please contact\n", "nextnano GmbH, Germany by submitting a support request on www.nextnano.de or \n", "by sending an email to support@nextnano.com in order to receive a new copy. \n", " \n", "ANY USE OF THE NEXTNANO++ CODE CONSTITUTES ACCEPTANCE OF THE TERMS OF THE \n", "COPYRIGHT NOTICE. \n", "=============================================================================\n", "\n", "\n", "=============================================================================\n", " PROCESSING FILE: D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_3_.in\n", "=============================================================================\n", "\n", "Start time: Wed 2022-03-09, 17:31:45 (+0100)\n", "\n", "Simulation process uses 16 of 16 available OpenMP threads (system default).\n", "\n", "BLAS and LAPACK libraries use 8 of 8 available threads (system default).\n", "\n", "Reading input file (D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_3_.in)...\n", "\n", "WARNING: Coordinate position -21 contains duplicate grid line. Duplicate is ignored.\n", "WARNING: Coordinate position 41 contains duplicate grid line. Duplicate is ignored.\n", "\n", "WARNING: Using database specified in command line.\n", "\n", "Reading database file (C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in)...\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Material database initialized.\n", "\n", "Checking license:\n", "\t Valid From: 2022-1-1 To: 2022-12-31\n", "\t Licensed to: E-mail: brandon.loke@nextnano.com-2022-12-31-de-0000-00-nxt3\n", "\n", "********* SETUP SIMULATION *****************************************************\n", "\n", "NOTE: Using output directory specified from command line (nextnanomat), \n", "\n", "NOTE: Setting output directory to: D:\\nextnano output\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS\\Superlattice_N_Wells__NUMBER_OF_WELLS_3_\\\n", "\n", "********* Simulation Grid *********\n", "\n", "Creating grid 1 using:\n", " pos = -21 \tspacing = 1\n", " pos = -20 \tspacing = 0.1\n", " pos = 40 \tspacing = 0.1\n", " pos = 41 \tspacing = 0.1\n", "\n", "Grid dimension: 612 * 1 * 1 \n", "Number of unique grid points: 612\n", "Range in 1-direction: -21 , ... , 41\n", "\n", "\n", "********* Rotation Matrix *********\n", " 1.0000000, 0.0000000, 0.0000000\n", " 0.0000000, 1.0000000, 0.0000000\n", " 0.0000000, 0.0000000, 1.0000000\n", "\n", "********* Periodicity *************\n", " 0-direction: not periodic\n", "\n", "\n", "Start initializing structure.\n", "Finished initializing structure.\n", "Structure initialization time: 0.001[s]\n", "\n", "Setting reference vacuum level to 6.3 eV.\n", "\n", "NOTE: Electron minimum density is 1e+10 cm^-3.\n", "NOTE: Hole minimum density is 1e+10 cm^-3.\n", "\n", "NOTE: Electron maximum density is 1e+30 cm^-3.\n", "NOTE: Hole maximum density is 1e+30 cm^-3.\n", "\n", "NOTE: Minimal recombination is DISABLED.\n", "\n", "***** Quantum Subgrid (quantum_region) ****** \n", " dimensions: (-20,40) (0,0) (0,0)\n", "Gridsize: \n", "Grid dimension: 601 * 1 * 1 \n", "Number of unique grid points: 601\n", "Range in 1-direction: -20 , ... , 40\n", "\n", "Calculating quantum density of states ... (quantum_region_Gamma)\n", "Calculating quantum density of states ... (quantum_region_HH)\n", "Calculating quantum density of states ... (quantum_region_LH)\n", "Calculating quantum density of states ... (quantum_region_SO)\n", "\n", "********* STRUCTURE OUTPUT *****************************************************\n", "\n", "Writing last region indices...\n", "Writing last material region indices...\n", "Writing material indices...\n", "Writing alloy compositions...\n", "\n", "********* START CALCULATION ****************************************************\n", "\n", "Determine dirichlet points for contacts...\n", "\n", "Calculating pseudomorphic strain...\n", "\n", "Calculating piezoelectric charges...\n", "\n", "Writing strain tensor (simulation system)...\n", "Writing hydrostatic strain...\n", "Determine intrinsic density...\n", "Intrinsic density time: 0.002[s]\n", "\n", "Discretizing Poisson equation...\n", "\n", "\n", "\n", "\n", "========= STARTING CALCULATION FOR BIAS POINT ==================================\n", "barrier_contact 0 V \n", "\n", "Determine electron Fermi level dirichlet values in contacts...\n", "Determine hole Fermi level dirichlet values in contacts...\n", "Initialize Fermi levels...\n", "Fermi level initialization time: 0[s]\n", "Initialize contacts as charge neutral...\n", "Determine potential Dirichlet values in Schottky and ohmic contacts...\n", "Update contact discretization in Poisson equation...\n", "\n", "Initialize electrostatic potential...\n", "Charge Neutrality time: 0.002[s]\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS *------------------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+05[carriers/cm^2]\n", " residual_fermi = 1.000000000e-05[eV]\n", "Set Fermi level range: -0 -0\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t18.44001015808035\n", " Newton achieved/desired residual: 1.60082579e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: Residual_EDensity = 1.216587922e+01 Residual_HDensity = 2.264249930e+00\n", "CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "CURRENT-POISSON: Residual_Potential = 4.347390162e-02\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t1.600825794870711e-12\n", " Newton achieved/desired residual: 1.36981655e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 352 601\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 532 601\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 502 601\n", " \n", "\n", "Computing densities...\n", "\n", "****** SOLVING QUANTUM-CURRENT-POISSON EQUATIONS *----------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+06[carriers/cm^2]\n", " residual_fermi = 1.000000000e-08\n", "Set Fermi level range: -0 -0\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.376990810157774e-12\n", " Newton achieved/desired residual: 1.37699081e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 250\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 100\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 4.725720942e-13 Residual_HDensity = 7.354396530e-14\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 0.000000000e+00\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 2 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.376990810157774e-12\n", " Newton achieved/desired residual: 1.37699081e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 352 601\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 532 601\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 502 601\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 4.725720942e-13 Residual_HDensity = 7.354396530e-14\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 0.000000000e+00\n", "\n", "*---- SOLVING QUANTUM-CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Calculating classical integrated carrier densities as function of energy.\n", "\n", "Calculating quantum integrated carrier densities as function of energy.\n", "\n", "Calculating classical energy-resolved carrier densities.\n", "\n", "Calculating quantum energy-resolved carrier densities.\n", "\n", "Solving Quantum Mechanics ---- (quantum regions without density only)\n", "\n", "\n", "Solving Quantum Mechanics ---- (determine k-dispersion only)\n", "\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", "Calculating integrated generation/recombination/injection rates...\n", "\n", "Calculating density-based (semi-classical) emission spectra.\n", "\n", "********* OUTPUT ***************************************************************\n", "\n", "Writing characteristics data(1)...\n", "Writing characteristics data(2)...\n", "\n", "Writing electrostatic potential...\n", "Writing electric field...\n", "\n", "Writing band gaps...\n", "Writing band edges...\n", "\n", "Writing electron mobility...\n", "Writing hole mobility...\n", "Writing integrated recombination rates...\n", "Writing recombination rate densities...\n", "Writing electron current density...\n", "Writing hole current density...\n", "Writing total currents...\n", "Writing power density...\n", "Writing Fermi levels...\n", "\n", "Writing results from quantum calculations...\n", "\n", "Writing carrier densities...\n", "\n", "Writing integrated energy-resolved densities...\n", "\n", "Writing energy-resolved densities...\n", "\n", "Writing emission spectra...\n", "\n", "Writing spontaneous emission density...\n", "Writing emission power density...\n", "\n", "********* FINISHED CALCULATION *************************************************\n", "\n", "End time: Wed 2022-03-09, 17:31:48 (+0100)\n", "Total Poisson Solver Time: 0.147[s]\n", "Total Current Solver Time: 0.002[s]\n", "Total Quantum Solver Time: 0.195[s]\n", "Total Time of Matrix Elements Calculation: 0.248[s]\n", "Simulator Run Time: 2.303[s]\n", "\n", "================================================================================\n", "DONE.\n", "================================================================================\n", "================================================================================\n", "STARTING...\n", "================================================================================\n", "Starting execution as:\n", "C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\bin 64bit\\nextnano++_Intel_64bit.exe --license C:\\Users\\brandon.loke\\Documents\\nextnano\\License\\License_nnp.lic --database C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in --threads 0 --outputdirectory D:\\nextnano output\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS\\Superlattice_N_Wells__NUMBER_OF_WELLS_4_ --noautooutdir D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_4_.in \n", "\n", "nextnano++ (1.9.3 - 2021.122001) Jan 25 2022\n", "=============================================================================\n", "COPYRIGHT NOTICE \n", "=============================================================================\n", "Please read the file 'copyright_nextnano++.txt' in your installation folder \n", "for further information about the terms of copyright of the nextnano++ code \n", "and of third party source codes and libraries used in the nextnano++ code. \n", " \n", "In case this file is missing or seems incomplete or corrupted, please contact\n", "nextnano GmbH, Germany by submitting a support request on www.nextnano.de or \n", "by sending an email to support@nextnano.com in order to receive a new copy. \n", " \n", "ANY USE OF THE NEXTNANO++ CODE CONSTITUTES ACCEPTANCE OF THE TERMS OF THE \n", "COPYRIGHT NOTICE. \n", "=============================================================================\n", "\n", "\n", "=============================================================================\n", " PROCESSING FILE: D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_4_.in\n", "=============================================================================\n", "\n", "Start time: Wed 2022-03-09, 17:31:48 (+0100)\n", "\n", "Simulation process uses 16 of 16 available OpenMP threads (system default).\n", "\n", "BLAS and LAPACK libraries use 8 of 8 available threads (system default).\n", "\n", "Reading input file (D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_4_.in)...\n", "\n", "WARNING: Coordinate position -21 contains duplicate grid line. Duplicate is ignored.\n", "WARNING: Coordinate position 49 contains duplicate grid line. Duplicate is ignored.\n", "\n", "WARNING: Using database specified in command line.\n", "\n", "Reading database file (C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in)...\n", "\n", "\n", "Material database initialized.\n", "\n", "Checking license:\n", "\t Valid From: 2022-1-1 To: 2022-12-31\n", "\t Licensed to: E-mail: brandon.loke@nextnano.com-2022-12-31-de-0000-00-nxt3\n", "\n", "********* SETUP SIMULATION *****************************************************\n", "\n", "NOTE: Using output directory specified from command line (nextnanomat), \n", "\n", "NOTE: Setting output directory to: D:\\nextnano output\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS\\Superlattice_N_Wells__NUMBER_OF_WELLS_4_\\\n", "\n", "********* Simulation Grid *********\n", "\n", "Creating grid 1 using:\n", " pos = -21 \tspacing = 1\n", " pos = -20 \tspacing = 0.1\n", " pos = 48 \tspacing = 0.1\n", " pos = 49 \tspacing = 0.1\n", "\n", "Grid dimension: 692 * 1 * 1 \n", "Number of unique grid points: 692\n", "Range in 1-direction: -21 , ... , 49\n", "\n", "\n", "********* Rotation Matrix *********\n", " 1.0000000, 0.0000000, 0.0000000\n", " 0.0000000, 1.0000000, 0.0000000\n", " 0.0000000, 0.0000000, 1.0000000\n", "\n", "********* Periodicity *************\n", " 0-direction: not periodic\n", "\n", "\n", "Start initializing structure.\n", "Finished initializing structure.\n", "Structure initialization time: 0[s]\n", "\n", "Setting reference vacuum level to 6.3 eV.\n", "\n", "NOTE: Electron minimum density is 1e+10 cm^-3.\n", "NOTE: Hole minimum density is 1e+10 cm^-3.\n", "\n", "NOTE: Electron maximum density is 1e+30 cm^-3.\n", "NOTE: Hole maximum density is 1e+30 cm^-3.\n", "\n", "NOTE: Minimal recombination is DISABLED.\n", "\n", "***** Quantum Subgrid (quantum_region) ****** \n", " dimensions: (-20,48) (0,0) (0,0)\n", "Gridsize: \n", "Grid dimension: 681 * 1 * 1 \n", "Number of unique grid points: 681\n", "Range in 1-direction: -20 , ... , 48\n", "\n", "Calculating quantum density of states ... (quantum_region_Gamma)\n", "Calculating quantum density of states ... (quantum_region_HH)\n", "Calculating quantum density of states ... (quantum_region_LH)\n", "Calculating quantum density of states ... (quantum_region_SO)\n", "\n", "********* STRUCTURE OUTPUT *****************************************************\n", "\n", "Writing last region indices...\n", "Writing last material region indices...\n", "Writing material indices...\n", "Writing alloy compositions...\n", "\n", "********* START CALCULATION ****************************************************\n", "\n", "Determine dirichlet points for contacts...\n", "\n", "Calculating pseudomorphic strain...\n", "\n", "Calculating piezoelectric charges...\n", "\n", "Writing strain tensor (simulation system)...\n", "Writing hydrostatic strain...\n", "Determine intrinsic density...\n", "Intrinsic density time: 0.002[s]\n", "\n", "Discretizing Poisson equation...\n", "\n", "\n", "\n", "\n", "========= STARTING CALCULATION FOR BIAS POINT ==================================\n", "barrier_contact 0 V \n", "\n", "Determine electron Fermi level dirichlet values in contacts...\n", "Determine hole Fermi level dirichlet values in contacts...\n", "Initialize Fermi levels...\n", "Fermi level initialization time: 0.001[s]\n", "Initialize contacts as charge neutral...\n", "Determine potential Dirichlet values in Schottky and ohmic contacts...\n", "Update contact discretization in Poisson equation...\n", "\n", "Initialize electrostatic potential...\n", "Charge Neutrality time: 0.002[s]\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS *------------------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+05[carriers/cm^2]\n", " residual_fermi = 1.000000000e-05[eV]\n", "Set Fermi level range: -0 -0\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t21.2926896572542\n", " Newton achieved/desired residual: 1.58598865e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: Residual_EDensity = 1.622117230e+01 Residual_HDensity = 3.018999907e+00\n", "CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "CURRENT-POISSON: Residual_Potential = 4.347390162e-02\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t1.585988654857987e-12\n", " Newton achieved/desired residual: 1.5206921e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 432 681\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 612 681\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 582 681\n", " \n", "\n", "Computing densities...\n", "\n", "****** SOLVING QUANTUM-CURRENT-POISSON EQUATIONS *----------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+06[carriers/cm^2]\n", " residual_fermi = 1.000000000e-08\n", "Set Fermi level range: -0 -0\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Newton step: 1\t1.541720510200749e-12\n", " Newton achieved/desired residual: 1.51049037e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 250\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 100\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 3.435667510e-10 Residual_HDensity = 5.602259542e-11\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 3.157030193e-12\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 2 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.510490369854435e-12\n", " Newton achieved/desired residual: 1.49900884e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 432 681\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 612 681\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 582 681\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 2.219058893e-11 Residual_HDensity = 3.677121189e-12\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 2.149391776e-13\n", "\n", "*---- SOLVING QUANTUM-CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Calculating classical integrated carrier densities as function of energy.\n", "\n", "Calculating quantum integrated carrier densities as function of energy.\n", "\n", "Calculating classical energy-resolved carrier densities.\n", "\n", "Calculating quantum energy-resolved carrier densities.\n", "\n", "Solving Quantum Mechanics ---- (quantum regions without density only)\n", "\n", "\n", "Solving Quantum Mechanics ---- (determine k-dispersion only)\n", "\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", "Calculating integrated generation/recombination/injection rates...\n", "\n", "Calculating density-based (semi-classical) emission spectra.\n", "\n", "********* OUTPUT ***************************************************************\n", "\n", "Writing characteristics data(1)...\n", "Writing characteristics data(2)...\n", "\n", "Writing electrostatic potential...\n", "Writing electric field...\n", "\n", "Writing band gaps...\n", "Writing band edges...\n", "\n", "Writing electron mobility...\n", "Writing hole mobility...\n", "Writing integrated recombination rates...\n", "Writing recombination rate densities...\n", "Writing electron current density...\n", "Writing hole current density...\n", "Writing total currents...\n", "Writing power density...\n", "Writing Fermi levels...\n", "\n", "Writing results from quantum calculations...\n", "\n", "Writing carrier densities...\n", "\n", "Writing integrated energy-resolved densities...\n", "\n", "Writing energy-resolved densities...\n", "\n", "Writing emission spectra...\n", "\n", "Writing spontaneous emission density...\n", "Writing emission power density...\n", "\n", "********* FINISHED CALCULATION *************************************************\n", "\n", "End time: Wed 2022-03-09, 17:31:50 (+0100)\n", "Total Poisson Solver Time: 0.044[s]\n", "Total Current Solver Time: 0.001[s]\n", "Total Quantum Solver Time: 0.229[s]\n", "Total Time of Matrix Elements Calculation: 0.281[s]\n", "Simulator Run Time: 2.34[s]\n", "\n", "================================================================================\n", "DONE.\n", "================================================================================\n", "================================================================================\n", "STARTING...\n", "================================================================================\n", "Starting execution as:\n", "C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\bin 64bit\\nextnano++_Intel_64bit.exe --license C:\\Users\\brandon.loke\\Documents\\nextnano\\License\\License_nnp.lic --database C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in --threads 0 --outputdirectory D:\\nextnano output\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS\\Superlattice_N_Wells__NUMBER_OF_WELLS_5_ --noautooutdir D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_5_.in \n", "\n", "nextnano++ (1.9.3 - 2021.122001) Jan 25 2022\n", "=============================================================================\n", "COPYRIGHT NOTICE \n", "=============================================================================\n", "Please read the file 'copyright_nextnano++.txt' in your installation folder \n", "for further information about the terms of copyright of the nextnano++ code \n", "and of third party source codes and libraries used in the nextnano++ code. \n", " \n", "In case this file is missing or seems incomplete or corrupted, please contact\n", "nextnano GmbH, Germany by submitting a support request on www.nextnano.de or \n", "by sending an email to support@nextnano.com in order to receive a new copy. \n", " \n", "ANY USE OF THE NEXTNANO++ CODE CONSTITUTES ACCEPTANCE OF THE TERMS OF THE \n", "COPYRIGHT NOTICE. \n", "=============================================================================\n", "\n", "\n", "=============================================================================\n", " PROCESSING FILE: D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_5_.in\n", "=============================================================================\n", "\n", "Start time: Wed 2022-03-09, 17:31:50 (+0100)\n", "\n", "Simulation process uses 16 of 16 available OpenMP threads (system default).\n", "\n", "BLAS and LAPACK libraries use 8 of 8 available threads (system default).\n", "\n", "Reading input file (D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_5_.in)...\n", "\n", "WARNING: Coordinate position -21 contains duplicate grid line. Duplicate is ignored.\n", "WARNING: Coordinate position 57 contains duplicate grid line. Duplicate is ignored.\n", "\n", "WARNING: Using database specified in command line.\n", "\n", "Reading database file (C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in)...\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Material database initialized.\n", "\n", "Checking license:\n", "\t Valid From: 2022-1-1 To: 2022-12-31\n", "\t Licensed to: E-mail: brandon.loke@nextnano.com-2022-12-31-de-0000-00-nxt3\n", "\n", "********* SETUP SIMULATION *****************************************************\n", "\n", "NOTE: Using output directory specified from command line (nextnanomat), \n", "\n", "NOTE: Setting output directory to: D:\\nextnano output\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS\\Superlattice_N_Wells__NUMBER_OF_WELLS_5_\\\n", "\n", "********* Simulation Grid *********\n", "\n", "Creating grid 1 using:\n", " pos = -21 \tspacing = 1\n", " pos = -20 \tspacing = 0.1\n", " pos = 56 \tspacing = 0.1\n", " pos = 57 \tspacing = 0.1\n", "\n", "Grid dimension: 772 * 1 * 1 \n", "Number of unique grid points: 772\n", "Range in 1-direction: -21 , ... , 57\n", "\n", "\n", "********* Rotation Matrix *********\n", " 1.0000000, 0.0000000, 0.0000000\n", " 0.0000000, 1.0000000, 0.0000000\n", " 0.0000000, 0.0000000, 1.0000000\n", "\n", "********* Periodicity *************\n", " 0-direction: not periodic\n", "\n", "\n", "Start initializing structure.\n", "Finished initializing structure.\n", "Structure initialization time: 0.001[s]\n", "\n", "Setting reference vacuum level to 6.3 eV.\n", "\n", "NOTE: Electron minimum density is 1e+10 cm^-3.\n", "NOTE: Hole minimum density is 1e+10 cm^-3.\n", "\n", "NOTE: Electron maximum density is 1e+30 cm^-3.\n", "NOTE: Hole maximum density is 1e+30 cm^-3.\n", "\n", "NOTE: Minimal recombination is DISABLED.\n", "\n", "***** Quantum Subgrid (quantum_region) ****** \n", " dimensions: (-20,56) (0,0) (0,0)\n", "Gridsize: \n", "Grid dimension: 761 * 1 * 1 \n", "Number of unique grid points: 761\n", "Range in 1-direction: -20 , ... , 56\n", "\n", "Calculating quantum density of states ... (quantum_region_Gamma)\n", "Calculating quantum density of states ... (quantum_region_HH)\n", "Calculating quantum density of states ... (quantum_region_LH)\n", "Calculating quantum density of states ... (quantum_region_SO)\n", "\n", "********* STRUCTURE OUTPUT *****************************************************\n", "\n", "Writing last region indices...\n", "Writing last material region indices...\n", "Writing material indices...\n", "Writing alloy compositions...\n", "\n", "********* START CALCULATION ****************************************************\n", "\n", "Determine dirichlet points for contacts...\n", "\n", "Calculating pseudomorphic strain...\n", "\n", "Calculating piezoelectric charges...\n", "\n", "Writing strain tensor (simulation system)...\n", "Writing hydrostatic strain...\n", "Determine intrinsic density...\n", "Intrinsic density time: 0.002[s]\n", "\n", "Discretizing Poisson equation...\n", "\n", "\n", "\n", "\n", "========= STARTING CALCULATION FOR BIAS POINT ==================================\n", "barrier_contact 0 V \n", "\n", "Determine electron Fermi level dirichlet values in contacts...\n", "Determine hole Fermi level dirichlet values in contacts...\n", "Initialize Fermi levels...\n", "Fermi level initialization time: 0[s]\n", "Initialize contacts as charge neutral...\n", "Determine potential Dirichlet values in Schottky and ohmic contacts...\n", "Update contact discretization in Poisson equation...\n", "\n", "Initialize electrostatic potential...\n", "Charge Neutrality time: 0.003[s]\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS *------------------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+05[carriers/cm^2]\n", " residual_fermi = 1.000000000e-05[eV]\n", "Set Fermi level range: -0 -0\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t23.80595074871356\n", " Newton achieved/desired residual: 1.53013189e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: Residual_EDensity = 2.027646537e+01 Residual_HDensity = 3.773749884e+00\n", "CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "CURRENT-POISSON: Residual_Potential = 4.347390162e-02\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t1.530131892602561e-12\n", " Newton achieved/desired residual: 1.47816452e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 512 761\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 692 761\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 662 761\n", " \n", "\n", "Computing densities...\n", "\n", "****** SOLVING QUANTUM-CURRENT-POISSON EQUATIONS *----------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+06[carriers/cm^2]\n", " residual_fermi = 1.000000000e-08\n", "Set Fermi level range: -0 -0\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.488163704176449e-12\n", " Newton achieved/desired residual: 1.4881637e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 250\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 100\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 1.158062927e-12 Residual_HDensity = 6.175286366e-14\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 0.000000000e+00\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 2 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.488163704176447e-12\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Newton achieved/desired residual: 1.4881637e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 512 761\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 692 761\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 662 761\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 1.158062927e-12 Residual_HDensity = 6.175286366e-14\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 0.000000000e+00\n", "\n", "*---- SOLVING QUANTUM-CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Calculating classical integrated carrier densities as function of energy.\n", "\n", "Calculating quantum integrated carrier densities as function of energy.\n", "\n", "Calculating classical energy-resolved carrier densities.\n", "\n", "Calculating quantum energy-resolved carrier densities.\n", "\n", "Solving Quantum Mechanics ---- (quantum regions without density only)\n", "\n", "\n", "Solving Quantum Mechanics ---- (determine k-dispersion only)\n", "\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", "Calculating integrated generation/recombination/injection rates...\n", "\n", "Calculating density-based (semi-classical) emission spectra.\n", "\n", "********* OUTPUT ***************************************************************\n", "\n", "Writing characteristics data(1)...\n", "Writing characteristics data(2)...\n", "\n", "Writing electrostatic potential...\n", "Writing electric field...\n", "\n", "Writing band gaps...\n", "Writing band edges...\n", "\n", "Writing electron mobility...\n", "Writing hole mobility...\n", "Writing integrated recombination rates...\n", "Writing recombination rate densities...\n", "Writing electron current density...\n", "Writing hole current density...\n", "Writing total currents...\n", "Writing power density...\n", "Writing Fermi levels...\n", "\n", "Writing results from quantum calculations...\n", "\n", "Writing carrier densities...\n", "\n", "Writing integrated energy-resolved densities...\n", "\n", "Writing energy-resolved densities...\n", "\n", "Writing emission spectra...\n", "\n", "Writing spontaneous emission density...\n", "Writing emission power density...\n", "\n", "********* FINISHED CALCULATION *************************************************\n", "\n", "End time: Wed 2022-03-09, 17:31:53 (+0100)\n", "Total Poisson Solver Time: 0.194[s]\n", "Total Current Solver Time: 0.004[s]\n", "Total Quantum Solver Time: 0.257[s]\n", "Total Time of Matrix Elements Calculation: 0.317[s]\n", "Simulator Run Time: 2.607[s]\n", "\n", "================================================================================\n", "DONE.\n", "================================================================================\n", "================================================================================\n", "STARTING...\n", "================================================================================\n", "Starting execution as:\n", "C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\bin 64bit\\nextnano++_Intel_64bit.exe --license C:\\Users\\brandon.loke\\Documents\\nextnano\\License\\License_nnp.lic --database C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in --threads 0 --outputdirectory D:\\nextnano output\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS\\Superlattice_N_Wells__NUMBER_OF_WELLS_6_ --noautooutdir D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_6_.in \n", "\n", "nextnano++ (1.9.3 - 2021.122001) Jan 25 2022\n", "=============================================================================\n", "COPYRIGHT NOTICE \n", "=============================================================================\n", "Please read the file 'copyright_nextnano++.txt' in your installation folder \n", "for further information about the terms of copyright of the nextnano++ code \n", "and of third party source codes and libraries used in the nextnano++ code. \n", " \n", "In case this file is missing or seems incomplete or corrupted, please contact\n", "nextnano GmbH, Germany by submitting a support request on www.nextnano.de or \n", "by sending an email to support@nextnano.com in order to receive a new copy. \n", " \n", "ANY USE OF THE NEXTNANO++ CODE CONSTITUTES ACCEPTANCE OF THE TERMS OF THE \n", "COPYRIGHT NOTICE. \n", "=============================================================================\n", "\n", "\n", "=============================================================================\n", " PROCESSING FILE: D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_6_.in\n", "=============================================================================\n", "\n", "Start time: Wed 2022-03-09, 17:31:53 (+0100)\n", "\n", "Simulation process uses 16 of 16 available OpenMP threads (system default).\n", "\n", "BLAS and LAPACK libraries use 8 of 8 available threads (system default).\n", "\n", "Reading input file (D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_6_.in)...\n", "\n", "WARNING: Coordinate position -21 contains duplicate grid line. Duplicate is ignored.\n", "WARNING: Coordinate position 65 contains duplicate grid line. Duplicate is ignored.\n", "\n", "WARNING: Using database specified in command line.\n", "\n", "Reading database file (C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in)...\n", "\n", "\n", "Material database initialized.\n", "\n", "Checking license:\n", "\t Valid From: 2022-1-1 To: 2022-12-31\n", "\t Licensed to: E-mail: brandon.loke@nextnano.com-2022-12-31-de-0000-00-nxt3\n", "\n", "********* SETUP SIMULATION *****************************************************\n", "\n", "NOTE: Using output directory specified from command line (nextnanomat), \n", "\n", "NOTE: Setting output directory to: D:\\nextnano output\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS\\Superlattice_N_Wells__NUMBER_OF_WELLS_6_\\\n", "\n", "********* Simulation Grid *********\n", "\n", "Creating grid 1 using:\n", " pos = -21 \tspacing = 1\n", " pos = -20 \tspacing = 0.1\n", " pos = 64 \tspacing = 0.1\n", " pos = 65 \tspacing = 0.1\n", "\n", "Grid dimension: 852 * 1 * 1 \n", "Number of unique grid points: 852\n", "Range in 1-direction: -21 , ... , 65\n", "\n", "\n", "********* Rotation Matrix *********\n", " 1.0000000, 0.0000000, 0.0000000\n", " 0.0000000, 1.0000000, 0.0000000\n", " 0.0000000, 0.0000000, 1.0000000\n", "\n", "********* Periodicity *************\n", " 0-direction: not periodic\n", "\n", "\n", "Start initializing structure.\n", "Finished initializing structure.\n", "Structure initialization time: 0.001[s]\n", "\n", "Setting reference vacuum level to 6.3 eV.\n", "\n", "NOTE: Electron minimum density is 1e+10 cm^-3.\n", "NOTE: Hole minimum density is 1e+10 cm^-3.\n", "\n", "NOTE: Electron maximum density is 1e+30 cm^-3.\n", "NOTE: Hole maximum density is 1e+30 cm^-3.\n", "\n", "NOTE: Minimal recombination is DISABLED.\n", "\n", "***** Quantum Subgrid (quantum_region) ****** \n", " dimensions: (-20,64) (0,0) (0,0)\n", "Gridsize: \n", "Grid dimension: 841 * 1 * 1 \n", "Number of unique grid points: 841\n", "Range in 1-direction: -20 , ... , 64\n", "\n", "Calculating quantum density of states ... (quantum_region_Gamma)\n", "Calculating quantum density of states ... (quantum_region_HH)\n", "Calculating quantum density of states ... (quantum_region_LH)\n", "Calculating quantum density of states ... (quantum_region_SO)\n", "\n", "********* STRUCTURE OUTPUT *****************************************************\n", "\n", "Writing last region indices...\n", "Writing last material region indices...\n", "Writing material indices...\n", "Writing alloy compositions...\n", "\n", "********* START CALCULATION ****************************************************\n", "\n", "Determine dirichlet points for contacts...\n", "\n", "Calculating pseudomorphic strain...\n", "\n", "Calculating piezoelectric charges...\n", "\n", "Writing strain tensor (simulation system)...\n", "Writing hydrostatic strain...\n", "Determine intrinsic density...\n", "Intrinsic density time: 0.003[s]\n", "\n", "Discretizing Poisson equation...\n", "\n", "\n", "\n", "\n", "========= STARTING CALCULATION FOR BIAS POINT ==================================\n", "barrier_contact 0 V \n", "\n", "Determine electron Fermi level dirichlet values in contacts...\n", "Determine hole Fermi level dirichlet values in contacts...\n", "Initialize Fermi levels...\n", "Fermi level initialization time: 0[s]\n", "Initialize contacts as charge neutral...\n", "Determine potential Dirichlet values in Schottky and ohmic contacts...\n", "Update contact discretization in Poisson equation...\n", "\n", "Initialize electrostatic potential...\n", "Charge Neutrality time: 0.004[s]\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS *------------------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+05[carriers/cm^2]\n", " residual_fermi = 1.000000000e-05[eV]\n", "Set Fermi level range: -0 -0\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t26.0781124558548\n", " Newton achieved/desired residual: 1.67280757e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: Residual_EDensity = 2.433175844e+01 Residual_HDensity = 4.528499861e+00\n", "CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "CURRENT-POISSON: Residual_Potential = 4.347390162e-02\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t1.672807571990618e-12\n", " Newton achieved/desired residual: 1.65044484e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 592 841\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 772 841\n", " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 742 841\n", " \n", "\n", "Computing densities...\n", "\n", "****** SOLVING QUANTUM-CURRENT-POISSON EQUATIONS *----------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+06[carriers/cm^2]\n", " residual_fermi = 1.000000000e-08\n", "Set Fermi level range: -0 -0\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.658198530496757e-12\n", " Newton achieved/desired residual: 1.65819853e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 250\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 100\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 7.633503261e-13 Residual_HDensity = 7.109724464e-14\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 0.000000000e+00\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 2 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.658198530496756e-12\n", " Newton achieved/desired residual: 1.65819853e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 592 841\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 772 841\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 742 841\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 7.633503261e-13 Residual_HDensity = 7.109724464e-14\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 0.000000000e+00\n", "\n", "*---- SOLVING QUANTUM-CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Calculating classical integrated carrier densities as function of energy.\n", "\n", "Calculating quantum integrated carrier densities as function of energy.\n", "\n", "Calculating classical energy-resolved carrier densities.\n", "\n", "Calculating quantum energy-resolved carrier densities.\n", "\n", "Solving Quantum Mechanics ---- (quantum regions without density only)\n", "\n", "\n", "Solving Quantum Mechanics ---- (determine k-dispersion only)\n", "\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", "Calculating integrated generation/recombination/injection rates...\n", "\n", "Calculating density-based (semi-classical) emission spectra.\n", "\n", "********* OUTPUT ***************************************************************\n", "\n", "Writing characteristics data(1)...\n", "Writing characteristics data(2)...\n", "\n", "Writing electrostatic potential...\n", "Writing electric field...\n", "\n", "Writing band gaps...\n", "Writing band edges...\n", "\n", "Writing electron mobility...\n", "Writing hole mobility...\n", "Writing integrated recombination rates...\n", "Writing recombination rate densities...\n", "Writing electron current density...\n", "Writing hole current density...\n", "Writing total currents...\n", "Writing power density...\n", "Writing Fermi levels...\n", "\n", "Writing results from quantum calculations...\n", "\n", "Writing carrier densities...\n", "\n", "Writing integrated energy-resolved densities...\n", "\n", "Writing energy-resolved densities...\n", "\n", "Writing emission spectra...\n", "\n", "Writing spontaneous emission density...\n", "Writing emission power density...\n", "\n", "********* FINISHED CALCULATION *************************************************\n", "\n", "End time: Wed 2022-03-09, 17:31:56 (+0100)\n", "Total Poisson Solver Time: 0.198[s]\n", "Total Current Solver Time: 0.004[s]\n", "Total Quantum Solver Time: 0.291[s]\n", "Total Time of Matrix Elements Calculation: 0.334[s]\n", "Simulator Run Time: 2.812[s]\n", "\n", "================================================================================\n", "DONE.\n", "================================================================================\n", "================================================================================\n", "STARTING...\n", "================================================================================\n", "Starting execution as:\n", "C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\bin 64bit\\nextnano++_Intel_64bit.exe --license C:\\Users\\brandon.loke\\Documents\\nextnano\\License\\License_nnp.lic --database C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in --threads 0 --outputdirectory D:\\nextnano output\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS\\Superlattice_N_Wells__NUMBER_OF_WELLS_7_ --noautooutdir D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_7_.in \n", "\n", "nextnano++ (1.9.3 - 2021.122001) Jan 25 2022\n", "=============================================================================\n", "COPYRIGHT NOTICE \n", "=============================================================================\n", "Please read the file 'copyright_nextnano++.txt' in your installation folder \n", "for further information about the terms of copyright of the nextnano++ code \n", "and of third party source codes and libraries used in the nextnano++ code. \n", " \n", "In case this file is missing or seems incomplete or corrupted, please contact\n", "nextnano GmbH, Germany by submitting a support request on www.nextnano.de or \n", "by sending an email to support@nextnano.com in order to receive a new copy. \n", " \n", "ANY USE OF THE NEXTNANO++ CODE CONSTITUTES ACCEPTANCE OF THE TERMS OF THE \n", "COPYRIGHT NOTICE. \n", "=============================================================================\n", "\n", "\n", "=============================================================================\n", " PROCESSING FILE: D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_7_.in\n", "=============================================================================\n", "\n", "Start time: Wed 2022-03-09, 17:31:56 (+0100)\n", "\n", "Simulation process uses 16 of 16 available OpenMP threads (system default).\n", "\n", "BLAS and LAPACK libraries use 8 of 8 available threads (system default).\n", "\n", "Reading input file (D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_7_.in)...\n", "\n", "WARNING: Coordinate position -21 contains duplicate grid line. Duplicate is ignored.\n", "WARNING: Coordinate position 73 contains duplicate grid line. Duplicate is ignored.\n", "\n", "WARNING: Using database specified in command line.\n", "\n", "Reading database file (C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in)...\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Material database initialized.\n", "\n", "Checking license:\n", "\t Valid From: 2022-1-1 To: 2022-12-31\n", "\t Licensed to: E-mail: brandon.loke@nextnano.com-2022-12-31-de-0000-00-nxt3\n", "\n", "********* SETUP SIMULATION *****************************************************\n", "\n", "NOTE: Using output directory specified from command line (nextnanomat), \n", "\n", "NOTE: Setting output directory to: D:\\nextnano output\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS\\Superlattice_N_Wells__NUMBER_OF_WELLS_7_\\\n", "\n", "********* Simulation Grid *********\n", "\n", "Creating grid 1 using:\n", " pos = -21 \tspacing = 1\n", " pos = -20 \tspacing = 0.1\n", " pos = 72 \tspacing = 0.1\n", " pos = 73 \tspacing = 0.1\n", "\n", "Grid dimension: 932 * 1 * 1 \n", "Number of unique grid points: 932\n", "Range in 1-direction: -21 , ... , 73\n", "\n", "\n", "********* Rotation Matrix *********\n", " 1.0000000, 0.0000000, 0.0000000\n", " 0.0000000, 1.0000000, 0.0000000\n", " 0.0000000, 0.0000000, 1.0000000\n", "\n", "********* Periodicity *************\n", " 0-direction: not periodic\n", "\n", "\n", "Start initializing structure.\n", "Finished initializing structure.\n", "Structure initialization time: 0.001[s]\n", "\n", "Setting reference vacuum level to 6.3 eV.\n", "\n", "NOTE: Electron minimum density is 1e+10 cm^-3.\n", "NOTE: Hole minimum density is 1e+10 cm^-3.\n", "\n", "NOTE: Electron maximum density is 1e+30 cm^-3.\n", "NOTE: Hole maximum density is 1e+30 cm^-3.\n", "\n", "NOTE: Minimal recombination is DISABLED.\n", "\n", "***** Quantum Subgrid (quantum_region) ****** \n", " dimensions: (-20,72) (0,0) (0,0)\n", "Gridsize: \n", "Grid dimension: 921 * 1 * 1 \n", "Number of unique grid points: 921\n", "Range in 1-direction: -20 , ... , 72\n", "\n", "Calculating quantum density of states ... (quantum_region_Gamma)\n", "Calculating quantum density of states ... (quantum_region_HH)\n", "Calculating quantum density of states ... (quantum_region_LH)\n", "Calculating quantum density of states ... (quantum_region_SO)\n", "\n", "********* STRUCTURE OUTPUT *****************************************************\n", "\n", "Writing last region indices...\n", "Writing last material region indices...\n", "Writing material indices...\n", "Writing alloy compositions...\n", "\n", "********* START CALCULATION ****************************************************\n", "\n", "Determine dirichlet points for contacts...\n", "\n", "Calculating pseudomorphic strain...\n", "\n", "Calculating piezoelectric charges...\n", "\n", "Writing strain tensor (simulation system)...\n", "Writing hydrostatic strain...\n", "Determine intrinsic density...\n", "Intrinsic density time: 0.003[s]\n", "\n", "Discretizing Poisson equation...\n", "\n", "\n", "\n", "\n", "========= STARTING CALCULATION FOR BIAS POINT ==================================\n", "barrier_contact 0 V \n", "\n", "Determine electron Fermi level dirichlet values in contacts...\n", "Determine hole Fermi level dirichlet values in contacts...\n", "Initialize Fermi levels...\n", "Fermi level initialization time: 0.001[s]\n", "Initialize contacts as charge neutral...\n", "Determine potential Dirichlet values in Schottky and ohmic contacts...\n", "Update contact discretization in Poisson equation...\n", "\n", "Initialize electrostatic potential...\n", "Charge Neutrality time: 0.003[s]\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS *------------------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+05[carriers/cm^2]\n", " residual_fermi = 1.000000000e-05[eV]\n", "Set Fermi level range: -0 -0\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t28.16758078838584\n", " Newton achieved/desired residual: 1.8058372e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: Residual_EDensity = 2.838705152e+01 Residual_HDensity = 5.283249838e+00\n", "CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "CURRENT-POISSON: Residual_Potential = 4.347390162e-02\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t1.805837202456271e-12\n", " Newton achieved/desired residual: 1.8058372e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 672 921\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 852 921\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 822 921\n", " \n", "\n", "Computing densities...\n", "\n", "****** SOLVING QUANTUM-CURRENT-POISSON EQUATIONS *----------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+06[carriers/cm^2]\n", " residual_fermi = 1.000000000e-08\n", "Set Fermi level range: -0 -0\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.81535263405816e-12\n", " Newton achieved/desired residual: 1.7690085e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 250\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 100\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 3.772953877e-10 Residual_HDensity = 6.068001237e-11\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 2.110311925e-12\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 2 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.769008501203664e-12\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Newton achieved/desired residual: 1.74306238e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 672 921\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 852 921\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 822 921\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 1.038767264e-12 Residual_HDensity = 9.732498233e-14\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 8.881784197e-16\n", "\n", "*---- SOLVING QUANTUM-CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Calculating classical integrated carrier densities as function of energy.\n", "\n", "Calculating quantum integrated carrier densities as function of energy.\n", "\n", "Calculating classical energy-resolved carrier densities.\n", "\n", "Calculating quantum energy-resolved carrier densities.\n", "\n", "Solving Quantum Mechanics ---- (quantum regions without density only)\n", "\n", "\n", "Solving Quantum Mechanics ---- (determine k-dispersion only)\n", "\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", "Calculating integrated generation/recombination/injection rates...\n", "\n", "Calculating density-based (semi-classical) emission spectra.\n", "\n", "********* OUTPUT ***************************************************************\n", "\n", "Writing characteristics data(1)...\n", "Writing characteristics data(2)...\n", "\n", "Writing electrostatic potential...\n", "Writing electric field...\n", "\n", "Writing band gaps...\n", "Writing band edges...\n", "\n", "Writing electron mobility...\n", "Writing hole mobility...\n", "Writing integrated recombination rates...\n", "Writing recombination rate densities...\n", "Writing electron current density...\n", "Writing hole current density...\n", "Writing total currents...\n", "Writing power density...\n", "Writing Fermi levels...\n", "\n", "Writing results from quantum calculations...\n", "\n", "Writing carrier densities...\n", "\n", "Writing integrated energy-resolved densities...\n", "\n", "Writing energy-resolved densities...\n", "\n", "Writing emission spectra...\n", "\n", "Writing spontaneous emission density...\n", "Writing emission power density...\n", "\n", "********* FINISHED CALCULATION *************************************************\n", "\n", "End time: Wed 2022-03-09, 17:31:59 (+0100)\n", "Total Poisson Solver Time: 0.124[s]\n", "Total Current Solver Time: 0.003[s]\n", "Total Quantum Solver Time: 0.328[s]\n", "Total Time of Matrix Elements Calculation: 0.367[s]\n", "Simulator Run Time: 3.157[s]\n", "\n", "================================================================================\n", "DONE.\n", "================================================================================\n", "================================================================================\n", "STARTING...\n", "================================================================================\n", "Starting execution as:\n", "C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\bin 64bit\\nextnano++_Intel_64bit.exe --license C:\\Users\\brandon.loke\\Documents\\nextnano\\License\\License_nnp.lic --database C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in --threads 0 --outputdirectory D:\\nextnano output\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS\\Superlattice_N_Wells__NUMBER_OF_WELLS_8_ --noautooutdir D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_8_.in \n", "\n", "nextnano++ (1.9.3 - 2021.122001) Jan 25 2022\n", "=============================================================================\n", "COPYRIGHT NOTICE \n", "=============================================================================\n", "Please read the file 'copyright_nextnano++.txt' in your installation folder \n", "for further information about the terms of copyright of the nextnano++ code \n", "and of third party source codes and libraries used in the nextnano++ code. \n", " \n", "In case this file is missing or seems incomplete or corrupted, please contact\n", "nextnano GmbH, Germany by submitting a support request on www.nextnano.de or \n", "by sending an email to support@nextnano.com in order to receive a new copy. \n", " \n", "ANY USE OF THE NEXTNANO++ CODE CONSTITUTES ACCEPTANCE OF THE TERMS OF THE \n", "COPYRIGHT NOTICE. \n", "=============================================================================\n", "\n", "\n", "=============================================================================\n", " PROCESSING FILE: D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_8_.in\n", "=============================================================================\n", "\n", "Start time: Wed 2022-03-09, 17:31:59 (+0100)\n", "\n", "Simulation process uses 16 of 16 available OpenMP threads (system default).\n", "\n", "BLAS and LAPACK libraries use 8 of 8 available threads (system default).\n", "\n", "Reading input file (D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_8_.in)...\n", "\n", "WARNING: Coordinate position -21 contains duplicate grid line. Duplicate is ignored.\n", "WARNING: Coordinate position 81 contains duplicate grid line. Duplicate is ignored.\n", "\n", "WARNING: Using database specified in command line.\n", "\n", "Reading database file (C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in)...\n", "\n", "\n", "Material database initialized.\n", "\n", "Checking license:\n", "\t Valid From: 2022-1-1 To: 2022-12-31\n", "\t Licensed to: E-mail: brandon.loke@nextnano.com-2022-12-31-de-0000-00-nxt3\n", "\n", "********* SETUP SIMULATION *****************************************************\n", "\n", "NOTE: Using output directory specified from command line (nextnanomat), \n", "\n", "NOTE: Setting output directory to: D:\\nextnano output\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS\\Superlattice_N_Wells__NUMBER_OF_WELLS_8_\\\n", "\n", "********* Simulation Grid *********\n", "\n", "Creating grid 1 using:\n", " pos = -21 \tspacing = 1\n", " pos = -20 \tspacing = 0.1\n", " pos = 80 \tspacing = 0.1\n", " pos = 81 \tspacing = 0.1\n", "\n", "Grid dimension: 1012 * 1 * 1 \n", "Number of unique grid points: 1012\n", "Range in 1-direction: -21 , ... , 81\n", "\n", "\n", "********* Rotation Matrix *********\n", " 1.0000000, 0.0000000, 0.0000000\n", " 0.0000000, 1.0000000, 0.0000000\n", " 0.0000000, 0.0000000, 1.0000000\n", "\n", "********* Periodicity *************\n", " 0-direction: not periodic\n", "\n", "\n", "Start initializing structure.\n", "Finished initializing structure.\n", "Structure initialization time: 0[s]\n", "\n", "Setting reference vacuum level to 6.3 eV.\n", "\n", "NOTE: Electron minimum density is 1e+10 cm^-3.\n", "NOTE: Hole minimum density is 1e+10 cm^-3.\n", "\n", "NOTE: Electron maximum density is 1e+30 cm^-3.\n", "NOTE: Hole maximum density is 1e+30 cm^-3.\n", "\n", "NOTE: Minimal recombination is DISABLED.\n", "\n", "***** Quantum Subgrid (quantum_region) ****** \n", " dimensions: (-20,80) (0,0) (0,0)\n", "Gridsize: \n", "Grid dimension: 1001 * 1 * 1 \n", "Number of unique grid points: 1001\n", "Range in 1-direction: -20 , ... , 80\n", "\n", "Calculating quantum density of states ... (quantum_region_Gamma)\n", "Calculating quantum density of states ... (quantum_region_HH)\n", "Calculating quantum density of states ... (quantum_region_LH)\n", "Calculating quantum density of states ... (quantum_region_SO)\n", "\n", "********* STRUCTURE OUTPUT *****************************************************\n", "\n", "Writing last region indices...\n", "Writing last material region indices...\n", "Writing material indices...\n", "Writing alloy compositions...\n", "\n", "********* START CALCULATION ****************************************************\n", "\n", "Determine dirichlet points for contacts...\n", "\n", "Calculating pseudomorphic strain...\n", "\n", "Calculating piezoelectric charges...\n", "\n", "Writing strain tensor (simulation system)...\n", "Writing hydrostatic strain...\n", "Determine intrinsic density...\n", "Intrinsic density time: 0.001[s]\n", "\n", "Discretizing Poisson equation...\n", "\n", "\n", "\n", "\n", "========= STARTING CALCULATION FOR BIAS POINT ==================================\n", "barrier_contact 0 V \n", "\n", "Determine electron Fermi level dirichlet values in contacts...\n", "Determine hole Fermi level dirichlet values in contacts...\n", "Initialize Fermi levels...\n", "Fermi level initialization time: 0.001[s]\n", "Initialize contacts as charge neutral...\n", "Determine potential Dirichlet values in Schottky and ohmic contacts...\n", "Update contact discretization in Poisson equation...\n", "\n", "Initialize electrostatic potential...\n", "Charge Neutrality time: 0[s]\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS *------------------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+05[carriers/cm^2]\n", " residual_fermi = 1.000000000e-05[eV]\n", "Set Fermi level range: -0 -0\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t30.11241049269016\n", " Newton achieved/desired residual: 1.80471797e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: Residual_EDensity = 3.244234459e+01 Residual_HDensity = 6.037999814e+00\n", "CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "CURRENT-POISSON: Residual_Potential = 4.347390162e-02\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t1.804717968049665e-12\n", " Newton achieved/desired residual: 1.80471797e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 752 1001\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 932 1001\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 902 1001\n", " \n", "\n", "Computing densities...\n", "\n", "****** SOLVING QUANTUM-CURRENT-POISSON EQUATIONS *----------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+06[carriers/cm^2]\n", " residual_fermi = 1.000000000e-08\n", "Set Fermi level range: -0 -0\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.815620513006601e-12\n", " Newton achieved/desired residual: 1.81562051e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 250\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 100\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 6.580962131e-13 Residual_HDensity = 8.254187148e-14\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 0.000000000e+00\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 2 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.815620513006601e-12\n", " Newton achieved/desired residual: 1.81562051e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 752 1001\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 932 1001\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 902 1001\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 6.580962131e-13 Residual_HDensity = 8.254187148e-14\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 0.000000000e+00\n", "\n", "*---- SOLVING QUANTUM-CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Calculating classical integrated carrier densities as function of energy.\n", "\n", "Calculating quantum integrated carrier densities as function of energy.\n", "\n", "Calculating classical energy-resolved carrier densities.\n", "\n", "Calculating quantum energy-resolved carrier densities.\n", "\n", "Solving Quantum Mechanics ---- (quantum regions without density only)\n", "\n", "\n", "Solving Quantum Mechanics ---- (determine k-dispersion only)\n", "\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", "Calculating integrated generation/recombination/injection rates...\n", "\n", "Calculating density-based (semi-classical) emission spectra.\n", "\n", "********* OUTPUT ***************************************************************\n", "\n", "Writing characteristics data(1)...\n", "Writing characteristics data(2)...\n", "\n", "Writing electrostatic potential...\n", "Writing electric field...\n", "\n", "Writing band gaps...\n", "Writing band edges...\n", "\n", "Writing electron mobility...\n", "Writing hole mobility...\n", "Writing integrated recombination rates...\n", "Writing recombination rate densities...\n", "Writing electron current density...\n", "Writing hole current density...\n", "Writing total currents...\n", "Writing power density...\n", "Writing Fermi levels...\n", "\n", "Writing results from quantum calculations...\n", "\n", "Writing carrier densities...\n", "\n", "Writing integrated energy-resolved densities...\n", "\n", "Writing energy-resolved densities...\n", "\n", "Writing emission spectra...\n", "\n", "Writing spontaneous emission density...\n", "Writing emission power density...\n", "\n", "********* FINISHED CALCULATION *************************************************\n", "\n", "End time: Wed 2022-03-09, 17:32:03 (+0100)\n", "Total Poisson Solver Time: 0.372[s]\n", "Total Current Solver Time: 0.003[s]\n", "Total Quantum Solver Time: 0.393[s]\n", "Total Time of Matrix Elements Calculation: 0.154[s]\n", "Simulator Run Time: 3.375[s]\n", "\n", "================================================================================\n", "DONE.\n", "================================================================================\n", "================================================================================\n", "STARTING...\n", "================================================================================\n", "Starting execution as:\n", "C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\bin 64bit\\nextnano++_Intel_64bit.exe --license C:\\Users\\brandon.loke\\Documents\\nextnano\\License\\License_nnp.lic --database C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in --threads 0 --outputdirectory D:\\nextnano output\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS\\Superlattice_N_Wells__NUMBER_OF_WELLS_9_ --noautooutdir D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_9_.in \n", "\n", "nextnano++ (1.9.3 - 2021.122001) Jan 25 2022\n", "=============================================================================\n", "COPYRIGHT NOTICE \n", "=============================================================================\n", "Please read the file 'copyright_nextnano++.txt' in your installation folder \n", "for further information about the terms of copyright of the nextnano++ code \n", "and of third party source codes and libraries used in the nextnano++ code. \n", " \n", "In case this file is missing or seems incomplete or corrupted, please contact\n", "nextnano GmbH, Germany by submitting a support request on www.nextnano.de or \n", "by sending an email to support@nextnano.com in order to receive a new copy. \n", " \n", "ANY USE OF THE NEXTNANO++ CODE CONSTITUTES ACCEPTANCE OF THE TERMS OF THE \n", "COPYRIGHT NOTICE. \n", "=============================================================================\n", "\n", "\n", "=============================================================================\n", " PROCESSING FILE: D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_9_.in\n", "=============================================================================\n", "\n", "Start time: Wed 2022-03-09, 17:32:03 (+0100)\n", "\n", "Simulation process uses 16 of 16 available OpenMP threads (system default).\n", "\n", "BLAS and LAPACK libraries use 8 of 8 available threads (system default).\n", "\n", "Reading input file (D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_9_.in)...\n", "\n", "WARNING: Coordinate position -21 contains duplicate grid line. Duplicate is ignored.\n", "WARNING: Coordinate position 89 contains duplicate grid line. Duplicate is ignored.\n", "\n", "WARNING: Using database specified in command line.\n", "\n", "Reading database file (C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in)...\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Material database initialized.\n", "\n", "Checking license:\n", "\t Valid From: 2022-1-1 To: 2022-12-31\n", "\t Licensed to: E-mail: brandon.loke@nextnano.com-2022-12-31-de-0000-00-nxt3\n", "\n", "********* SETUP SIMULATION *****************************************************\n", "\n", "NOTE: Using output directory specified from command line (nextnanomat), \n", "\n", "NOTE: Setting output directory to: D:\\nextnano output\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS\\Superlattice_N_Wells__NUMBER_OF_WELLS_9_\\\n", "\n", "********* Simulation Grid *********\n", "\n", "Creating grid 1 using:\n", " pos = -21 \tspacing = 1\n", " pos = -20 \tspacing = 0.1\n", " pos = 88 \tspacing = 0.1\n", " pos = 89 \tspacing = 0.1\n", "\n", "Grid dimension: 1092 * 1 * 1 \n", "Number of unique grid points: 1092\n", "Range in 1-direction: -21 , ... , 89\n", "\n", "\n", "********* Rotation Matrix *********\n", " 1.0000000, 0.0000000, 0.0000000\n", " 0.0000000, 1.0000000, 0.0000000\n", " 0.0000000, 0.0000000, 1.0000000\n", "\n", "********* Periodicity *************\n", " 0-direction: not periodic\n", "\n", "\n", "Start initializing structure.\n", "Finished initializing structure.\n", "Structure initialization time: 0.001[s]\n", "\n", "Setting reference vacuum level to 6.3 eV.\n", "\n", "NOTE: Electron minimum density is 1e+10 cm^-3.\n", "NOTE: Hole minimum density is 1e+10 cm^-3.\n", "\n", "NOTE: Electron maximum density is 1e+30 cm^-3.\n", "NOTE: Hole maximum density is 1e+30 cm^-3.\n", "\n", "NOTE: Minimal recombination is DISABLED.\n", "\n", "***** Quantum Subgrid (quantum_region) ****** \n", " dimensions: (-20,88) (0,0) (0,0)\n", "Gridsize: \n", "Grid dimension: 1081 * 1 * 1 \n", "Number of unique grid points: 1081\n", "Range in 1-direction: -20 , ... , 88\n", "\n", "Calculating quantum density of states ... (quantum_region_Gamma)\n", "Calculating quantum density of states ... (quantum_region_HH)\n", "Calculating quantum density of states ... (quantum_region_LH)\n", "Calculating quantum density of states ... (quantum_region_SO)\n", "\n", "********* STRUCTURE OUTPUT *****************************************************\n", "\n", "Writing last region indices...\n", "Writing last material region indices...\n", "Writing material indices...\n", "Writing alloy compositions...\n", "\n", "********* START CALCULATION ****************************************************\n", "\n", "Determine dirichlet points for contacts...\n", "\n", "Calculating pseudomorphic strain...\n", "\n", "Calculating piezoelectric charges...\n", "\n", "Writing strain tensor (simulation system)...\n", "Writing hydrostatic strain...\n", "Determine intrinsic density...\n", "Intrinsic density time: 0[s]\n", "\n", "Discretizing Poisson equation...\n", "\n", "\n", "\n", "\n", "========= STARTING CALCULATION FOR BIAS POINT ==================================\n", "barrier_contact 0 V \n", "\n", "Determine electron Fermi level dirichlet values in contacts...\n", "Determine hole Fermi level dirichlet values in contacts...\n", "Initialize Fermi levels...\n", "Fermi level initialization time: 0[s]\n", "Initialize contacts as charge neutral...\n", "Determine potential Dirichlet values in Schottky and ohmic contacts...\n", "Update contact discretization in Poisson equation...\n", "\n", "Initialize electrostatic potential...\n", "Charge Neutrality time: 0[s]\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS *------------------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+05[carriers/cm^2]\n", " residual_fermi = 1.000000000e-05[eV]\n", "Set Fermi level range: -0 -0\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t31.9390344858813\n", " Newton achieved/desired residual: 1.93710078e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: Residual_EDensity = 3.649763766e+01 Residual_HDensity = 6.792749791e+00\n", "CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "CURRENT-POISSON: Residual_Potential = 4.347390162e-02\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t1.93710077654168e-12\n", " Newton achieved/desired residual: 1.93125379e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 832 1081\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1012 1081\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 982 1081\n", " \n", "\n", "Computing densities...\n", "\n", "****** SOLVING QUANTUM-CURRENT-POISSON EQUATIONS *----------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+06[carriers/cm^2]\n", " residual_fermi = 1.000000000e-08\n", "Set Fermi level range: -0 -0\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.945400556291622e-12\n", " Newton achieved/desired residual: 1.94540056e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 250\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 100\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 7.274679208e-13 Residual_HDensity = 1.690708802e-13\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 0.000000000e+00\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 2 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.945400556291621e-12\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Newton achieved/desired residual: 1.94540056e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 832 1081\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1012 1081\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 982 1081\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 7.274679208e-13 Residual_HDensity = 1.690708802e-13\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 0.000000000e+00\n", "\n", "*---- SOLVING QUANTUM-CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Calculating classical integrated carrier densities as function of energy.\n", "\n", "Calculating quantum integrated carrier densities as function of energy.\n", "\n", "Calculating classical energy-resolved carrier densities.\n", "\n", "Calculating quantum energy-resolved carrier densities.\n", "\n", "Solving Quantum Mechanics ---- (quantum regions without density only)\n", "\n", "\n", "Solving Quantum Mechanics ---- (determine k-dispersion only)\n", "\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", "Calculating integrated generation/recombination/injection rates...\n", "\n", "Calculating density-based (semi-classical) emission spectra.\n", "\n", "********* OUTPUT ***************************************************************\n", "\n", "Writing characteristics data(1)...\n", "Writing characteristics data(2)...\n", "\n", "Writing electrostatic potential...\n", "Writing electric field...\n", "\n", "Writing band gaps...\n", "Writing band edges...\n", "\n", "Writing electron mobility...\n", "Writing hole mobility...\n", "Writing integrated recombination rates...\n", "Writing recombination rate densities...\n", "Writing electron current density...\n", "Writing hole current density...\n", "Writing total currents...\n", "Writing power density...\n", "Writing Fermi levels...\n", "\n", "Writing results from quantum calculations...\n", "\n", "Writing carrier densities...\n", "\n", "Writing integrated energy-resolved densities...\n", "\n", "Writing energy-resolved densities...\n", "\n", "Writing emission spectra...\n", "\n", "Writing spontaneous emission density...\n", "Writing emission power density...\n", "\n", "********* FINISHED CALCULATION *************************************************\n", "\n", "End time: Wed 2022-03-09, 17:32:06 (+0100)\n", "Total Poisson Solver Time: 0.402[s]\n", "Total Current Solver Time: 0.003[s]\n", "Total Quantum Solver Time: 0.419[s]\n", "Total Time of Matrix Elements Calculation: 0.15[s]\n", "Simulator Run Time: 3.408[s]\n", "\n", "================================================================================\n", "DONE.\n", "================================================================================\n", "================================================================================\n", "STARTING...\n", "================================================================================\n", "Starting execution as:\n", "C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\bin 64bit\\nextnano++_Intel_64bit.exe --license C:\\Users\\brandon.loke\\Documents\\nextnano\\License\\License_nnp.lic --database C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in --threads 0 --outputdirectory D:\\nextnano output\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS\\Superlattice_N_Wells__NUMBER_OF_WELLS_10_ --noautooutdir D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_10_.in \n", "\n", "nextnano++ (1.9.3 - 2021.122001) Jan 25 2022\n", "=============================================================================\n", "COPYRIGHT NOTICE \n", "=============================================================================\n", "Please read the file 'copyright_nextnano++.txt' in your installation folder \n", "for further information about the terms of copyright of the nextnano++ code \n", "and of third party source codes and libraries used in the nextnano++ code. \n", " \n", "In case this file is missing or seems incomplete or corrupted, please contact\n", "nextnano GmbH, Germany by submitting a support request on www.nextnano.de or \n", "by sending an email to support@nextnano.com in order to receive a new copy. \n", " \n", "ANY USE OF THE NEXTNANO++ CODE CONSTITUTES ACCEPTANCE OF THE TERMS OF THE \n", "COPYRIGHT NOTICE. \n", "=============================================================================\n", "\n", "\n", "=============================================================================\n", " PROCESSING FILE: D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_10_.in\n", "=============================================================================\n", "\n", "Start time: Wed 2022-03-09, 17:32:06 (+0100)\n", "\n", "Simulation process uses 16 of 16 available OpenMP threads (system default).\n", "\n", "BLAS and LAPACK libraries use 8 of 8 available threads (system default).\n", "\n", "Reading input file (D:\\nextnano tutorials\\1DSuperlattice_N_Wells\\Superlattice_N_Wells__NUMBER_OF_WELLS_10_.in)...\n", "\n", "WARNING: Coordinate position -21 contains duplicate grid line. Duplicate is ignored.\n", "WARNING: Coordinate position 97 contains duplicate grid line. Duplicate is ignored.\n", "\n", "WARNING: Using database specified in command line.\n", "\n", "Reading database file (C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in)...\n", "\n", "\n", "Material database initialized.\n", "\n", "Checking license:\n", "\t Valid From: 2022-1-1 To: 2022-12-31\n", "\t Licensed to: E-mail: brandon.loke@nextnano.com-2022-12-31-de-0000-00-nxt3\n", "\n", "********* SETUP SIMULATION *****************************************************\n", "\n", "NOTE: Using output directory specified from command line (nextnanomat), \n", "\n", "NOTE: Setting output directory to: D:\\nextnano output\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS\\Superlattice_N_Wells__NUMBER_OF_WELLS_10_\\\n", "\n", "********* Simulation Grid *********\n", "\n", "Creating grid 1 using:\n", " pos = -21 \tspacing = 1\n", " pos = -20 \tspacing = 0.1\n", " pos = 96 \tspacing = 0.1\n", " pos = 97 \tspacing = 0.1\n", "\n", "Grid dimension: 1172 * 1 * 1 \n", "Number of unique grid points: 1172\n", "Range in 1-direction: -21 , ... , 97\n", "\n", "\n", "********* Rotation Matrix *********\n", " 1.0000000, 0.0000000, 0.0000000\n", " 0.0000000, 1.0000000, 0.0000000\n", " 0.0000000, 0.0000000, 1.0000000\n", "\n", "********* Periodicity *************\n", " 0-direction: not periodic\n", "\n", "\n", "Start initializing structure.\n", "Finished initializing structure.\n", "Structure initialization time: 0.001[s]\n", "\n", "Setting reference vacuum level to 6.3 eV.\n", "\n", "NOTE: Electron minimum density is 1e+10 cm^-3.\n", "NOTE: Hole minimum density is 1e+10 cm^-3.\n", "\n", "NOTE: Electron maximum density is 1e+30 cm^-3.\n", "NOTE: Hole maximum density is 1e+30 cm^-3.\n", "\n", "NOTE: Minimal recombination is DISABLED.\n", "\n", "***** Quantum Subgrid (quantum_region) ****** \n", " dimensions: (-20,96) (0,0) (0,0)\n", "Gridsize: \n", "Grid dimension: 1161 * 1 * 1 \n", "Number of unique grid points: 1161\n", "Range in 1-direction: -20 , ... , 96\n", "\n", "Calculating quantum density of states ... (quantum_region_Gamma)\n", "Calculating quantum density of states ... (quantum_region_HH)\n", "Calculating quantum density of states ... (quantum_region_LH)\n", "Calculating quantum density of states ... (quantum_region_SO)\n", "\n", "********* STRUCTURE OUTPUT *****************************************************\n", "\n", "Writing last region indices...\n", "Writing last material region indices...\n", "Writing material indices...\n", "Writing alloy compositions...\n", "\n", "********* START CALCULATION ****************************************************\n", "\n", "Determine dirichlet points for contacts...\n", "\n", "Calculating pseudomorphic strain...\n", "\n", "Calculating piezoelectric charges...\n", "\n", "Writing strain tensor (simulation system)...\n", "Writing hydrostatic strain...\n", "Determine intrinsic density...\n", "Intrinsic density time: 0[s]\n", "\n", "Discretizing Poisson equation...\n", "\n", "\n", "\n", "\n", "========= STARTING CALCULATION FOR BIAS POINT ==================================\n", "barrier_contact 0 V \n", "\n", "Determine electron Fermi level dirichlet values in contacts...\n", "Determine hole Fermi level dirichlet values in contacts...\n", "Initialize Fermi levels...\n", "Fermi level initialization time: 0[s]\n", "Initialize contacts as charge neutral...\n", "Determine potential Dirichlet values in Schottky and ohmic contacts...\n", "Update contact discretization in Poisson equation...\n", "\n", "Initialize electrostatic potential...\n", "Charge Neutrality time: 0.001[s]\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS *------------------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+05[carriers/cm^2]\n", " residual_fermi = 1.000000000e-05[eV]\n", "Set Fermi level range: -0 -0\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t33.66669841401682\n", " Newton achieved/desired residual: 1.81479481e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: Residual_EDensity = 4.055293073e+01 Residual_HDensity = 7.547499768e+00\n", "CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "CURRENT-POISSON: Residual_Potential = 4.347390162e-02\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t1.814794805223162e-12\n", " Newton achieved/desired residual: 1.81479481e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 912 1161\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1092 1161\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1062 1161\n", " \n", "\n", "Computing densities...\n", "\n", "****** SOLVING QUANTUM-CURRENT-POISSON EQUATIONS *----------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+06[carriers/cm^2]\n", " residual_fermi = 1.000000000e-08\n", "Set Fermi level range: -0 -0\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.831891561583565e-12\n", " Newton achieved/desired residual: 1.79638276e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 250\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 100\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 9.619275893e-13 Residual_HDensity = 2.098032527e-12\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 1.776356839e-15\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 2 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.796382759146284e-12\n", " Newton achieved/desired residual: 1.7963798e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 912 1161\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1092 1161\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1062 1161\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 1.196969736e-12 Residual_HDensity = 1.462652793e-12\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 8.881784197e-16\n", "\n", "*---- SOLVING QUANTUM-CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Calculating classical integrated carrier densities as function of energy.\n", "\n", "Calculating quantum integrated carrier densities as function of energy.\n", "\n", "Calculating classical energy-resolved carrier densities.\n", "\n", "Calculating quantum energy-resolved carrier densities.\n", "\n", "Solving Quantum Mechanics ---- (quantum regions without density only)\n", "\n", "\n", "Solving Quantum Mechanics ---- (determine k-dispersion only)\n", "\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", "Calculating integrated generation/recombination/injection rates...\n", "\n", "Calculating density-based (semi-classical) emission spectra.\n", "\n", "********* OUTPUT ***************************************************************\n", "\n", "Writing characteristics data(1)...\n", "Writing characteristics data(2)...\n", "\n", "Writing electrostatic potential...\n", "Writing electric field...\n", "\n", "Writing band gaps...\n", "Writing band edges...\n", "\n", "Writing electron mobility...\n", "Writing hole mobility...\n", "Writing integrated recombination rates...\n", "Writing recombination rate densities...\n", "Writing electron current density...\n", "Writing hole current density...\n", "Writing total currents...\n", "Writing power density...\n", "Writing Fermi levels...\n", "\n", "Writing results from quantum calculations...\n", "\n", "Writing carrier densities...\n", "\n", "Writing integrated energy-resolved densities...\n", "\n", "Writing energy-resolved densities...\n", "\n", "Writing emission spectra...\n", "\n", "Writing spontaneous emission density...\n", "Writing emission power density...\n", "\n", "********* FINISHED CALCULATION *************************************************\n", "\n", "End time: Wed 2022-03-09, 17:32:10 (+0100)\n", "Total Poisson Solver Time: 0.38[s]\n", "Total Current Solver Time: 0.004[s]\n", "Total Quantum Solver Time: 0.446[s]\n", "Total Time of Matrix Elements Calculation: 0.162[s]\n", "Total Strain Solution Time: 0.001[s]\n", "Simulator Run Time: 3.988[s]\n", "\n", "================================================================================\n", "DONE.\n", "================================================================================\n" ] } ], "source": [ "sweep.execute_sweep()" ] }, { "cell_type": "markdown", "id": "cd35efdf", "metadata": {}, "source": [ "We can obtain the output directory of the results and use the DataFile class to navigate its structure" ] }, { "cell_type": "code", "execution_count": 11, "id": "fe07c4fe", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'D:\\\\nextnano output\\\\Superlattice_N_Wells_sweep__NUMBER_OF_WELLS'" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sweep.sweep_output_directory" ] }, { "cell_type": "code", "execution_count": 12, "id": "5893e5a5", "metadata": {}, "outputs": [], "source": [ "sweepFolder = nn.DataFolder(sweep.sweep_output_directory)" ] }, { "cell_type": "code", "execution_count": 13, "id": "d021cbf7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Superlattice_N_Wells_sweep__NUMBER_OF_WELLS/\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_10_/\n", " bias_00000/\n", " Optical/\n", " computed_absorption_spectrum_cm-1.dat\n", " computed_absorption_spectrum_eV.dat\n", " computed_absorption_spectrum_nm.dat\n", " computed_absorption_spectrum_THz.dat\n", " computed_gain_spectrum_cm-1.dat\n", " computed_gain_spectrum_eV.dat\n", " computed_gain_spectrum_nm.dat\n", " computed_gain_spectrum_THz.dat\n", " computed_imepsilon_spectrum_cm-1.dat\n", " computed_imepsilon_spectrum_eV.dat\n", " computed_imepsilon_spectrum_nm.dat\n", " computed_imepsilon_spectrum_THz.dat\n", " emission_photon_density.dat\n", " emission_power_density.dat\n", " emission_spectrum_photons_cm-1.dat\n", " emission_spectrum_photons_eV.dat\n", " emission_spectrum_photons_nm.dat\n", " emission_spectrum_photons_THz.dat\n", " emission_spectrum_power_cm-1.dat\n", " emission_spectrum_power_eV.dat\n", " emission_spectrum_power_nm.dat\n", " emission_spectrum_power_THz.dat\n", " stim_emission_spectrum_photons_cm-1.dat\n", " stim_emission_spectrum_photons_eV.dat\n", " stim_emission_spectrum_photons_nm.dat\n", " stim_emission_spectrum_photons_THz.dat\n", " stim_emission_spectrum_power_cm-1.dat\n", " stim_emission_spectrum_power_eV.dat\n", " stim_emission_spectrum_power_nm.dat\n", " stim_emission_spectrum_power_THz.dat\n", " Quantum/\n", " amplitudes_quantum_region_Gamma_00000.dat\n", " amplitudes_quantum_region_HH_00000.dat\n", " amplitudes_quantum_region_LH_00000.dat\n", " amplitudes_quantum_region_SO_00000.dat\n", " amplitudes_shift_quantum_region_Gamma_00000.dat\n", " amplitudes_shift_quantum_region_HH_00000.dat\n", " amplitudes_shift_quantum_region_LH_00000.dat\n", " amplitudes_shift_quantum_region_SO_00000.dat\n", " energy_spectrum_quantum_region_Gamma_00000.dat\n", " energy_spectrum_quantum_region_HH_00000.dat\n", " energy_spectrum_quantum_region_LH_00000.dat\n", " energy_spectrum_quantum_region_SO_00000.dat\n", " interband_matrix_elements_quantum_region_HH_Gamma.fld\n", " interband_matrix_elements_quantum_region_HH_Gamma.txt\n", " interband_matrix_elements_quantum_region_LH_Gamma.fld\n", " interband_matrix_elements_quantum_region_LH_Gamma.txt\n", " interband_matrix_elements_quantum_region_SO_Gamma.fld\n", " interband_matrix_elements_quantum_region_SO_Gamma.txt\n", " occupation_quantum_region_Gamma.dat\n", " occupation_quantum_region_HH.dat\n", " occupation_quantum_region_LH.dat\n", " occupation_quantum_region_SO.dat\n", " probabilities_quantum_region_Gamma_00000.dat\n", " probabilities_quantum_region_HH_00000.dat\n", " probabilities_quantum_region_LH_00000.dat\n", " probabilities_quantum_region_SO_00000.dat\n", " probabilities_shift_quantum_region_Gamma_00000.dat\n", " probabilities_shift_quantum_region_HH_00000.dat\n", " probabilities_shift_quantum_region_LH_00000.dat\n", " probabilities_shift_quantum_region_SO_00000.dat\n", " transition_energies_quantum_region_HH_Gamma.fld\n", " transition_energies_quantum_region_HH_Gamma.txt\n", " transition_energies_quantum_region_LH_Gamma.fld\n", " transition_energies_quantum_region_LH_Gamma.txt\n", " transition_energies_quantum_region_SO_Gamma.fld\n", " transition_energies_quantum_region_SO_Gamma.txt\n", " bandedges.dat\n", " bandgap.dat\n", " bias_points.log\n", " current_electron.dat\n", " current_hole.dat\n", " current_total.dat\n", " density_electron.dat\n", " density_hole.dat\n", " electric_field.dat\n", " electron_density_vs_energy.fld\n", " fermi_level_all.dat\n", " fermi_level_electron.dat\n", " fermi_level_hole.dat\n", " hole_density_vs_energy.fld\n", " integrated_densities_vs_energy.dat\n", " internal_quantum_efficiency.dat\n", " iteration_current_poisson.dat\n", " iteration_quantum_current_poisson.dat\n", " iteration_quantum_current_poisson_details.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " joule_power_density.dat\n", " mobility_electron.dat\n", " mobility_hole.dat\n", " potential.dat\n", " power.dat\n", " recombination.dat\n", " total_charges.txt\n", " total_injection.txt\n", " total_injection_quantum_regions.txt\n", " total_recombination.txt\n", " total_recombination_quantum_regions.txt\n", " Strain/\n", " hydrostatic_strain.dat\n", " strain_simulation.dat\n", " Structure/\n", " alloy_composition.dat\n", " last_material_region.dat\n", " last_region.dat\n", " material.dat\n", " materials.txt\n", " bias_points.log\n", " grid_x.dat\n", " internal_quantum_efficiency.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " job_done.txt\n", " power.dat\n", " simulation_database.txt\n", " simulation_info.txt\n", " simulation_input.txt\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_10_.in\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_10_.log\n", " variables_database.txt\n", " variables_input.txt\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_2_/\n", " bias_00000/\n", " Optical/\n", " computed_absorption_spectrum_cm-1.dat\n", " computed_absorption_spectrum_eV.dat\n", " computed_absorption_spectrum_nm.dat\n", " computed_absorption_spectrum_THz.dat\n", " computed_gain_spectrum_cm-1.dat\n", " computed_gain_spectrum_eV.dat\n", " computed_gain_spectrum_nm.dat\n", " computed_gain_spectrum_THz.dat\n", " computed_imepsilon_spectrum_cm-1.dat\n", " computed_imepsilon_spectrum_eV.dat\n", " computed_imepsilon_spectrum_nm.dat\n", " computed_imepsilon_spectrum_THz.dat\n", " emission_photon_density.dat\n", " emission_power_density.dat\n", " emission_spectrum_photons_cm-1.dat\n", " emission_spectrum_photons_eV.dat\n", " emission_spectrum_photons_nm.dat\n", " emission_spectrum_photons_THz.dat\n", " emission_spectrum_power_cm-1.dat\n", " emission_spectrum_power_eV.dat\n", " emission_spectrum_power_nm.dat\n", " emission_spectrum_power_THz.dat\n", " stim_emission_spectrum_photons_cm-1.dat\n", " stim_emission_spectrum_photons_eV.dat\n", " stim_emission_spectrum_photons_nm.dat\n", " stim_emission_spectrum_photons_THz.dat\n", " stim_emission_spectrum_power_cm-1.dat\n", " stim_emission_spectrum_power_eV.dat\n", " stim_emission_spectrum_power_nm.dat\n", " stim_emission_spectrum_power_THz.dat\n", " Quantum/\n", " amplitudes_quantum_region_Gamma_00000.dat\n", " amplitudes_quantum_region_HH_00000.dat\n", " amplitudes_quantum_region_LH_00000.dat\n", " amplitudes_quantum_region_SO_00000.dat\n", " amplitudes_shift_quantum_region_Gamma_00000.dat\n", " amplitudes_shift_quantum_region_HH_00000.dat\n", " amplitudes_shift_quantum_region_LH_00000.dat\n", " amplitudes_shift_quantum_region_SO_00000.dat\n", " energy_spectrum_quantum_region_Gamma_00000.dat\n", " energy_spectrum_quantum_region_HH_00000.dat\n", " energy_spectrum_quantum_region_LH_00000.dat\n", " energy_spectrum_quantum_region_SO_00000.dat\n", " interband_matrix_elements_quantum_region_HH_Gamma.fld\n", " interband_matrix_elements_quantum_region_HH_Gamma.txt\n", " interband_matrix_elements_quantum_region_LH_Gamma.fld\n", " interband_matrix_elements_quantum_region_LH_Gamma.txt\n", " interband_matrix_elements_quantum_region_SO_Gamma.fld\n", " interband_matrix_elements_quantum_region_SO_Gamma.txt\n", " occupation_quantum_region_Gamma.dat\n", " occupation_quantum_region_HH.dat\n", " occupation_quantum_region_LH.dat\n", " occupation_quantum_region_SO.dat\n", " probabilities_quantum_region_Gamma_00000.dat\n", " probabilities_quantum_region_HH_00000.dat\n", " probabilities_quantum_region_LH_00000.dat\n", " probabilities_quantum_region_SO_00000.dat\n", " probabilities_shift_quantum_region_Gamma_00000.dat\n", " probabilities_shift_quantum_region_HH_00000.dat\n", " probabilities_shift_quantum_region_LH_00000.dat\n", " probabilities_shift_quantum_region_SO_00000.dat\n", " transition_energies_quantum_region_HH_Gamma.fld\n", " transition_energies_quantum_region_HH_Gamma.txt\n", " transition_energies_quantum_region_LH_Gamma.fld\n", " transition_energies_quantum_region_LH_Gamma.txt\n", " transition_energies_quantum_region_SO_Gamma.fld\n", " transition_energies_quantum_region_SO_Gamma.txt\n", " bandedges.dat\n", " bandgap.dat\n", " bias_points.log\n", " current_electron.dat\n", " current_hole.dat\n", " current_total.dat\n", " density_electron.dat\n", " density_hole.dat\n", " electric_field.dat\n", " electron_density_vs_energy.fld\n", " fermi_level_all.dat\n", " fermi_level_electron.dat\n", " fermi_level_hole.dat\n", " hole_density_vs_energy.fld\n", " integrated_densities_vs_energy.dat\n", " internal_quantum_efficiency.dat\n", " iteration_current_poisson.dat\n", " iteration_quantum_current_poisson.dat\n", " iteration_quantum_current_poisson_details.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " joule_power_density.dat\n", " mobility_electron.dat\n", " mobility_hole.dat\n", " potential.dat\n", " power.dat\n", " recombination.dat\n", " total_charges.txt\n", " total_injection.txt\n", " total_injection_quantum_regions.txt\n", " total_recombination.txt\n", " total_recombination_quantum_regions.txt\n", " Strain/\n", " hydrostatic_strain.dat\n", " strain_simulation.dat\n", " Structure/\n", " alloy_composition.dat\n", " last_material_region.dat\n", " last_region.dat\n", " material.dat\n", " materials.txt\n", " bias_points.log\n", " grid_x.dat\n", " internal_quantum_efficiency.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " job_done.txt\n", " power.dat\n", " simulation_database.txt\n", " simulation_info.txt\n", " simulation_input.txt\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_2_.in\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_2_.log\n", " variables_database.txt\n", " variables_input.txt\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_3_/\n", " bias_00000/\n", " Optical/\n", " computed_absorption_spectrum_cm-1.dat\n", " computed_absorption_spectrum_eV.dat\n", " computed_absorption_spectrum_nm.dat\n", " computed_absorption_spectrum_THz.dat\n", " computed_gain_spectrum_cm-1.dat\n", " computed_gain_spectrum_eV.dat\n", " computed_gain_spectrum_nm.dat\n", " computed_gain_spectrum_THz.dat\n", " computed_imepsilon_spectrum_cm-1.dat\n", " computed_imepsilon_spectrum_eV.dat\n", " computed_imepsilon_spectrum_nm.dat\n", " computed_imepsilon_spectrum_THz.dat\n", " emission_photon_density.dat\n", " emission_power_density.dat\n", " emission_spectrum_photons_cm-1.dat\n", " emission_spectrum_photons_eV.dat\n", " emission_spectrum_photons_nm.dat\n", " emission_spectrum_photons_THz.dat\n", " emission_spectrum_power_cm-1.dat\n", " emission_spectrum_power_eV.dat\n", " emission_spectrum_power_nm.dat\n", " emission_spectrum_power_THz.dat\n", " stim_emission_spectrum_photons_cm-1.dat\n", " stim_emission_spectrum_photons_eV.dat\n", " stim_emission_spectrum_photons_nm.dat\n", " stim_emission_spectrum_photons_THz.dat\n", " stim_emission_spectrum_power_cm-1.dat\n", " stim_emission_spectrum_power_eV.dat\n", " stim_emission_spectrum_power_nm.dat\n", " stim_emission_spectrum_power_THz.dat\n", " Quantum/\n", " amplitudes_quantum_region_Gamma_00000.dat\n", " amplitudes_quantum_region_HH_00000.dat\n", " amplitudes_quantum_region_LH_00000.dat\n", " amplitudes_quantum_region_SO_00000.dat\n", " amplitudes_shift_quantum_region_Gamma_00000.dat\n", " amplitudes_shift_quantum_region_HH_00000.dat\n", " amplitudes_shift_quantum_region_LH_00000.dat\n", " amplitudes_shift_quantum_region_SO_00000.dat\n", " energy_spectrum_quantum_region_Gamma_00000.dat\n", " energy_spectrum_quantum_region_HH_00000.dat\n", " energy_spectrum_quantum_region_LH_00000.dat\n", " energy_spectrum_quantum_region_SO_00000.dat\n", " interband_matrix_elements_quantum_region_HH_Gamma.fld\n", " interband_matrix_elements_quantum_region_HH_Gamma.txt\n", " interband_matrix_elements_quantum_region_LH_Gamma.fld\n", " interband_matrix_elements_quantum_region_LH_Gamma.txt\n", " interband_matrix_elements_quantum_region_SO_Gamma.fld\n", " interband_matrix_elements_quantum_region_SO_Gamma.txt\n", " occupation_quantum_region_Gamma.dat\n", " occupation_quantum_region_HH.dat\n", " occupation_quantum_region_LH.dat\n", " occupation_quantum_region_SO.dat\n", " probabilities_quantum_region_Gamma_00000.dat\n", " probabilities_quantum_region_HH_00000.dat\n", " probabilities_quantum_region_LH_00000.dat\n", " probabilities_quantum_region_SO_00000.dat\n", " probabilities_shift_quantum_region_Gamma_00000.dat\n", " probabilities_shift_quantum_region_HH_00000.dat\n", " probabilities_shift_quantum_region_LH_00000.dat\n", " probabilities_shift_quantum_region_SO_00000.dat\n", " transition_energies_quantum_region_HH_Gamma.fld\n", " transition_energies_quantum_region_HH_Gamma.txt\n", " transition_energies_quantum_region_LH_Gamma.fld\n", " transition_energies_quantum_region_LH_Gamma.txt\n", " transition_energies_quantum_region_SO_Gamma.fld\n", " transition_energies_quantum_region_SO_Gamma.txt\n", " bandedges.dat\n", " bandgap.dat\n", " bias_points.log\n", " current_electron.dat\n", " current_hole.dat\n", " current_total.dat\n", " density_electron.dat\n", " density_hole.dat\n", " electric_field.dat\n", " electron_density_vs_energy.fld\n", " fermi_level_all.dat\n", " fermi_level_electron.dat\n", " fermi_level_hole.dat\n", " hole_density_vs_energy.fld\n", " integrated_densities_vs_energy.dat\n", " internal_quantum_efficiency.dat\n", " iteration_current_poisson.dat\n", " iteration_quantum_current_poisson.dat\n", " iteration_quantum_current_poisson_details.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " joule_power_density.dat\n", " mobility_electron.dat\n", " mobility_hole.dat\n", " potential.dat\n", " power.dat\n", " recombination.dat\n", " total_charges.txt\n", " total_injection.txt\n", " total_injection_quantum_regions.txt\n", " total_recombination.txt\n", " total_recombination_quantum_regions.txt\n", " Strain/\n", " hydrostatic_strain.dat\n", " strain_simulation.dat\n", " Structure/\n", " alloy_composition.dat\n", " last_material_region.dat\n", " last_region.dat\n", " material.dat\n", " materials.txt\n", " bias_points.log\n", " grid_x.dat\n", " internal_quantum_efficiency.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " job_done.txt\n", " power.dat\n", " simulation_database.txt\n", " simulation_info.txt\n", " simulation_input.txt\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_3_.in\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_3_.log\n", " variables_database.txt\n", " variables_input.txt\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_4_/\n", " bias_00000/\n", " Optical/\n", " computed_absorption_spectrum_cm-1.dat\n", " computed_absorption_spectrum_eV.dat\n", " computed_absorption_spectrum_nm.dat\n", " computed_absorption_spectrum_THz.dat\n", " computed_gain_spectrum_cm-1.dat\n", " computed_gain_spectrum_eV.dat\n", " computed_gain_spectrum_nm.dat\n", " computed_gain_spectrum_THz.dat\n", " computed_imepsilon_spectrum_cm-1.dat\n", " computed_imepsilon_spectrum_eV.dat\n", " computed_imepsilon_spectrum_nm.dat\n", " computed_imepsilon_spectrum_THz.dat\n", " emission_photon_density.dat\n", " emission_power_density.dat\n", " emission_spectrum_photons_cm-1.dat\n", " emission_spectrum_photons_eV.dat\n", " emission_spectrum_photons_nm.dat\n", " emission_spectrum_photons_THz.dat\n", " emission_spectrum_power_cm-1.dat\n", " emission_spectrum_power_eV.dat\n", " emission_spectrum_power_nm.dat\n", " emission_spectrum_power_THz.dat\n", " stim_emission_spectrum_photons_cm-1.dat\n", " stim_emission_spectrum_photons_eV.dat\n", " stim_emission_spectrum_photons_nm.dat\n", " stim_emission_spectrum_photons_THz.dat\n", " stim_emission_spectrum_power_cm-1.dat\n", " stim_emission_spectrum_power_eV.dat\n", " stim_emission_spectrum_power_nm.dat\n", " stim_emission_spectrum_power_THz.dat\n", " Quantum/\n", " amplitudes_quantum_region_Gamma_00000.dat\n", " amplitudes_quantum_region_HH_00000.dat\n", " amplitudes_quantum_region_LH_00000.dat\n", " amplitudes_quantum_region_SO_00000.dat\n", " amplitudes_shift_quantum_region_Gamma_00000.dat\n", " amplitudes_shift_quantum_region_HH_00000.dat\n", " amplitudes_shift_quantum_region_LH_00000.dat\n", " amplitudes_shift_quantum_region_SO_00000.dat\n", " energy_spectrum_quantum_region_Gamma_00000.dat\n", " energy_spectrum_quantum_region_HH_00000.dat\n", " energy_spectrum_quantum_region_LH_00000.dat\n", " energy_spectrum_quantum_region_SO_00000.dat\n", " interband_matrix_elements_quantum_region_HH_Gamma.fld\n", " interband_matrix_elements_quantum_region_HH_Gamma.txt\n", " interband_matrix_elements_quantum_region_LH_Gamma.fld\n", " interband_matrix_elements_quantum_region_LH_Gamma.txt\n", " interband_matrix_elements_quantum_region_SO_Gamma.fld\n", " interband_matrix_elements_quantum_region_SO_Gamma.txt\n", " occupation_quantum_region_Gamma.dat\n", " occupation_quantum_region_HH.dat\n", " occupation_quantum_region_LH.dat\n", " occupation_quantum_region_SO.dat\n", " probabilities_quantum_region_Gamma_00000.dat\n", " probabilities_quantum_region_HH_00000.dat\n", " probabilities_quantum_region_LH_00000.dat\n", " probabilities_quantum_region_SO_00000.dat\n", " probabilities_shift_quantum_region_Gamma_00000.dat\n", " probabilities_shift_quantum_region_HH_00000.dat\n", " probabilities_shift_quantum_region_LH_00000.dat\n", " probabilities_shift_quantum_region_SO_00000.dat\n", " transition_energies_quantum_region_HH_Gamma.fld\n", " transition_energies_quantum_region_HH_Gamma.txt\n", " transition_energies_quantum_region_LH_Gamma.fld\n", " transition_energies_quantum_region_LH_Gamma.txt\n", " transition_energies_quantum_region_SO_Gamma.fld\n", " transition_energies_quantum_region_SO_Gamma.txt\n", " bandedges.dat\n", " bandgap.dat\n", " bias_points.log\n", " current_electron.dat\n", " current_hole.dat\n", " current_total.dat\n", " density_electron.dat\n", " density_hole.dat\n", " electric_field.dat\n", " electron_density_vs_energy.fld\n", " fermi_level_all.dat\n", " fermi_level_electron.dat\n", " fermi_level_hole.dat\n", " hole_density_vs_energy.fld\n", " integrated_densities_vs_energy.dat\n", " internal_quantum_efficiency.dat\n", " iteration_current_poisson.dat\n", " iteration_quantum_current_poisson.dat\n", " iteration_quantum_current_poisson_details.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " joule_power_density.dat\n", " mobility_electron.dat\n", " mobility_hole.dat\n", " potential.dat\n", " power.dat\n", " recombination.dat\n", " total_charges.txt\n", " total_injection.txt\n", " total_injection_quantum_regions.txt\n", " total_recombination.txt\n", " total_recombination_quantum_regions.txt\n", " Strain/\n", " hydrostatic_strain.dat\n", " strain_simulation.dat\n", " Structure/\n", " alloy_composition.dat\n", " last_material_region.dat\n", " last_region.dat\n", " material.dat\n", " materials.txt\n", " bias_points.log\n", " grid_x.dat\n", " internal_quantum_efficiency.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " job_done.txt\n", " power.dat\n", " simulation_database.txt\n", " simulation_info.txt\n", " simulation_input.txt\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_4_.in\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_4_.log\n", " variables_database.txt\n", " variables_input.txt\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_5_/\n", " bias_00000/\n", " Optical/\n", " computed_absorption_spectrum_cm-1.dat\n", " computed_absorption_spectrum_eV.dat\n", " computed_absorption_spectrum_nm.dat\n", " computed_absorption_spectrum_THz.dat\n", " computed_gain_spectrum_cm-1.dat\n", " computed_gain_spectrum_eV.dat\n", " computed_gain_spectrum_nm.dat\n", " computed_gain_spectrum_THz.dat\n", " computed_imepsilon_spectrum_cm-1.dat\n", " computed_imepsilon_spectrum_eV.dat\n", " computed_imepsilon_spectrum_nm.dat\n", " computed_imepsilon_spectrum_THz.dat\n", " emission_photon_density.dat\n", " emission_power_density.dat\n", " emission_spectrum_photons_cm-1.dat\n", " emission_spectrum_photons_eV.dat\n", " emission_spectrum_photons_nm.dat\n", " emission_spectrum_photons_THz.dat\n", " emission_spectrum_power_cm-1.dat\n", " emission_spectrum_power_eV.dat\n", " emission_spectrum_power_nm.dat\n", " emission_spectrum_power_THz.dat\n", " stim_emission_spectrum_photons_cm-1.dat\n", " stim_emission_spectrum_photons_eV.dat\n", " stim_emission_spectrum_photons_nm.dat\n", " stim_emission_spectrum_photons_THz.dat\n", " stim_emission_spectrum_power_cm-1.dat\n", " stim_emission_spectrum_power_eV.dat\n", " stim_emission_spectrum_power_nm.dat\n", " stim_emission_spectrum_power_THz.dat\n", " Quantum/\n", " amplitudes_quantum_region_Gamma_00000.dat\n", " amplitudes_quantum_region_HH_00000.dat\n", " amplitudes_quantum_region_LH_00000.dat\n", " amplitudes_quantum_region_SO_00000.dat\n", " amplitudes_shift_quantum_region_Gamma_00000.dat\n", " amplitudes_shift_quantum_region_HH_00000.dat\n", " amplitudes_shift_quantum_region_LH_00000.dat\n", " amplitudes_shift_quantum_region_SO_00000.dat\n", " energy_spectrum_quantum_region_Gamma_00000.dat\n", " energy_spectrum_quantum_region_HH_00000.dat\n", " energy_spectrum_quantum_region_LH_00000.dat\n", " energy_spectrum_quantum_region_SO_00000.dat\n", " interband_matrix_elements_quantum_region_HH_Gamma.fld\n", " interband_matrix_elements_quantum_region_HH_Gamma.txt\n", " interband_matrix_elements_quantum_region_LH_Gamma.fld\n", " interband_matrix_elements_quantum_region_LH_Gamma.txt\n", " interband_matrix_elements_quantum_region_SO_Gamma.fld\n", " interband_matrix_elements_quantum_region_SO_Gamma.txt\n", " occupation_quantum_region_Gamma.dat\n", " occupation_quantum_region_HH.dat\n", " occupation_quantum_region_LH.dat\n", " occupation_quantum_region_SO.dat\n", " probabilities_quantum_region_Gamma_00000.dat\n", " probabilities_quantum_region_HH_00000.dat\n", " probabilities_quantum_region_LH_00000.dat\n", " probabilities_quantum_region_SO_00000.dat\n", " probabilities_shift_quantum_region_Gamma_00000.dat\n", " probabilities_shift_quantum_region_HH_00000.dat\n", " probabilities_shift_quantum_region_LH_00000.dat\n", " probabilities_shift_quantum_region_SO_00000.dat\n", " transition_energies_quantum_region_HH_Gamma.fld\n", " transition_energies_quantum_region_HH_Gamma.txt\n", " transition_energies_quantum_region_LH_Gamma.fld\n", " transition_energies_quantum_region_LH_Gamma.txt\n", " transition_energies_quantum_region_SO_Gamma.fld\n", " transition_energies_quantum_region_SO_Gamma.txt\n", " bandedges.dat\n", " bandgap.dat\n", " bias_points.log\n", " current_electron.dat\n", " current_hole.dat\n", " current_total.dat\n", " density_electron.dat\n", " density_hole.dat\n", " electric_field.dat\n", " electron_density_vs_energy.fld\n", " fermi_level_all.dat\n", " fermi_level_electron.dat\n", " fermi_level_hole.dat\n", " hole_density_vs_energy.fld\n", " integrated_densities_vs_energy.dat\n", " internal_quantum_efficiency.dat\n", " iteration_current_poisson.dat\n", " iteration_quantum_current_poisson.dat\n", " iteration_quantum_current_poisson_details.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " joule_power_density.dat\n", " mobility_electron.dat\n", " mobility_hole.dat\n", " potential.dat\n", " power.dat\n", " recombination.dat\n", " total_charges.txt\n", " total_injection.txt\n", " total_injection_quantum_regions.txt\n", " total_recombination.txt\n", " total_recombination_quantum_regions.txt\n", " Strain/\n", " hydrostatic_strain.dat\n", " strain_simulation.dat\n", " Structure/\n", " alloy_composition.dat\n", " last_material_region.dat\n", " last_region.dat\n", " material.dat\n", " materials.txt\n", " bias_points.log\n", " grid_x.dat\n", " internal_quantum_efficiency.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " job_done.txt\n", " power.dat\n", " simulation_database.txt\n", " simulation_info.txt\n", " simulation_input.txt\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_5_.in\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_5_.log\n", " variables_database.txt\n", " variables_input.txt\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_6_/\n", " bias_00000/\n", " Optical/\n", " computed_absorption_spectrum_cm-1.dat\n", " computed_absorption_spectrum_eV.dat\n", " computed_absorption_spectrum_nm.dat\n", " computed_absorption_spectrum_THz.dat\n", " computed_gain_spectrum_cm-1.dat\n", " computed_gain_spectrum_eV.dat\n", " computed_gain_spectrum_nm.dat\n", " computed_gain_spectrum_THz.dat\n", " computed_imepsilon_spectrum_cm-1.dat\n", " computed_imepsilon_spectrum_eV.dat\n", " computed_imepsilon_spectrum_nm.dat\n", " computed_imepsilon_spectrum_THz.dat\n", " emission_photon_density.dat\n", " emission_power_density.dat\n", " emission_spectrum_photons_cm-1.dat\n", " emission_spectrum_photons_eV.dat\n", " emission_spectrum_photons_nm.dat\n", " emission_spectrum_photons_THz.dat\n", " emission_spectrum_power_cm-1.dat\n", " emission_spectrum_power_eV.dat\n", " emission_spectrum_power_nm.dat\n", " emission_spectrum_power_THz.dat\n", " stim_emission_spectrum_photons_cm-1.dat\n", " stim_emission_spectrum_photons_eV.dat\n", " stim_emission_spectrum_photons_nm.dat\n", " stim_emission_spectrum_photons_THz.dat\n", " stim_emission_spectrum_power_cm-1.dat\n", " stim_emission_spectrum_power_eV.dat\n", " stim_emission_spectrum_power_nm.dat\n", " stim_emission_spectrum_power_THz.dat\n", " Quantum/\n", " amplitudes_quantum_region_Gamma_00000.dat\n", " amplitudes_quantum_region_HH_00000.dat\n", " amplitudes_quantum_region_LH_00000.dat\n", " amplitudes_quantum_region_SO_00000.dat\n", " amplitudes_shift_quantum_region_Gamma_00000.dat\n", " amplitudes_shift_quantum_region_HH_00000.dat\n", " amplitudes_shift_quantum_region_LH_00000.dat\n", " amplitudes_shift_quantum_region_SO_00000.dat\n", " energy_spectrum_quantum_region_Gamma_00000.dat\n", " energy_spectrum_quantum_region_HH_00000.dat\n", " energy_spectrum_quantum_region_LH_00000.dat\n", " energy_spectrum_quantum_region_SO_00000.dat\n", " interband_matrix_elements_quantum_region_HH_Gamma.fld\n", " interband_matrix_elements_quantum_region_HH_Gamma.txt\n", " interband_matrix_elements_quantum_region_LH_Gamma.fld\n", " interband_matrix_elements_quantum_region_LH_Gamma.txt\n", " interband_matrix_elements_quantum_region_SO_Gamma.fld\n", " interband_matrix_elements_quantum_region_SO_Gamma.txt\n", " occupation_quantum_region_Gamma.dat\n", " occupation_quantum_region_HH.dat\n", " occupation_quantum_region_LH.dat\n", " occupation_quantum_region_SO.dat\n", " probabilities_quantum_region_Gamma_00000.dat\n", " probabilities_quantum_region_HH_00000.dat\n", " probabilities_quantum_region_LH_00000.dat\n", " probabilities_quantum_region_SO_00000.dat\n", " probabilities_shift_quantum_region_Gamma_00000.dat\n", " probabilities_shift_quantum_region_HH_00000.dat\n", " probabilities_shift_quantum_region_LH_00000.dat\n", " probabilities_shift_quantum_region_SO_00000.dat\n", " transition_energies_quantum_region_HH_Gamma.fld\n", " transition_energies_quantum_region_HH_Gamma.txt\n", " transition_energies_quantum_region_LH_Gamma.fld\n", " transition_energies_quantum_region_LH_Gamma.txt\n", " transition_energies_quantum_region_SO_Gamma.fld\n", " transition_energies_quantum_region_SO_Gamma.txt\n", " bandedges.dat\n", " bandgap.dat\n", " bias_points.log\n", " current_electron.dat\n", " current_hole.dat\n", " current_total.dat\n", " density_electron.dat\n", " density_hole.dat\n", " electric_field.dat\n", " electron_density_vs_energy.fld\n", " fermi_level_all.dat\n", " fermi_level_electron.dat\n", " fermi_level_hole.dat\n", " hole_density_vs_energy.fld\n", " integrated_densities_vs_energy.dat\n", " internal_quantum_efficiency.dat\n", " iteration_current_poisson.dat\n", " iteration_quantum_current_poisson.dat\n", " iteration_quantum_current_poisson_details.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " joule_power_density.dat\n", " mobility_electron.dat\n", " mobility_hole.dat\n", " potential.dat\n", " power.dat\n", " recombination.dat\n", " total_charges.txt\n", " total_injection.txt\n", " total_injection_quantum_regions.txt\n", " total_recombination.txt\n", " total_recombination_quantum_regions.txt\n", " Strain/\n", " hydrostatic_strain.dat\n", " strain_simulation.dat\n", " Structure/\n", " alloy_composition.dat\n", " last_material_region.dat\n", " last_region.dat\n", " material.dat\n", " materials.txt\n", " bias_points.log\n", " grid_x.dat\n", " internal_quantum_efficiency.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " job_done.txt\n", " power.dat\n", " simulation_database.txt\n", " simulation_info.txt\n", " simulation_input.txt\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_6_.in\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_6_.log\n", " variables_database.txt\n", " variables_input.txt\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_7_/\n", " bias_00000/\n", " Optical/\n", " computed_absorption_spectrum_cm-1.dat\n", " computed_absorption_spectrum_eV.dat\n", " computed_absorption_spectrum_nm.dat\n", " computed_absorption_spectrum_THz.dat\n", " computed_gain_spectrum_cm-1.dat\n", " computed_gain_spectrum_eV.dat\n", " computed_gain_spectrum_nm.dat\n", " computed_gain_spectrum_THz.dat\n", " computed_imepsilon_spectrum_cm-1.dat\n", " computed_imepsilon_spectrum_eV.dat\n", " computed_imepsilon_spectrum_nm.dat\n", " computed_imepsilon_spectrum_THz.dat\n", " emission_photon_density.dat\n", " emission_power_density.dat\n", " emission_spectrum_photons_cm-1.dat\n", " emission_spectrum_photons_eV.dat\n", " emission_spectrum_photons_nm.dat\n", " emission_spectrum_photons_THz.dat\n", " emission_spectrum_power_cm-1.dat\n", " emission_spectrum_power_eV.dat\n", " emission_spectrum_power_nm.dat\n", " emission_spectrum_power_THz.dat\n", " stim_emission_spectrum_photons_cm-1.dat\n", " stim_emission_spectrum_photons_eV.dat\n", " stim_emission_spectrum_photons_nm.dat\n", " stim_emission_spectrum_photons_THz.dat\n", " stim_emission_spectrum_power_cm-1.dat\n", " stim_emission_spectrum_power_eV.dat\n", " stim_emission_spectrum_power_nm.dat\n", " stim_emission_spectrum_power_THz.dat\n", " Quantum/\n", " amplitudes_quantum_region_Gamma_00000.dat\n", " amplitudes_quantum_region_HH_00000.dat\n", " amplitudes_quantum_region_LH_00000.dat\n", " amplitudes_quantum_region_SO_00000.dat\n", " amplitudes_shift_quantum_region_Gamma_00000.dat\n", " amplitudes_shift_quantum_region_HH_00000.dat\n", " amplitudes_shift_quantum_region_LH_00000.dat\n", " amplitudes_shift_quantum_region_SO_00000.dat\n", " energy_spectrum_quantum_region_Gamma_00000.dat\n", " energy_spectrum_quantum_region_HH_00000.dat\n", " energy_spectrum_quantum_region_LH_00000.dat\n", " energy_spectrum_quantum_region_SO_00000.dat\n", " interband_matrix_elements_quantum_region_HH_Gamma.fld\n", " interband_matrix_elements_quantum_region_HH_Gamma.txt\n", " interband_matrix_elements_quantum_region_LH_Gamma.fld\n", " interband_matrix_elements_quantum_region_LH_Gamma.txt\n", " interband_matrix_elements_quantum_region_SO_Gamma.fld\n", " interband_matrix_elements_quantum_region_SO_Gamma.txt\n", " occupation_quantum_region_Gamma.dat\n", " occupation_quantum_region_HH.dat\n", " occupation_quantum_region_LH.dat\n", " occupation_quantum_region_SO.dat\n", " probabilities_quantum_region_Gamma_00000.dat\n", " probabilities_quantum_region_HH_00000.dat\n", " probabilities_quantum_region_LH_00000.dat\n", " probabilities_quantum_region_SO_00000.dat\n", " probabilities_shift_quantum_region_Gamma_00000.dat\n", " probabilities_shift_quantum_region_HH_00000.dat\n", " probabilities_shift_quantum_region_LH_00000.dat\n", " probabilities_shift_quantum_region_SO_00000.dat\n", " transition_energies_quantum_region_HH_Gamma.fld\n", " transition_energies_quantum_region_HH_Gamma.txt\n", " transition_energies_quantum_region_LH_Gamma.fld\n", " transition_energies_quantum_region_LH_Gamma.txt\n", " transition_energies_quantum_region_SO_Gamma.fld\n", " transition_energies_quantum_region_SO_Gamma.txt\n", " bandedges.dat\n", " bandgap.dat\n", " bias_points.log\n", " current_electron.dat\n", " current_hole.dat\n", " current_total.dat\n", " density_electron.dat\n", " density_hole.dat\n", " electric_field.dat\n", " electron_density_vs_energy.fld\n", " fermi_level_all.dat\n", " fermi_level_electron.dat\n", " fermi_level_hole.dat\n", " hole_density_vs_energy.fld\n", " integrated_densities_vs_energy.dat\n", " internal_quantum_efficiency.dat\n", " iteration_current_poisson.dat\n", " iteration_quantum_current_poisson.dat\n", " iteration_quantum_current_poisson_details.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " joule_power_density.dat\n", " mobility_electron.dat\n", " mobility_hole.dat\n", " potential.dat\n", " power.dat\n", " recombination.dat\n", " total_charges.txt\n", " total_injection.txt\n", " total_injection_quantum_regions.txt\n", " total_recombination.txt\n", " total_recombination_quantum_regions.txt\n", " Strain/\n", " hydrostatic_strain.dat\n", " strain_simulation.dat\n", " Structure/\n", " alloy_composition.dat\n", " last_material_region.dat\n", " last_region.dat\n", " material.dat\n", " materials.txt\n", " bias_points.log\n", " grid_x.dat\n", " internal_quantum_efficiency.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " job_done.txt\n", " power.dat\n", " simulation_database.txt\n", " simulation_info.txt\n", " simulation_input.txt\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_7_.in\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_7_.log\n", " variables_database.txt\n", " variables_input.txt\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_8_/\n", " bias_00000/\n", " Optical/\n", " computed_absorption_spectrum_cm-1.dat\n", " computed_absorption_spectrum_eV.dat\n", " computed_absorption_spectrum_nm.dat\n", " computed_absorption_spectrum_THz.dat\n", " computed_gain_spectrum_cm-1.dat\n", " computed_gain_spectrum_eV.dat\n", " computed_gain_spectrum_nm.dat\n", " computed_gain_spectrum_THz.dat\n", " computed_imepsilon_spectrum_cm-1.dat\n", " computed_imepsilon_spectrum_eV.dat\n", " computed_imepsilon_spectrum_nm.dat\n", " computed_imepsilon_spectrum_THz.dat\n", " emission_photon_density.dat\n", " emission_power_density.dat\n", " emission_spectrum_photons_cm-1.dat\n", " emission_spectrum_photons_eV.dat\n", " emission_spectrum_photons_nm.dat\n", " emission_spectrum_photons_THz.dat\n", " emission_spectrum_power_cm-1.dat\n", " emission_spectrum_power_eV.dat\n", " emission_spectrum_power_nm.dat\n", " emission_spectrum_power_THz.dat\n", " stim_emission_spectrum_photons_cm-1.dat\n", " stim_emission_spectrum_photons_eV.dat\n", " stim_emission_spectrum_photons_nm.dat\n", " stim_emission_spectrum_photons_THz.dat\n", " stim_emission_spectrum_power_cm-1.dat\n", " stim_emission_spectrum_power_eV.dat\n", " stim_emission_spectrum_power_nm.dat\n", " stim_emission_spectrum_power_THz.dat\n", " Quantum/\n", " amplitudes_quantum_region_Gamma_00000.dat\n", " amplitudes_quantum_region_HH_00000.dat\n", " amplitudes_quantum_region_LH_00000.dat\n", " amplitudes_quantum_region_SO_00000.dat\n", " amplitudes_shift_quantum_region_Gamma_00000.dat\n", " amplitudes_shift_quantum_region_HH_00000.dat\n", " amplitudes_shift_quantum_region_LH_00000.dat\n", " amplitudes_shift_quantum_region_SO_00000.dat\n", " energy_spectrum_quantum_region_Gamma_00000.dat\n", " energy_spectrum_quantum_region_HH_00000.dat\n", " energy_spectrum_quantum_region_LH_00000.dat\n", " energy_spectrum_quantum_region_SO_00000.dat\n", " interband_matrix_elements_quantum_region_HH_Gamma.fld\n", " interband_matrix_elements_quantum_region_HH_Gamma.txt\n", " interband_matrix_elements_quantum_region_LH_Gamma.fld\n", " interband_matrix_elements_quantum_region_LH_Gamma.txt\n", " interband_matrix_elements_quantum_region_SO_Gamma.fld\n", " interband_matrix_elements_quantum_region_SO_Gamma.txt\n", " occupation_quantum_region_Gamma.dat\n", " occupation_quantum_region_HH.dat\n", " occupation_quantum_region_LH.dat\n", " occupation_quantum_region_SO.dat\n", " probabilities_quantum_region_Gamma_00000.dat\n", " probabilities_quantum_region_HH_00000.dat\n", " probabilities_quantum_region_LH_00000.dat\n", " probabilities_quantum_region_SO_00000.dat\n", " probabilities_shift_quantum_region_Gamma_00000.dat\n", " probabilities_shift_quantum_region_HH_00000.dat\n", " probabilities_shift_quantum_region_LH_00000.dat\n", " probabilities_shift_quantum_region_SO_00000.dat\n", " transition_energies_quantum_region_HH_Gamma.fld\n", " transition_energies_quantum_region_HH_Gamma.txt\n", " transition_energies_quantum_region_LH_Gamma.fld\n", " transition_energies_quantum_region_LH_Gamma.txt\n", " transition_energies_quantum_region_SO_Gamma.fld\n", " transition_energies_quantum_region_SO_Gamma.txt\n", " bandedges.dat\n", " bandgap.dat\n", " bias_points.log\n", " current_electron.dat\n", " current_hole.dat\n", " current_total.dat\n", " density_electron.dat\n", " density_hole.dat\n", " electric_field.dat\n", " electron_density_vs_energy.fld\n", " fermi_level_all.dat\n", " fermi_level_electron.dat\n", " fermi_level_hole.dat\n", " hole_density_vs_energy.fld\n", " integrated_densities_vs_energy.dat\n", " internal_quantum_efficiency.dat\n", " iteration_current_poisson.dat\n", " iteration_quantum_current_poisson.dat\n", " iteration_quantum_current_poisson_details.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " joule_power_density.dat\n", " mobility_electron.dat\n", " mobility_hole.dat\n", " potential.dat\n", " power.dat\n", " recombination.dat\n", " total_charges.txt\n", " total_injection.txt\n", " total_injection_quantum_regions.txt\n", " total_recombination.txt\n", " total_recombination_quantum_regions.txt\n", " Strain/\n", " hydrostatic_strain.dat\n", " strain_simulation.dat\n", " Structure/\n", " alloy_composition.dat\n", " last_material_region.dat\n", " last_region.dat\n", " material.dat\n", " materials.txt\n", " bias_points.log\n", " grid_x.dat\n", " internal_quantum_efficiency.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " job_done.txt\n", " power.dat\n", " simulation_database.txt\n", " simulation_info.txt\n", " simulation_input.txt\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_8_.in\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_8_.log\n", " variables_database.txt\n", " variables_input.txt\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_9_/\n", " bias_00000/\n", " Optical/\n", " computed_absorption_spectrum_cm-1.dat\n", " computed_absorption_spectrum_eV.dat\n", " computed_absorption_spectrum_nm.dat\n", " computed_absorption_spectrum_THz.dat\n", " computed_gain_spectrum_cm-1.dat\n", " computed_gain_spectrum_eV.dat\n", " computed_gain_spectrum_nm.dat\n", " computed_gain_spectrum_THz.dat\n", " computed_imepsilon_spectrum_cm-1.dat\n", " computed_imepsilon_spectrum_eV.dat\n", " computed_imepsilon_spectrum_nm.dat\n", " computed_imepsilon_spectrum_THz.dat\n", " emission_photon_density.dat\n", " emission_power_density.dat\n", " emission_spectrum_photons_cm-1.dat\n", " emission_spectrum_photons_eV.dat\n", " emission_spectrum_photons_nm.dat\n", " emission_spectrum_photons_THz.dat\n", " emission_spectrum_power_cm-1.dat\n", " emission_spectrum_power_eV.dat\n", " emission_spectrum_power_nm.dat\n", " emission_spectrum_power_THz.dat\n", " stim_emission_spectrum_photons_cm-1.dat\n", " stim_emission_spectrum_photons_eV.dat\n", " stim_emission_spectrum_photons_nm.dat\n", " stim_emission_spectrum_photons_THz.dat\n", " stim_emission_spectrum_power_cm-1.dat\n", " stim_emission_spectrum_power_eV.dat\n", " stim_emission_spectrum_power_nm.dat\n", " stim_emission_spectrum_power_THz.dat\n", " Quantum/\n", " amplitudes_quantum_region_Gamma_00000.dat\n", " amplitudes_quantum_region_HH_00000.dat\n", " amplitudes_quantum_region_LH_00000.dat\n", " amplitudes_quantum_region_SO_00000.dat\n", " amplitudes_shift_quantum_region_Gamma_00000.dat\n", " amplitudes_shift_quantum_region_HH_00000.dat\n", " amplitudes_shift_quantum_region_LH_00000.dat\n", " amplitudes_shift_quantum_region_SO_00000.dat\n", " energy_spectrum_quantum_region_Gamma_00000.dat\n", " energy_spectrum_quantum_region_HH_00000.dat\n", " energy_spectrum_quantum_region_LH_00000.dat\n", " energy_spectrum_quantum_region_SO_00000.dat\n", " interband_matrix_elements_quantum_region_HH_Gamma.fld\n", " interband_matrix_elements_quantum_region_HH_Gamma.txt\n", " interband_matrix_elements_quantum_region_LH_Gamma.fld\n", " interband_matrix_elements_quantum_region_LH_Gamma.txt\n", " interband_matrix_elements_quantum_region_SO_Gamma.fld\n", " interband_matrix_elements_quantum_region_SO_Gamma.txt\n", " occupation_quantum_region_Gamma.dat\n", " occupation_quantum_region_HH.dat\n", " occupation_quantum_region_LH.dat\n", " occupation_quantum_region_SO.dat\n", " probabilities_quantum_region_Gamma_00000.dat\n", " probabilities_quantum_region_HH_00000.dat\n", " probabilities_quantum_region_LH_00000.dat\n", " probabilities_quantum_region_SO_00000.dat\n", " probabilities_shift_quantum_region_Gamma_00000.dat\n", " probabilities_shift_quantum_region_HH_00000.dat\n", " probabilities_shift_quantum_region_LH_00000.dat\n", " probabilities_shift_quantum_region_SO_00000.dat\n", " transition_energies_quantum_region_HH_Gamma.fld\n", " transition_energies_quantum_region_HH_Gamma.txt\n", " transition_energies_quantum_region_LH_Gamma.fld\n", " transition_energies_quantum_region_LH_Gamma.txt\n", " transition_energies_quantum_region_SO_Gamma.fld\n", " transition_energies_quantum_region_SO_Gamma.txt\n", " bandedges.dat\n", " bandgap.dat\n", " bias_points.log\n", " current_electron.dat\n", " current_hole.dat\n", " current_total.dat\n", " density_electron.dat\n", " density_hole.dat\n", " electric_field.dat\n", " electron_density_vs_energy.fld\n", " fermi_level_all.dat\n", " fermi_level_electron.dat\n", " fermi_level_hole.dat\n", " hole_density_vs_energy.fld\n", " integrated_densities_vs_energy.dat\n", " internal_quantum_efficiency.dat\n", " iteration_current_poisson.dat\n", " iteration_quantum_current_poisson.dat\n", " iteration_quantum_current_poisson_details.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " joule_power_density.dat\n", " mobility_electron.dat\n", " mobility_hole.dat\n", " potential.dat\n", " power.dat\n", " recombination.dat\n", " total_charges.txt\n", " total_injection.txt\n", " total_injection_quantum_regions.txt\n", " total_recombination.txt\n", " total_recombination_quantum_regions.txt\n", " Strain/\n", " hydrostatic_strain.dat\n", " strain_simulation.dat\n", " Structure/\n", " alloy_composition.dat\n", " last_material_region.dat\n", " last_region.dat\n", " material.dat\n", " materials.txt\n", " bias_points.log\n", " grid_x.dat\n", " internal_quantum_efficiency.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " job_done.txt\n", " power.dat\n", " simulation_database.txt\n", " simulation_info.txt\n", " simulation_input.txt\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_9_.in\n", " Superlattice_N_Wells__NUMBER_OF_WELLS_9_.log\n", " variables_database.txt\n", " variables_input.txt\n", " sweep_info.txt\n" ] } ], "source": [ "sweepFolder.show_tree()" ] }, { "cell_type": "markdown", "id": "f69efb9c", "metadata": {}, "source": [ "## Plotting the $\\Gamma$ band edges\n", "\n", "We obtain the x coordinates and the gamma bandedge values with the following lines" ] }, { "cell_type": "code", "execution_count": 14, "id": "b4f4d494", "metadata": {}, "outputs": [], "source": [ "x = nn.DataFile(sweepFolder.go_to('Superlattice_N_Wells__NUMBER_OF_WELLS_2_', 'bias_00000', 'bandedges.dat'), product = software).coords['x'].value\n", "gamma = nn.DataFile(sweepFolder.go_to('Superlattice_N_Wells__NUMBER_OF_WELLS_2_', 'bias_00000', 'bandedges.dat'), product = software).variables['Gamma'].value" ] }, { "cell_type": "markdown", "id": "f6a3383f", "metadata": {}, "source": [ "Before we plot the $\\Gamma$ energies against $x$, we check that the dimensions are identical" ] }, { "cell_type": "code", "execution_count": 15, "id": "2a3f9e19", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.size(x) == np.size(gamma)" ] }, { "cell_type": "code", "execution_count": 16, "id": "669dbf5f", "metadata": {}, "outputs": [], "source": [ "palette = ['#343131','#13adb5']\n", "plt.style.use('default')\n", "plt.style.use('seaborn-deep')" ] }, { "cell_type": "code", "execution_count": 17, "id": "9aad6b84", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGdCAYAAADAAnMpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAdJ0lEQVR4nO3dcXDX9X348VcC5htUiCIaQCKmapUu164NuibKWnWmQ37cdrdTNu8KVbhrjMgPad1E7iZybXFex+hUUH8KXO8ssq7as3dZNbtWQNFN0rhSse1OkCAk5UJdkqImEj6/PxzpYgLmG5hvAo/H3feu+XzfHz6vvM/i00+++X4LsizLAgAgkcLUAwAApzYxAgAkJUYAgKTECACQlBgBAJISIwBAUmIEAEhKjAAASY1MPcBgHDp0KPbu3RujR4+OgoKC1OMAAIOQZVl0dnbGxIkTo7DwyPc/hkWM7N27N8rKylKPAQAMwe7du2PSpElHfH5YxMjo0aMj4oNvZsyYMYmnAQAGo6OjI8rKynr/PX4kwyJGDv9oZsyYMWIEAIaZj3qJhRewAgBJiREAICkxAgAkJUYAgKTECACQlBgBAJISIwBAUmIEAEhKjAAASYkRACApMQIAJCVGAICkhsUH5aXS03Montm8I9r+693Uo0A/hYUFcXVlWXzi/JJkM/zijbZ46RctEVmyESIiIlc0ImZcWR7nlIxKNsPGn70Vv25+O9n14Wg+e+l5MXVKaeoxjkiMHMVrO/fHmh+9lnoMOKIde9rjm7demez6D/zTq7G37UCy6/9PPT1Z3DzzD5Jc+8C778eK7zXGocRRBkfS8O/N8U/fmpF6jCMSI0fxXldPRESMHZOLay+/IPE08Ht72w7Ei/+xN97rPph0jve6P/j/yHVXXBBnjc4lmeG1Hftj+87fxrsJ96L7/Z7eELnh2kuSzQEf9l53T/xo847kf1d8FDEyCOeedXrMvv5TqceAXv++vTVe/I+9qcfo9X+u+kSyHxetf/aXsX3nb5Nc+8MKC8LfFZxQ3u58L360eUfqMT6SF7ACAEmJEQAgKTECACQ1pBhZtWpVlJeXR3FxcVRWVsbmzZuPuv6JJ56Iz3zmM3H66afHhAkT4uabb479+/cPaWAA4OSSd4xs2LAhFi5cGEuWLImmpqaYNm1aTJ8+PZqbmwdc/8ILL8Ts2bNj7ty58dprr8X3v//9eOWVV2LevHnHPDwAMPzlHSMrVqyIuXPnxrx582LKlCmxcuXKKCsri9WrVw+4/uWXX44LL7wwFixYEOXl5XHVVVfFV7/61di6desxDw8ADH95xUh3d3c0NjZGTU1Nn+M1NTWxZcuWAc+prq6Ot956K+rr6yPLsvjNb34T//zP/xwzZhz5zVe6urqio6OjzwMAODnlFSNtbW3R09MTpaV931K2tLQ0WltbBzynuro6nnjiiZg1a1YUFRXF+PHj46yzzooHHnjgiNdZvnx5lJSU9D7KysryGRMAGEaG9ALWgoKCPl9nWdbv2GHbt2+PBQsWxN/+7d9GY2Nj/PjHP46dO3dGbW3tEf/8xYsXR3t7e+9j9+7dQxkTABgG8noH1nHjxsWIESP63QXZt29fv7slhy1fvjyuvPLKuPPOOyMi4tOf/nScccYZMW3atPjGN74REyZM6HdOLpeLXC7NW0sDAB+vvO6MFBUVRWVlZTQ0NPQ53tDQENXV1QOe884770RhYd/LjBgxIiI+uKMCAJza8v4xzaJFi+Kxxx6LNWvWxOuvvx533HFHNDc39/7YZfHixTF79uze9TNnzoynnnoqVq9eHTt27IgXX3wxFixYEFdccUVMnDjx+H0nAMCwlPcH5c2aNSv2798fy5Yti5aWlqioqIj6+vqYPHlyRES0tLT0ec+Rr3zlK9HZ2RkPPvhgfO1rX4uzzjorrrnmmvi7v/u74/ddAADD1pA+tbeuri7q6uoGfG7dunX9jt1+++1x++23D+VSAMBJzmfTAABJiREAICkxAgAkJUYAgKTECACQlBgBAJISIwBAUmIEAEhKjAAASYkRACApMQIAJCVGAICkxAgAkJQYAQCSEiMAQFJiBABISowAAEmJEQAgKTECACQlRgCApMQIAJCUGAEAkhIjAEBSYgQASEqMAABJiREAICkxAgAkJUYAgKTECACQlBgBAJISIwBAUmIEAEhKjAAASYkRACApMQIAJCVGAICkxAgAkJQYAQCSEiMAQFJiBABISowAAEmJEQAgKTECACQlRgCApMQIAJCUGAEAkhIjAEBSYgQASEqMAABJiREAICkxAgAkJUYAgKTECACQlBgBAJISIwBAUmIEAEhKjAAASYkRACApMQIAJCVGAICkxAgAkJQYAQCSGpl6AGDo3mzpjP+74vlk12//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W7duja1bt8Y111wTf/Znf9YbHKfEPmYM2v3335+Vl5f3fl1fX58VFhZme/bs6T22fv36LJfLZe3t7SlGPOGtXbs2Kykp6XfcXg7eFVdckdXW1vY5dtlll2V33XVXoomGp4jInn766d6vDx06lI0fPz677777eo+99957WUlJSfbwww8nmHB42bdvXxYR2caNG7Mss5/H6uyzz84ee+yxU2Yf3RnJQ3t7e4wdO7b365deeikqKipi4sSJvce+9KUvRVdXVzQ2NqYYcdiyl4PT3d0djY2NUVNT0+d4TU1NbNmyJdFUJ4edO3dGa2trn73N5XLxhS98wd4OQnt7e0RE79+R9nNoenp64sknn4wDBw5EVVXVKbOPYmSQ3njjjXjggQeitra291hra2uUlpb2WXf22WdHUVFRtLa2ftwjDmv2cnDa2tqip6en316Vlpbap2N0eP/sbf6yLItFixbFVVddFRUVFRFhP/O1bdu2OPPMMyOXy0VtbW08/fTT8alPfeqU2cdTLkaWLl0aBQUFR31s3bq1zzl79+6NP/3TP40bbrgh5s2b1+e5goKCftfIsmzA4yeboezl0ZzKe5mvD++JfTp+7G3+5s+fHz//+c9j/fr1/Z6zn4Nz6aWXxquvvhovv/xy3HrrrTFnzpzYvn177/Mn+z6OTD3Ax23+/Pnxl3/5l0ddc+GFF/b+771798bVV18dVVVV8eijj/ZZN378+Pi3f/u3PsfefvvteP/99/tV7Mko3708mlN9Lwdr3LhxMWLEiH7/RbRv3z77dIzGjx8fER/8F/2ECRN6j9vbo7v99tvjmWeeiU2bNsWkSZN6j9vP/BQVFcXFF18cERFTp06NV155Jb7zne/E3/zN30TEyb+Pp9ydkXHjxsVll1121EdxcXFEROzZsye++MUvxuc+97lYu3ZtFBb23a6qqqr4xS9+ES0tLb3HnnvuucjlclFZWfmxfl8p5LOXH+VU38vBKioqisrKymhoaOhzvKGhIaqrqxNNdXIoLy+P8ePH99nb7u7u2Lhxo70dQJZlMX/+/HjqqafiJz/5SZSXl/d53n4emyzLoqur69TZx2QvnT3B7dmzJ7v44ouza665JnvrrbeylpaW3sdhBw8ezCoqKrJrr702+9nPfpb967/+azZp0qRs/vz5CSc/Me3atStramrK7r333uzMM8/MmpqasqampqyzszPLMnuZjyeffDI77bTTsscffzzbvn17tnDhwuyMM87I3nzzzdSjnfA6Ozt7/9mLiGzFihVZU1NTtmvXrizLsuy+++7LSkpKsqeeeirbtm1b9ld/9VfZhAkTso6OjsSTn3huvfXWrKSkJHv++ef7/P34zjvv9K6xn4OzePHibNOmTdnOnTuzn//859ndd9+dFRYWZs8991yWZafGPoqRI1i7dm0WEQM+/qddu3ZlM2bMyEaNGpWNHTs2mz9/fvbee+8lmvrENWfOnAH38qc//WnvGns5eA899FA2efLkrKioKPvc5z7X++uUHN1Pf/rTAf85nDNnTpZlH/w66j333JONHz8+y+Vy2R//8R9n27ZtSzv0CepIfz+uXbu2d439HJxbbrml9//P5557bnbttdf2hkiWnRr7WJBlWfYx3ogBAOjjlHvNCABwYhEjAEBSYgQASEqMAABJiREAICkxAgAkJUYAgKTECACQlBgBAJISIwBAUmIEAEhKjAAASf1/7raMEiGusAMAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.plot(x, gamma)" ] }, { "cell_type": "markdown", "id": "0a4aabbf", "metadata": {}, "source": [ "## Recreating Harrison's Figures\n", "Harrison's figures take the bottom of the quantum well to be at 0 potential. Differences in how next**nano**++ calculates the band edges result in a different offset in the values outputted by the software.\n", "\n", "We will first obtain the offset with" ] }, { "cell_type": "code", "execution_count": 18, "id": "c9db6625", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "0.62760532478571" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bandedgeoffset = np.amin(gamma[30:-30]) #Values chosen to avoid the 0 value at the start and end\n", "bandedgeoffset" ] }, { "cell_type": "markdown", "id": "74e7568a", "metadata": {}, "source": [ "If the offset is known before hand, one can use numpy array manipulation to apply a function on the array" ] }, { "cell_type": "code", "execution_count": 19, "id": "4f9b5630", "metadata": {}, "outputs": [], "source": [ "gamma_shift = gamma - bandedgeoffset" ] }, { "cell_type": "markdown", "id": "b3b64a0f", "metadata": {}, "source": [ "### Finding groundstate energies\n", "\n", "To find the groundstate energies as a function of the number of wells, we will create a simple function to iterate over all the $N$ wells. The groundstate energies are found in the Quantum subfolder. We first demonstrate how to obtain the groundstate energies for the $N=2$ case and then a way to get the groundstate energies for all $N$ values" ] }, { "cell_type": "code", "execution_count": 20, "id": "f952880b", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "array([0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778, 0.70804778, 0.70804778, 0.70804778, 0.70804778,\n", " 0.70804778])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nn.DataFile(sweepFolder.go_to('Superlattice_N_Wells__NUMBER_OF_WELLS_2_', \n", " 'bias_00000', 'Quantum','amplitudes_shift_quantum_region_Gamma_00000.dat'), \n", " product = software).variables['E_1'].value" ] }, { "cell_type": "markdown", "id": "85ed8212", "metadata": {}, "source": [ "Every different value of $N$ outputs a different output folder. We have to iterate through the folders to obtain the groundstate energies." ] }, { "cell_type": "code", "execution_count": 21, "id": "a862c4c3", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "['Superlattice_N_Wells__NUMBER_OF_WELLS_10_',\n", " 'Superlattice_N_Wells__NUMBER_OF_WELLS_2_',\n", " 'Superlattice_N_Wells__NUMBER_OF_WELLS_3_',\n", " 'Superlattice_N_Wells__NUMBER_OF_WELLS_4_',\n", " 'Superlattice_N_Wells__NUMBER_OF_WELLS_5_',\n", " 'Superlattice_N_Wells__NUMBER_OF_WELLS_6_',\n", " 'Superlattice_N_Wells__NUMBER_OF_WELLS_7_',\n", " 'Superlattice_N_Wells__NUMBER_OF_WELLS_8_',\n", " 'Superlattice_N_Wells__NUMBER_OF_WELLS_9_']" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def is_dir(file):\n", " p = os.path.join(sweep.sweep_output_directory,file)\n", " return os.path.isdir(p)\n", " \n", "sweepFiles = list(filter(is_dir, os.listdir(sweep.sweep_output_directory)))\n", "sweepFiles" ] }, { "cell_type": "markdown", "id": "c4410835", "metadata": {}, "source": [ "We observe that the value 10 is at the start of the list. We would like this to be at the end of the list" ] }, { "cell_type": "code", "execution_count": 22, "id": "0ed0455b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Superlattice_N_Wells__NUMBER_OF_WELLS_2_',\n", " 'Superlattice_N_Wells__NUMBER_OF_WELLS_3_',\n", " 'Superlattice_N_Wells__NUMBER_OF_WELLS_4_',\n", " 'Superlattice_N_Wells__NUMBER_OF_WELLS_5_',\n", " 'Superlattice_N_Wells__NUMBER_OF_WELLS_6_',\n", " 'Superlattice_N_Wells__NUMBER_OF_WELLS_7_',\n", " 'Superlattice_N_Wells__NUMBER_OF_WELLS_8_',\n", " 'Superlattice_N_Wells__NUMBER_OF_WELLS_9_',\n", " 'Superlattice_N_Wells__NUMBER_OF_WELLS_10_']" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sweepFiles = sweepFiles[1:] + [sweepFiles[0]]\n", "sweepFiles" ] }, { "cell_type": "markdown", "id": "609de3ae", "metadata": {}, "source": [ "We now want to store the first eigenstate energies into a single array so that it can be plotted alongside the number of wells. We can obtain all the energies with a simple function." ] }, { "cell_type": "code", "execution_count": 23, "id": "0824343b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([80.44245385, 77.86580546, 76.64523122, 75.97516064, 75.56880168,\n", " 75.30413953, 75.1222754 , 74.99198527, 74.89547682])" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def get_all_energies(sweepFiles):\n", " arr = np.array([])\n", " for file in sweepFiles:\n", " energy = (nn.DataFile(sweepFolder.go_to(file, \n", " 'bias_00000', 'Quantum','amplitudes_shift_quantum_region_Gamma_00000.dat'), \n", " product = software).variables['E_1'].value - bandedgeoffset) * 1000\n", " ##we shift the values downwards by the bandedgeoffset\n", " ##we also multiply by 1000 to convert from eV to meV\n", " single_value = np.amin(energy)\n", " arr = np.append(arr, single_value)\n", " return arr\n", "\n", "groundstate_energies = get_all_energies(sweepFiles)\n", "groundstate_energies" ] }, { "cell_type": "code", "execution_count": 24, "id": "9e9ef0b2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Ground state energies')" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.plot(SweepValues, groundstate_energies, 'o--', color = palette[1])\n", "# ax.grid(visible = True)\n", "ax.set_ylabel('Energy (meV)')\n", "ax.set_xlabel('Number of wells')\n", "ax.set_title('Ground state energies')\n", "\n", "# plt.savefig('./Images/EnergyVsN.png', dpi = 2000)" ] }, { "cell_type": "markdown", "id": "90024d2c", "metadata": {}, "source": [ "### Wavefunction in a finite superlattice\n", "The first case has the following parameters:\n", "* 40Å GaAs / 40Å Ga0.8Al0.2As sandwiched between 200Å Ga0.8Al0.2As on the left and right.\n", "* 10 wells\n", "* 4nm quantum wells\n", "* 4nm barriers" ] }, { "cell_type": "markdown", "id": "17ca9865", "metadata": {}, "source": [ "**Getting the wavefunction and the x coordinates**
\n", "We only want the groundstate wavefunction amplitudes." ] }, { "cell_type": "markdown", "id": "1bd16d83", "metadata": {}, "source": [ "Note that we cannot use the x-coordinates found in bandedges.dat for amplitudes_shift_quantum_region_Gamma_00000.dat because the dimensions of the array are not equal. We therefore have to plot the following pairs:\n", "* Amplitude of the wavefunction and its corresponding x coordinates\n", "* Bandedge and its corresponding x coordinates" ] }, { "cell_type": "code", "execution_count": 25, "id": "e557e0d6", "metadata": { "scrolled": false }, "outputs": [], "source": [ "wf1 = (nn.DataFile(sweepFolder.go_to(sweepFiles[-1], \n", " 'bias_00000', 'Quantum','amplitudes_shift_quantum_region_Gamma_00000.dat'), \n", " product = software).variables['Psi_1'].value - bandedgeoffset) * 1000\n", "\n", "bandedge10 = (nn.DataFile(sweepFolder.go_to(sweepFiles[-1], \n", " 'bias_00000', 'bandedges.dat'), \n", " product = software).variables['Gamma'].value - bandedgeoffset) * 1000\n", "\n", "x = nn.DataFile(sweepFolder.go_to(sweepFiles[-1], \n", " 'bias_00000', 'bandedges.dat'), \n", " product = software).coords['x'].value\n", "\n", "xwf1 = nn.DataFile(sweepFolder.go_to(sweepFiles[-1], \n", " 'bias_00000', 'Quantum','amplitudes_shift_quantum_region_Gamma_00000.dat'), \n", " product = software).coords['x'].value" ] }, { "cell_type": "code", "execution_count": 26, "id": "6d69aff2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Finite Superlattice')" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj4AAAHFCAYAAADyj/PrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAACH/ElEQVR4nO3deZwT9f0/8Nfk2Gyy932wsCy3dAE5VbRyiCAKHtSKWqt4fbWKiqC26reKfhW87a/aqrUWvGmtaD1QBEXQgsoph5zCssuyy97ZK5tzfn9kZnazZyaZkCx5PR+PPHSTSWYy5Hjl/bkEURRFEBEREUUBXbgPgIiIiOhkYfAhIiKiqMHgQ0RERFGDwYeIiIiiBoMPERERRQ0GHyIiIooaDD5EREQUNRh8iIiIKGow+BAREVHUYPAh6qWWL18OQRA6vdxzzz0oKiqCIAhYvnx5QI/fv39/zJs3T/n7+PHjWLx4MXbs2KHJ8bdVXV2N+++/H8OHD0dcXBySkpIwbNgw/Pa3v8XOnTs135/WgjnX3Z3XVatWYfHixZ3er/2/DxH5xxDuAyCi4CxbtgzDhg3zuS43NxdZWVnYtGkTBg4cGNDjfvDBB0hMTFT+Pn78OB555BH0798fp59+ejCH7KOxsRFnnnkmGhsbce+992LUqFGw2Ww4cOAAVq5ciR07dmDkyJGa7S/SdHdeV61ahb/85S+dhp/2/z5E5B8GH6JerrCwEOPGjev0tjPPPDPgxx09enTA91Xjvffew6FDh/DVV19hypQpPrctXLgQHo/npBxHINxuN1wuV1j2fbL+fYhONWzqIjpFddb8snjxYgiCgD179uCqq65CUlISsrKycMMNN8Bqtfrcv21Tytdff43x48cDAK6//nqlSa1tJWLLli24+OKLkZqaitjYWIwePRr/+te/ejzO6upqAEBOTk6nt+t0rR9T8+bNQ//+/TtsIz+vtgRBwPz58/HKK69gyJAhMJlMGD58OFasWNHh/uXl5bjllluQl5eHmJgYFBQU4JFHHvEJNfL5fOqpp/DYY4+hoKAAJpMJ69at6/S4Dx06hOuvvx6DBw+GxWJBnz59MHv2bOzatUvZprvzOm/ePPzlL39Rnot8KSoqAtB5U1ddXR0WLVqEAQMGwGQyITMzExdeeCH27dunbONwOPDYY49h2LBhMJlMyMjIwPXXX4/KyspOnwfRqYYVH6JerrOqg8HQ/Vv7V7/6FebOnYsbb7wRu3btwv333w8A+Mc//tHp9mPGjMGyZctw/fXX43//939x0UUXAQDy8vIAAOvWrcMFF1yAM844Ay+//DKSkpKwYsUKzJ07F83Nzd32RTnrrLMAANdeey0eeOAB/PKXv0RaWppfz70nH330EdatW4dHH30UcXFx+Otf/4qrrroKBoMBl19+OQBv6JkwYQJ0Oh0eeughDBw4EJs2bcJjjz2GoqIiLFu2zOcx//znP2PIkCF45plnkJiYiMGDB3e67+PHjyMtLQ1PPPEEMjIyUFNTg9dffx1nnHEGtm/fjqFDh3Z7Xu12O5qamvDvf/8bmzZtUh63q4DY0NCAc845B0VFRfj973+PM844A42NjdiwYQPKysowbNgweDweXHLJJfjmm29w3333YeLEiTh69CgefvhhTJ48GVu2bIHZbNbi1BNFLpGIeqVly5aJADq9OJ1O8ciRIyIAcdmyZcp9Hn74YRGA+NRTT/k81m233SbGxsaKHo9HuS4/P1+87rrrlL83b97c4fFkw4YNE0ePHi06nU6f62fNmiXm5OSIbre72+fy6KOPijExMcrxFxQUiLfeeqv4448/+mx33XXXifn5+R3uLz+vtgCIZrNZLC8vV65zuVzisGHDxEGDBinX3XLLLWJ8fLx49OhRn/s/88wzIgBxz549oiiKyvkcOHCg6HA4fLbt7Fy353K5RIfDIQ4ePFi8++67leu7O6+33357h+cla//v8+ijj4oAxDVr1nR5DO+++64IQHz//fd9rpeP4a9//WuX9yU6VbCpi6iXe+ONN7B582afS08Vn4svvtjn75EjR6KlpQUVFRWq93/o0CHs27cPv/nNbwAALpdLuVx44YUoKyvD/v37u32MP/7xjyguLsY//vEP3HLLLYiPj8fLL7+MsWPH4t1331V9TLLzzjsPWVlZyt96vR5z587FoUOHcOzYMQDAJ598gilTpiA3N9fn2GfOnAkAWL9+vc9jXnzxxTAajT3u2+VyYcmSJRg+fDhiYmJgMBgQExODgwcPYu/evQE/p6589tlnGDJkCKZNm9blNp988gmSk5Mxe/Zsn+d6+umnIzs7G19//bXmx0UUadjURdTLnXbaaV12bu5K+6Ykk8kEALDZbKr3f+LECQDAPffcg3vuuafTbaqq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iIiIogaDDxEREUUNBh8iIiKKGgw+REREFDUYfIiIiChqMPgQERFR1GDwISIioqjB4ENERERRg8GHiIiIogaDDxEREUUNBh8iIiKKGgw+REREFDUYfIiIiChqMPgQERFR1GDwISIioqjB4ENERERRg8GHiIiIogaDDxEREUUNBh8iIiKKGgw+REREFDUYfIiIiChqMPgQERFR1GDwISIioqjB4ENERERRg8GHiIiIogaDDxEREUUNBh8iIiKKGgw+REREFDUYfIiIiChqMPgQERFR1GDwISIioqjB4ENERERRg8GHiIiIogaDDxEREUUNBh8iIiKKGgw+REREFDUYfIiIiChqMPgQERFR1Dhlgs9f//pXFBQUIDY2FmPHjsU333wT7kMiIiKiCHNKBJ9//vOfWLBgAR588EFs374dv/zlLzFz5kwUFxeH+9CIiIgogpwSwee5557DjTfeiJtuugmnnXYa/vSnP6Fv37546aWXwn1oREREFEEM4T6AYDkcDmzduhV/+MMffK6fPn06Nm7cGKajIi3V1NTgqy+/VHWfFptNk33v/PFHuF0uVfc5cvhw0Pu12WyqnzMAOB2OoPd98OBB1fves3t30PsFgHVffQW9Xq/qPvX19UHvt/TYMdXPuaSkJOj9AsB3332HwypfMyfKy4Peb011tern3NzcHPR+Ae/7yul0qrrPkSNHgt5vS6DvK5XHSpGt1wefqqoquN1uZGVl+VyflZWF8i4+HOx2O+x2u/K31WoFoM0HaHccDgfcbjeamppCvq9TQUtLC9xuNw7s3497Fi4M6DEEQUB9QwMMBnUvdbfbDbfbjWWvvRbQfgHvh6Xaf+cWmw1utxvV1dUBP2cAaLbZVO/b6XLB7Xbjow8/xEcffhjQft1ut+r9NjY2wu12AwB+f++9Ae0XAFrsdtX7lt+T//32W/z3228D2q/H4wno/SyKItxuN5564omA9gsAdodD/WtMel/t27cv4NeYTqdDfX296pAqv69e+/vfA9ov4H2dqn3ONul9VVlZGdT7ytbczM9uP8jnu6WlJeTnS358URT9v5PYy5WWlooAxI0bN/pc/9hjj4lDhw7t9D4PP/ywCIAXXnjhhRdeeDkFLiUlJX7nhl5f8UlPT4der+9Q3amoqOhQBZLdf//9WNgm9Xs8HtTU1CAtLQ2CIITsWOvr69G3b1+UlJQgMTExZPs5lfCcqcPzpR7PmTo8X+rwfKmn5pyJooiGhgbk5ub6/fi9PvjExMRg7NixWLNmDS677DLl+jVr1uCSSy7p9D4mkwkmk8nnuuTk5FAepo/ExES+AVTiOVOH50s9njN1eL7U4flSz99zlpSUpOpxe33wAYCFCxfit7/9LcaNG4ezzjoLf/vb31BcXIxbb7013IdGREREEeSUCD5z585FdXU1Hn30UZSVlaGwsBCrVq1Cfn5+uA+NiIiIIsgpEXwA4LbbbsNtt90W7sPolslkwsMPP9yhmY26xnOmDs+Xejxn6vB8qcPzpV6oz5kgimrGgBERERH1XqfEzM1ERERE/mDwISIioqjB4ENERERRg8GHiIiIogaDz0lQVFSEG2+8EQUFBTCbzRg4cCAefvhhONotKFlcXIzZs2cjLi4O6enpuPPOOztsE03++te/oqCgALGxsRg7diy++eabcB9SRFi6dCnGjx+PhIQEZGZm4tJLL8X+/ft9thFFEYsXL0Zubi7MZjMmT56MPXv2hOmII8vSpUshCAIWLFigXMfz1VFpaSmuueYapKWlwWKx4PTTT8fWrVuV23nOfLlcLvzv//6v8jk/YMAAPProo/B4PMo20XzONmzYgNmzZyM3NxeCIODDdusB+nNu7HY77rjjDqSnpyMuLg4XX3wxjh07pv5gAlogi1T57LPPxHnz5omrV68Wf/75Z/E///mPmJmZKS5atEjZxuVyiYWFheKUKVPEbdu2iWvWrBFzc3PF+fPnh/HIw2fFihWi0WgUX331VfGnn34S77rrLjEuLk48evRouA8t7GbMmCEuW7ZM3L17t7hjxw7xoosuEvv16yc2NjYq2zzxxBNiQkKC+P7774u7du0S586dK+bk5Ij19fVhPPLw++GHH8T+/fuLI0eOFO+66y7lep4vXzU1NWJ+fr44b9488fvvvxePHDkirl27Vjx06JCyDc+Zr8cee0xMS0sTP/nkE/HIkSPie++9J8bHx4t/+tOflG2i+ZytWrVKfPDBB8X3339fBCB+8MEHPrf7c25uvfVWsU+fPuKaNWvEbdu2iVOmTBFHjRolulwuVcfC4BMmTz31lFhQUKD8vWrVKlGn04mlpaXKde+++65oMplEq9UajkMMqwkTJoi33nqrz3XDhg0T//CHP4TpiCJXRUWFCEBcv369KIqi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V+OZZ57BoEGDYDabcfnll8PhcPhsZzQaff4WBEFpyjKbzd0es8fjwSOPPII5c+Z0uK2rcJOeno5du3Z1elvbY5FDYNvRWJ0da3fHL6upqYHFYunx+RCR/xh8iChgX331FXbt2oW77767y20SExMxd+5czJ07F5dffjkuuOAC1NTUIDU1FUaj0adDLwB88803mDdvHi677DIA3v46RUVFqo5r5MiR+Pvf/67sp70xY8Zg//79GDRokN+POXr0aLz00kvdVri0tnv3bowZM+ak7IsoWjD4EJFf7HY7ysvL4Xa7ceLECXz++edYunQpZs2ahWuvvbbT+zz//PPIycnB6aefDp1Oh/feew/Z2dlITk4G4B2d9eWXX+Lss8+GyWRCSkoKBg0ahJUrV2L27NkQBAF//OMfVc9lc9VVV2HJkiW49NJLsXTpUuTk5GD79u3Izc3FWWedhYceegizZs1C37598etf/xo6nQ47d+7Erl278Nhjj3X6mFOmTEFTUxP27NmDwsJCVccTqG+++QbTp08/Kfsiihbs40NEfvn888+Rk5OD/v3744ILLsC6devw5z//Gf/5z3+g1+s7vU98fDyefPJJjBs3DuPHj0dRURFWrVoFnc770fPss89izZo16Nu3L0aPHg3AG5ZSUlIwceJEzJ49GzNmzFBd9YiJicEXX3yBzMxMXHjhhRgxYgSeeOIJ5ThnzJiBTz75BGvWrMH48eNx5pln4rnnnkN+fn6Xj5mWloY5c+bg7bffVnUsgSotLcXGjRtx/fXXn5T9EUULQRRFMdwHQUTUG+zatQvTpk3DoUOHkJCQENJ93XvvvbBarR3mJyKi4LDiQ0TkpxEjRuCpp55S3ecoEJmZmfi///u/kO+HKNqw4kNERERRgxUfIiIiihoMPkRERBQ1GHyIiIgoajD4EBERUdRg8CEiIqKoweBDREREUYPBh4iIiKIGgw8RERFFDQYfIiIiihr/HyqqIopDue/kAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.plot(x, bandedge10, color = palette[0])\n", "ax.plot(xwf1, wf1, color = palette[1])\n", "\n", "ax.set_ylim(0,300)\n", "ax.set_xlabel('Distance (nm)')\n", "ax.set_ylabel('Energy (meV)')\n", "ax.set_title('Finite Superlattice')\n", "\n", "# plt.savefig('./Images/wf1.png', dpi = 2000)" ] }, { "cell_type": "markdown", "id": "200b5d0d", "metadata": {}, "source": [ "### Wavefunction in a multiple quantum well system\n", "\n", "The second case plotted has the following parameters:\n", "* 100Å GaAs / 100Å Ga0.6Al0.4As sandwiched between 100Å Ga0.6Al0.4As on the left and right.\n", "* 4 wells\n", "* 10nm quantum wells\n", "* 10nm barriers\n", "\n", "Note that GaxAl1-xAs used here is different from the earlier graph plotted.\n", "\n", "The alloy composition and the thickness of the barriers and the quantum wells are different in this example. We will use nextnanopy to change the variables and output the result." ] }, { "cell_type": "code", "execution_count": 27, "id": "10e02a70", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'D:\\\\nextnano tutorials\\\\1DSuperlattice_N_Wells\\\\Superlattice_N_Wells.in'" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "input_file.fullpath" ] }, { "cell_type": "code", "execution_count": 28, "id": "b23129bc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "odict_keys(['TEMPERATURE', 'WELL_WIDTH', 'BARRIER_WIDTH', 'NUMBER_OF_WELLS', 'SUPERLATTICE_WIDTH', 'LEFT_BARRIER_WIDTH', 'RIGHT_BARRIER_WIDTH', 'FINE_GRID_SPACING', 'COARSE_GRID_SPACING', 'ALLOY_X'])" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "input_file.variables.keys()" ] }, { "cell_type": "markdown", "id": "35862e9a", "metadata": {}, "source": [ "We want to change\n", "* WELl_WIDTH\n", "* BARRIER_WIDTH\n", "* LEFT_BARRIER_WIDTH\n", "* RIGHT_BARRIER_WIDTH\n", "* NUMBER_OF_WELLS\n", "\n", "In addition to this, we will save this new input file into the output folder." ] }, { "cell_type": "code", "execution_count": 29, "id": "782c6ff2", "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "'D:\\\\nextnano output\\\\Superlattice_N_Wells_WF2.in'" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "input_file.set_variable(name = \"WELL_WIDTH\", value = 10)\n", "input_file.set_variable(name = \"BARRIER_WIDTH\", value = 10)\n", "input_file.set_variable(name = \"LEFT_BARRIER_WIDTH\" , value = 10)\n", "input_file.set_variable(name = \"RIGHT_BARRIER_WIDTH\" , value = 10)\n", "input_file.set_variable(name = \"NUMBER_OF_WELLS\", value = 4)\n", "\n", "\n", "my_input_file_new = os.path.join(output_folder, r'Superlattice_N_Wells_WF2' + \".in\")\n", "input_file.save(my_input_file_new, overwrite = True, automkdir = True)" ] }, { "cell_type": "markdown", "id": "a1ed568e", "metadata": {}, "source": [ "We now create a function to run the input file and ouput the result" ] }, { "cell_type": "code", "execution_count": 30, "id": "bbb6c1e9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "================================================================================\n", "STARTING...\n", "================================================================================\n", "Starting execution as:\n", "C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\bin 64bit\\nextnano++_Intel_64bit.exe --license C:\\Users\\brandon.loke\\Documents\\nextnano\\License\\License_nnp.lic --database C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in --threads 0 --outputdirectory D:\\nextnano output\\Superlattice_N_Wells_WF2 --noautooutdir D:\\nextnano output\\Superlattice_N_Wells_WF2.in \n", "\n", "nextnano++ (1.9.3 - 2021.122001) Jan 25 2022\n", "=============================================================================\n", "COPYRIGHT NOTICE \n", "=============================================================================\n", "Please read the file 'copyright_nextnano++.txt' in your installation folder \n", "for further information about the terms of copyright of the nextnano++ code \n", "and of third party source codes and libraries used in the nextnano++ code. \n", " \n", "In case this file is missing or seems incomplete or corrupted, please contact\n", "nextnano GmbH, Germany by submitting a support request on www.nextnano.de or \n", "by sending an email to support@nextnano.com in order to receive a new copy. \n", " \n", "ANY USE OF THE NEXTNANO++ CODE CONSTITUTES ACCEPTANCE OF THE TERMS OF THE \n", "COPYRIGHT NOTICE. \n", "=============================================================================\n", "\n", "\n", "=============================================================================\n", " PROCESSING FILE: D:\\nextnano output\\Superlattice_N_Wells_WF2.in\n", "=============================================================================\n", "\n", "Start time: Wed 2022-03-09, 17:32:11 (+0100)\n", "\n", "Simulation process uses 16 of 16 available OpenMP threads (system default).\n", "\n", "BLAS and LAPACK libraries use 8 of 8 available threads (system default).\n", "\n", "Reading input file (D:\\nextnano output\\Superlattice_N_Wells_WF2.in)...\n", "\n", "WARNING: Coordinate position -11 contains duplicate grid line. Duplicate is ignored.\n", "WARNING: Coordinate position 81 contains duplicate grid line. Duplicate is ignored.\n", "\n", "WARNING: Using database specified in command line.\n", "\n", "Reading database file (C:\\Program Files\\nextnano\\2021_12_24\\nextnano++\\Syntax\\database_nnp.in)...\n", "\n", "\n", "Material database initialized.\n", "\n", "Checking license:\n", "\t Valid From: 2022-1-1 To: 2022-12-31\n", "\t Licensed to: E-mail: brandon.loke@nextnano.com-2022-12-31-de-0000-00-nxt3\n", "\n", "********* SETUP SIMULATION *****************************************************\n", "\n", "NOTE: Using output directory specified from command line (nextnanomat), \n", "\n", "NOTE: Setting output directory to: D:\\nextnano output\\Superlattice_N_Wells_WF2\\\n", "\n", "********* Simulation Grid *********\n", "\n", "Creating grid 1 using:\n", " pos = -11 \tspacing = 1\n", " pos = -10 \tspacing = 0.1\n", " pos = 80 \tspacing = 0.1\n", " pos = 81 \tspacing = 0.1\n", "\n", "Grid dimension: 912 * 1 * 1 \n", "Number of unique grid points: 912\n", "Range in 1-direction: -11 , ... , 81\n", "\n", "\n", "********* Rotation Matrix *********\n", " 1.0000000, 0.0000000, 0.0000000\n", " 0.0000000, 1.0000000, 0.0000000\n", " 0.0000000, 0.0000000, 1.0000000\n", "\n", "********* Periodicity *************\n", " 0-direction: not periodic\n", "\n", "\n", "Start initializing structure.\n", "Finished initializing structure.\n", "Structure initialization time: 0.001[s]\n", "\n", "Setting reference vacuum level to 6.3 eV.\n", "\n", "NOTE: Electron minimum density is 1e+10 cm^-3.\n", "NOTE: Hole minimum density is 1e+10 cm^-3.\n", "\n", "NOTE: Electron maximum density is 1e+30 cm^-3.\n", "NOTE: Hole maximum density is 1e+30 cm^-3.\n", "\n", "NOTE: Minimal recombination is DISABLED.\n", "\n", "***** Quantum Subgrid (quantum_region) ****** \n", " dimensions: (-10,80) (0,0) (0,0)\n", "Gridsize: \n", "Grid dimension: 901 * 1 * 1 \n", "Number of unique grid points: 901\n", "Range in 1-direction: -10 , ... , 80\n", "\n", "Calculating quantum density of states ... (quantum_region_Gamma)\n", "Calculating quantum density of states ... (quantum_region_HH)\n", "Calculating quantum density of states ... (quantum_region_LH)\n", "Calculating quantum density of states ... (quantum_region_SO)\n", "\n", "********* STRUCTURE OUTPUT *****************************************************\n", "\n", "Writing last region indices...\n", "Writing last material region indices...\n", "Writing material indices...\n", "Writing alloy compositions...\n", "\n", "********* START CALCULATION ****************************************************\n", "\n", "Determine dirichlet points for contacts...\n", "\n", "Calculating pseudomorphic strain...\n", "\n", "Calculating piezoelectric charges...\n", "\n", "Writing strain tensor (simulation system)...\n", "Writing hydrostatic strain...\n", "Determine intrinsic density...\n", "Intrinsic density time: 0.003[s]\n", "\n", "Discretizing Poisson equation...\n", "\n", "\n", "\n", "\n", "========= STARTING CALCULATION FOR BIAS POINT ==================================\n", "barrier_contact 0 V \n", "\n", "Determine electron Fermi level dirichlet values in contacts...\n", "Determine hole Fermi level dirichlet values in contacts...\n", "Initialize Fermi levels...\n", "Fermi level initialization time: 0.001[s]\n", "Initialize contacts as charge neutral...\n", "Determine potential Dirichlet values in Schottky and ohmic contacts...\n", "Update contact discretization in Poisson equation...\n", "\n", "Initialize electrostatic potential...\n", "Charge Neutrality time: 0.003[s]\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS *------------------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+05[carriers/cm^2]\n", " residual_fermi = 1.000000000e-05[eV]\n", "Set Fermi level range: -0 -0\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t21.29268965725436\n", " Newton achieved/desired residual: 1.64651665e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "CURRENT-POISSON: Residual_EDensity = 4.055389292e+01 Residual_HDensity = 7.546537593e+00\n", "CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "CURRENT-POISSON: Residual_Potential = 4.347390162e-02\n", "\n", "Solving nonlinear Poisson equation using classical densities...\n", " Newton step: 1\t1.646516646620367e-12\n", " Newton achieved/desired residual: 1.64333994e-12 1.80951265e-10\n", "\n", "Computing densities...\n", "\n", "*---- SOLVING CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 652 901\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 832 901\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 802 901\n", " \n", "\n", "Computing densities...\n", "\n", "****** SOLVING QUANTUM-CURRENT-POISSON EQUATIONS *----------------------------\n", "*---- Terminates after: max_iter = 1000\n", " residual = 1.000000000e+06[carriers/cm^2]\n", " residual_fermi = 1.000000000e-08\n", "Set Fermi level range: -0 -0\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 1 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.642243368714968e-12\n", " Newton achieved/desired residual: 1.64224337e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 250\n", " \n", " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 70\n", " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Solving 1 approximate (subspace) 1-band Schroedinger equation(s):\n", " Solving dense hermitian eigenvalue problem (standard solver)...\n", " Full real symmetric eigenvalue solver: 1 100\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 3.777261323e-12 Residual_HDensity = 7.111816024e-14\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 0.000000000e+00\n", "\n", "QUANTUM-CURRENT-POISSON: iteration = 2 of 1000 ----------------------------\n", "\n", "Current-repetition: iteration = 1 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: iteration = 2 of 2 -------------\n", "\n", "Calculating electron mobility...\n", "Calculating hole mobility...\n", "Calculating variable recombination and generation...\n", "Calculating fixed generation/recombination/injection...\n", "\n", "Solving electron current equation(s)...\n", "\n", "Solving hole current equation(s)...\n", "\n", "Computing densities...\n", "\n", "Current-Density: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "\n", "Current-repetition: (done) ---------------------------\n", "\n", "Solving nonlinear Poisson equation using predicted quantum densities...\n", " Newton step: 1\t1.642243368714968e-12\n", " Newton achieved/desired residual: 1.64224337e-12 1.80951265e-10\n", "\n", "Solving Quantum Mechanics ---- (and calculate density)\n", "\n", " valence band maximum: -0.794876818\n", " conduction band minimum: 0.627605325\n", "\n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 1 70\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 652 901\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 832 901\n", " \n", " Solving 1 exact 1-band Schroedinger equation(s):\n", " Tridiagonal real symmetric eigenvalue solver: 802 901\n", " \n", "\n", "Computing densities...\n", "\n", "QUANTUM-CURRENT-POISSON: Residual_EDensity = 3.777261323e-12 Residual_HDensity = 7.111816024e-14\n", "QUANTUM-CURRENT-POISSON: Residual_EFermilevel = 0.000000000e+00 Residual_HFermilevel = 0.000000000e+00\n", "QUANTUM-CURRENT-POISSON: Residual_Potential = 0.000000000e+00\n", "\n", "*---- SOLVING QUANTUM-CURRENT-POISSON EQUATIONS FINISHED ----------------------------\n", "\n", "Calculating classical integrated carrier densities as function of energy.\n", "\n", "Calculating quantum integrated carrier densities as function of energy.\n", "\n", "Calculating classical energy-resolved carrier densities.\n", "\n", "Calculating quantum energy-resolved carrier densities.\n", "\n", "Solving Quantum Mechanics ---- (quantum regions without density only)\n", "\n", "\n", "Solving Quantum Mechanics ---- (determine k-dispersion only)\n", "\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating interband matrix elements...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", " Calculating (only) transition energies...\n", "Calculating integrated generation/recombination/injection rates...\n", "\n", "Calculating density-based (semi-classical) emission spectra.\n", "\n", "********* OUTPUT ***************************************************************\n", "\n", "Writing characteristics data(1)...\n", "Writing characteristics data(2)...\n", "\n", "Writing electrostatic potential...\n", "Writing electric field...\n", "\n", "Writing band gaps...\n", "Writing band edges...\n", "\n", "Writing electron mobility...\n", "Writing hole mobility...\n", "Writing integrated recombination rates...\n", "Writing recombination rate densities...\n", "Writing electron current density...\n", "Writing hole current density...\n", "Writing total currents...\n", "Writing power density...\n", "Writing Fermi levels...\n", "\n", "Writing results from quantum calculations...\n", "\n", "Writing carrier densities...\n", "\n", "Writing integrated energy-resolved densities...\n", "\n", "Writing energy-resolved densities...\n", "\n", "Writing emission spectra...\n", "\n", "Writing spontaneous emission density...\n", "Writing emission power density...\n", "\n", "********* FINISHED CALCULATION *************************************************\n", "\n", "End time: Wed 2022-03-09, 17:32:14 (+0100)\n", "Total Poisson Solver Time: 0.188[s]\n", "Total Current Solver Time: 0.005[s]\n", "Total Quantum Solver Time: 0.322[s]\n", "Total Time of Matrix Elements Calculation: 0.364[s]\n", "Simulator Run Time: 2.992[s]\n", "\n", "================================================================================\n", "DONE.\n", "================================================================================\n" ] }, { "data": { "text/plain": [ "{'process': ,\n", " 'outputdirectory': 'D:\\\\nextnano output\\\\Superlattice_N_Wells_WF2',\n", " 'filename': 'Superlattice_N_Wells_WF2',\n", " 'logfile': 'D:\\\\nextnano output\\\\Superlattice_N_Wells_WF2\\\\Superlattice_N_Wells_WF2.log',\n", " 'cmd': '\"C:\\\\Program Files\\\\nextnano\\\\2021_12_24\\\\nextnano++\\\\bin 64bit\\\\nextnano++_Intel_64bit.exe\" --license \"C:\\\\Users\\\\brandon.loke\\\\Documents\\\\nextnano\\\\License\\\\License_nnp.lic\" --database \"C:\\\\Program Files\\\\nextnano\\\\2021_12_24\\\\nextnano++\\\\Syntax\\\\database_nnp.in\" --threads 0 --outputdirectory \"D:\\\\nextnano output\\\\Superlattice_N_Wells_WF2\" --noautooutdir \"D:\\\\nextnano output\\\\Superlattice_N_Wells_WF2.in\"',\n", " 'wdir': 'C:\\\\Program Files\\\\nextnano\\\\2021_12_24\\\\nextnano++\\\\bin 64bit'}" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "input_file.execute()" ] }, { "cell_type": "code", "execution_count": 31, "id": "1a882383", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'D:\\\\nextnano output\\\\Superlattice_N_Wells_WF2'" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "input_file.folder_output" ] }, { "cell_type": "code", "execution_count": 32, "id": "21b6882e", "metadata": {}, "outputs": [], "source": [ "wf2Folder = nn.DataFolder(input_file.folder_output)" ] }, { "cell_type": "code", "execution_count": 33, "id": "98db8143", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Superlattice_N_Wells_WF2/\n", " bias_00000/\n", " Optical/\n", " computed_absorption_spectrum_cm-1.dat\n", " computed_absorption_spectrum_eV.dat\n", " computed_absorption_spectrum_nm.dat\n", " computed_absorption_spectrum_THz.dat\n", " computed_gain_spectrum_cm-1.dat\n", " computed_gain_spectrum_eV.dat\n", " computed_gain_spectrum_nm.dat\n", " computed_gain_spectrum_THz.dat\n", " computed_imepsilon_spectrum_cm-1.dat\n", " computed_imepsilon_spectrum_eV.dat\n", " computed_imepsilon_spectrum_nm.dat\n", " computed_imepsilon_spectrum_THz.dat\n", " emission_photon_density.dat\n", " emission_power_density.dat\n", " emission_spectrum_photons_cm-1.dat\n", " emission_spectrum_photons_eV.dat\n", " emission_spectrum_photons_nm.dat\n", " emission_spectrum_photons_THz.dat\n", " emission_spectrum_power_cm-1.dat\n", " emission_spectrum_power_eV.dat\n", " emission_spectrum_power_nm.dat\n", " emission_spectrum_power_THz.dat\n", " stim_emission_spectrum_photons_cm-1.dat\n", " stim_emission_spectrum_photons_eV.dat\n", " stim_emission_spectrum_photons_nm.dat\n", " stim_emission_spectrum_photons_THz.dat\n", " stim_emission_spectrum_power_cm-1.dat\n", " stim_emission_spectrum_power_eV.dat\n", " stim_emission_spectrum_power_nm.dat\n", " stim_emission_spectrum_power_THz.dat\n", " Quantum/\n", " amplitudes_quantum_region_Gamma_00000.dat\n", " amplitudes_quantum_region_HH_00000.dat\n", " amplitudes_quantum_region_LH_00000.dat\n", " amplitudes_quantum_region_SO_00000.dat\n", " amplitudes_shift_quantum_region_Gamma_00000.dat\n", " amplitudes_shift_quantum_region_HH_00000.dat\n", " amplitudes_shift_quantum_region_LH_00000.dat\n", " amplitudes_shift_quantum_region_SO_00000.dat\n", " energy_spectrum_quantum_region_Gamma_00000.dat\n", " energy_spectrum_quantum_region_HH_00000.dat\n", " energy_spectrum_quantum_region_LH_00000.dat\n", " energy_spectrum_quantum_region_SO_00000.dat\n", " interband_matrix_elements_quantum_region_HH_Gamma.fld\n", " interband_matrix_elements_quantum_region_HH_Gamma.txt\n", " interband_matrix_elements_quantum_region_LH_Gamma.fld\n", " interband_matrix_elements_quantum_region_LH_Gamma.txt\n", " interband_matrix_elements_quantum_region_SO_Gamma.fld\n", " interband_matrix_elements_quantum_region_SO_Gamma.txt\n", " occupation_quantum_region_Gamma.dat\n", " occupation_quantum_region_HH.dat\n", " occupation_quantum_region_LH.dat\n", " occupation_quantum_region_SO.dat\n", " probabilities_quantum_region_Gamma_00000.dat\n", " probabilities_quantum_region_HH_00000.dat\n", " probabilities_quantum_region_LH_00000.dat\n", " probabilities_quantum_region_SO_00000.dat\n", " probabilities_shift_quantum_region_Gamma_00000.dat\n", " probabilities_shift_quantum_region_HH_00000.dat\n", " probabilities_shift_quantum_region_LH_00000.dat\n", " probabilities_shift_quantum_region_SO_00000.dat\n", " transition_energies_quantum_region_HH_Gamma.fld\n", " transition_energies_quantum_region_HH_Gamma.txt\n", " transition_energies_quantum_region_LH_Gamma.fld\n", " transition_energies_quantum_region_LH_Gamma.txt\n", " transition_energies_quantum_region_SO_Gamma.fld\n", " transition_energies_quantum_region_SO_Gamma.txt\n", " bandedges.dat\n", " bandgap.dat\n", " bias_points.log\n", " current_electron.dat\n", " current_hole.dat\n", " current_total.dat\n", " density_electron.dat\n", " density_hole.dat\n", " electric_field.dat\n", " electron_density_vs_energy.fld\n", " fermi_level_all.dat\n", " fermi_level_electron.dat\n", " fermi_level_hole.dat\n", " hole_density_vs_energy.fld\n", " integrated_densities_vs_energy.dat\n", " internal_quantum_efficiency.dat\n", " iteration_current_poisson.dat\n", " iteration_quantum_current_poisson.dat\n", " iteration_quantum_current_poisson_details.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " joule_power_density.dat\n", " mobility_electron.dat\n", " mobility_hole.dat\n", " potential.dat\n", " power.dat\n", " recombination.dat\n", " total_charges.txt\n", " total_injection.txt\n", " total_injection_quantum_regions.txt\n", " total_recombination.txt\n", " total_recombination_quantum_regions.txt\n", " Strain/\n", " hydrostatic_strain.dat\n", " strain_simulation.dat\n", " Structure/\n", " alloy_composition.dat\n", " last_material_region.dat\n", " last_region.dat\n", " material.dat\n", " materials.txt\n", " bias_points.log\n", " grid_x.dat\n", " internal_quantum_efficiency.dat\n", " IV_characteristics.dat\n", " IV_electrons.dat\n", " IV_holes.dat\n", " job_done.txt\n", " power.dat\n", " simulation_database.txt\n", " simulation_info.txt\n", " simulation_input.txt\n", " Superlattice_N_Wells_WF2.in\n", " Superlattice_N_Wells_WF2.log\n", " variables_database.txt\n", " variables_input.txt\n" ] } ], "source": [ "wf2Folder.show_tree()" ] }, { "cell_type": "markdown", "id": "026cf2e8", "metadata": {}, "source": [ "We will take similar steps to the exercise above where we plotted the wavefunction. " ] }, { "cell_type": "code", "execution_count": 34, "id": "e140547e", "metadata": {}, "outputs": [], "source": [ "wf2 = (nn.DataFile(wf2Folder.go_to('bias_00000', 'Quantum', \n", " 'amplitudes_shift_quantum_region_Gamma_00000.dat'), product = software).variables['Psi_1'].value - bandedgeoffset) * 1000\n", "\n", "bandedge = (nn.DataFile(wf2Folder.go_to('bias_00000', 'bandedges.dat'), product = software).variables['Gamma'].value - bandedgeoffset) * 1000\n", "\n", "x = nn.DataFile(wf2Folder.go_to('bias_00000', 'bandedges.dat'), product = software).coords['x'].value\n", "\n", "xwf2 = (nn.DataFile(wf2Folder.go_to('bias_00000', 'Quantum', 'amplitudes_shift_quantum_region_Gamma_00000.dat'), product = software).coords['x'].value)" ] }, { "cell_type": "markdown", "id": "097cc549", "metadata": {}, "source": [ "**Plotting the figure**" ] }, { "cell_type": "code", "execution_count": 35, "id": "d73c4181", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Multiple Quantum Well')" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB+yklEQVR4nO3dd3hUVfrA8e+dTDLpvVNCkCYGEAgoiPQiUlRUsK7Yfq4FRXCtq+KuAhbAtsuqi6BY0FWwIk0FRVAgEgkgPYEACYH0OpOZub8/pkAggYSUmbnzfp5nnofM3Ln3TA459533NEVVVRUhhBBCCI3SuboAQgghhBDNSYIdIYQQQmiaBDtCCCGE0DQJdoQQQgihaRLsCCGEEELTJNgRQgghhKZJsCOEEEIITZNgRwghhBCaJsGOEEIIITRNgh0hWtCiRYtQFAVFUVi7du0Zr6uqSocOHVAUhcGDB5/XNWbMmIGiKDWe+/e//82iRYvOODYrKwtFUWp9rT4GDx583uU8mxUrVjBmzBhiYmIwGAy0bduW22+/nd27dzf5tRpj586dzJgxg6ysLFcXpYYHHngARVHIzc2t8XxBQQE6nQ5fX1/KyspqvHb48GEURWHatGkNula7du2YPHmy8+fG/p8SojlIsCOEC4SEhLBgwYIznl+3bh379+8nJCSkSa9XV7CTkJDAxo0bGTNmTJNerzEeffRRRo8ejdVq5d///jerV6/mmWee4bfffqNnz5588803ri6i086dO3nuuefcLtgZMmQIwBkB9bp169Dr9SiKwvr162u89uOPP9Z4rxBaIsGOEC4wadIkPv/8c0pKSmo8v2DBAvr160fbtm1bpBwGg4FLL72UmJiYFrneuXz88ce8/PLL3HvvvXz33Xdcf/31DBw4kLvuuovNmzfTtWtXbrrpJg4dOuTqorq1wYMH15o9XLt2LX369CE1NdUZ3Jz6mk6nY+DAgS1YUiFahgQ7QrjAjTfeCNhu7g7FxcV8/vnn3HHHHWccv3bt2lpvXvXpMmjXrh07duxg3bp1zi60du3a1fl+RzfY1q1bmTBhAqGhoYSFhXHLLbdw/Pjxc342k8nE888/T5cuXTAYDMTExHD77bfX670vvPACERERvPLKK2e8FhQUxBtvvEFpaSmvvvqq8/m6utImT57s/JwOzz33HJdccgmRkZGEhobSq1cvFixYwOn7Ibdr146xY8eyYsUKevXqRUBAAF26dOHdd991HrNo0SKuv/56wJYNcfxuHb/L07t36iqvo24/+ugjHnvsMRISEggODmbcuHEcO3aM0tJS/u///o/o6Giio6O5/fbbz+iCOl1UVBTdunWrNdgZPHgwgwYNqjXY6dWrF2FhYQCUlJTwyCOPkJycjJ+fH61atWLq1KmUl5ef9dpCuCMJdoRwgdDQUK677roaN8+PP/4YnU7HpEmTmvRay5Yto3379vTs2ZONGzeyceNGli1bds73XXPNNXTo0IHPPvuMGTNm8MUXXzBq1Ciqq6vrfI/VauWqq65i9uzZ3HTTTXz77bfMnj2b1atXM3jwYCorK+t8b05ODjt27GDkyJEEBgbWeky/fv2IjY1l5cqV5/7gtcjKyuKee+7h008/ZenSpUyYMIEpU6bwz3/+84xj//jjD6ZPn87DDz/Ml19+Sffu3bnzzjv56aefABgzZgwzZ84E4F//+pfzd3u+XYJPPvkkeXl5LFq0iDlz5rB27VpuvPFGrr32WsLCwvj444959NFHWbx4MU8++eQ5zzdkyBB2795NTk4OAPn5+WRkZDBo0CAGDRrE77//7swsZmdnc+DAAWcXVkVFBYMGDeK9997jwQcf5LvvvuOxxx5j0aJFjB8//ozgUAh3p3d1AYTwVnfccQdDhgxhx44dXHTRRbz77rtcf/31TT5ep2fPngQEBBAaGsqll15a7/dNmDCBl156CYCRI0cSFxfHzTffzKeffsrNN99c63s+/fRTVqxYweeff86ECROcz/fo0YM+ffqwaNEi7r333lrf6+iaSk5OPmu5kpOT2b59e70/x6kWLlzo/LfVamXw4MGoqsprr73G008/XWNg94kTJ/jll1+cXYoDBw7k+++/56OPPmLgwIHExMTQsWNHALp27dqg321tunfvXqN8u3bt4tVXX+XBBx/k5ZdfBmDEiBFs3LiRDz/8kNdff/2s5xsyZAivvfaaM2hat24dPj4+9O/f3xms/Pzzz4wZM+aM8Tqvv/4627Zt47fffiM1NRWAYcOG0apVK6677jpWrFjB6NGjG/V5hWhJktkRwkUGDRrEBRdcwLvvvktGRgabN2+utQvLVU4PaCZOnIherz+j++NU33zzDeHh4YwbNw6z2ex8XHzxxcTHx9c6A62hVFU9Y7ZZff3www8MHz6csLAwfHx88PX15ZlnniE/P5+8vLwax1588cU1xk75+/vTqVMnDh482Kjy12Xs2LE1fr7wwgsBzsgUXXjhhRQUFJyzK2vQoEHodDrn73zt2rWkpqYSHBxMSEgIvXr1ctbl2rVr0ev1DBgwALDVY0pKChdffHGNehw1alSdMwmFcGeS2RHCRRRF4fbbb+f111+nqqqKTp06cfnll7u6WE7x8fE1ftbr9URFRZGfn1/ne44dO0ZRURF+fn61vn7ixIk63+sILDIzM89aroMHD9KmTZuzHlObTZs2MXLkSAYPHsw777xD69at8fPz44svvuCFF144o4stKirqjHMYDIazdsU1RmRkZI2fHb/Dup6vqqoiODi4zvOFh4dz8cUXOwOaH3/8sUbgdOq4nR9//JHU1FRnVvHYsWPs27cPX1/fWs99tnoUwh1JsCOEC02ePJlnnnmG//znP7zwwgt1Hufv7w+A0Wis8Xxz3nRyc3Np1aqV82ez2Ux+fn6tQYBDdHQ0UVFRrFixotbXz9ZFl5CQQEpKCqtWraKioqLWcTsbN27k2LFjXHfddc7n/P39KS4uPuPY0383S5YswdfXl2+++cb5+wT44osv6ixTY/j7+59RX45yRUdHN8s1TzdkyBDmzJnDtm3b2LFjh7NbEmzBzty5c9m2bRtZWVnOQfNgq8eAgIAaY8pO1VLlF6KpSDeWEC7UqlUr/va3vzFu3Dhuu+22Oo9zzCratm1bjee/+uqrel3nfDISH374YY2fP/30U8xm81kXERw7diz5+flYLBZSU1PPeHTu3Pms13zqqacoLCzkkUceOeO18vJyHnzwQfz8/Ljvvvucz7dr1449e/bUCCzy8/PZsGFDjfcrioJer8fHx8f5XGVlJYsXLz5rmc7GYDA4z3O6du3anVFfe/bsadGFER1jcJ577jl0Op2zmwpw/vu5556rcSzY6nH//v1ERUXVWo+nz3ITwt1JZkcIF5s9e/Y5j4mPj2f48OHMmjWLiIgIkpKS+P7771m6dGm9rtGtWzeWLFnCJ598Qvv27fH396dbt25nfc/SpUvR6/WMGDGCHTt28PTTT9OjRw8mTpxY53tuuOEGPvzwQ6688koeeugh+vbti6+vL4cPH+bHH3/kqquu4pprrjnr+9PS0njllVfIysrijjvuIC4ujt27dzNv3jx27drFggUL6Nq1q/M9t956K2+99Ra33HILd999N/n5+bz00kuEhobWOPeYMWOYO3cuN910E//3f/9Hfn4+r7zyijNgOR8pKSkAvP3224SEhODv709ycjJRUVHceuut3HLLLdx3331ce+21HDx4kJdeeqlF1zQaOHAgPj4+LFu2rEY3Fdi6uXr06MGyZcvw9fXlsssuc742depUPv/8cwYOHMjDDz9M9+7dsVqtHDp0iFWrVjF9+nQuueSSFvscQjSWBDtCeIjFixczZcoUHnvsMSwWC+PGjePjjz92zpY5m+eee46cnBzuvvtuSktLSUpKOueqv0uXLmXGjBnMnz8fRVEYN24cr776ap3jcQB8fHz46quveO2111i8eDGzZs1Cr9fTunVrBg0adM4AC+Dll19myJAhvPnmm9xzzz0UFhaiqiqxsbFs2LDhjJvsZZddxnvvvcfs2bO56qqraN++Pc8++yzLly+vMZB26NChvPvuu7z44ouMGzeOVq1acffddxMbG8udd955znLVJjk5mVdffZXXXnuNwYMHY7FYWLhwIZMnT+amm27i6NGj/Oc//2HhwoWkpKQwf/58ZyalJYSEhNC7d282bdrEoEGDznh90KBBbN26lb59+9boNgwKCuLnn39m9uzZvP3222RmZhIQEEDbtm0ZPny4ZHaEx1FUWTBBCHGKGTNm8Nxzz3H8+HG3GZvxj3/8g2effZZ//etfNbqwhBCiPiSzI4Rwe8888ww5OTk88MADBAUFnXV8kxBCnE4GKAshPML8+fOxWq0S6AghGky6sYQQQgihaW6T2Zk1axaKojB16lTnc5MnT3Zurud4nL4ku9FoZMqUKURHRxMUFMT48eM5fPhwC5deCCGEEO7KLYKdzZs38/bbb9O9e/czXrviiivIyclxPpYvX17j9alTp7Js2TKWLFnC+vXrKSsrY+zYsVgslpYqvhBCCCHcmMuDnbKyMm6++WbeeecdIiIiznjdYDAQHx/vfJy6dHpxcTELFixgzpw5DB8+nJ49e/LBBx+QkZHBmjVrWvJjCCGEEMJNuXw21v3338+YMWMYPnw4zz///Bmvr127ltjYWMLDwxk0aBAvvPACsbGxAKSlpVFdXc3IkSOdxycmJpKSksKGDRsYNWpUrdc0Go01Vlu1Wq0UFBQQFRV13hsMCiGEEKJlqapKaWkpiYmJ6HR1529cGuwsWbKEtLQ0tmzZUuvro0eP5vrrrycpKYnMzEyefvpphg4dSlpaGgaDgdzcXPz8/M7ICMXFxZGbm1vndWfNmtWiC3sJIYQQovlkZ2fTunXrOl93WbCTnZ3NQw89xKpVq2psyneqSZMmOf+dkpJCamoqSUlJfPvtt0yYMKHOc6uqetYMzRNPPMG0adOcPxcXF9O2bVuys7PPWGJeCCGEEO6ppKSENm3anHWTYXBhsJOWlkZeXh69e/d2PmexWPjpp5948803MRqNNTbsA9uuyElJSezduxew7RdkMpkoLCyskd3Jy8ujf//+dV7bYDDUuh9OaGioBDtCCCGEhznXEBSXDVAeNmwYGRkZpKenOx+pqancfPPNpKennxHogG0n4+zsbBISEgDo3bs3vr6+rF692nlMTk4O27dvP2uwI4QQQgjv4bLMTkhIiHPHYIegoCCioqJISUmhrKyMGTNmcO2115KQkEBWVhZPPvkk0dHRzl2Tw8LCuPPOO5k+fTpRUVFERkbyyCOP0K1bN4YPH+6KjyWEEEIIN+Py2Vh18fHxISMjg/fff5+ioiISEhIYMmQIn3zySY2+uXnz5qHX65k4cSKVlZUMGzaMRYsW1ZoZEkIIIYT3ke0isA1wCgsLo7i4WMbsCCGEEB6ivvdvly8qKIQQQgjRnCTYEUIIIYSmSbAjhBBCCE2TYEcIIYQQmibBjhBCCCE0TYIdIYQQQmiaBDtCCCGE0DQJdoQQQgihaRLsCCGEEELTJNgRQgghhKZJsCOEEEIITZNgRwghhBCaJsGOEEIIITRNgh0hhBBCaJoEO0IIIYTQNAl2hBBCCKFpEuwIIYQQQtMk2BFCCCGEpkmwI4QQQghNk2BHCCGEEJomwY4QQgghNE2CHSGEEEJomgQ7QgghhNA0CXaEEEIIoWkS7AghhBBC0yTYEUIIIYSmSbAjhBBCCE2TYEcIIYQQmibBjhBCCCE0TYIdIYQQQmia2wQ7s2bNQlEUpk6d6nxOVVVmzJhBYmIiAQEBDB48mB07dtR4n9FoZMqUKURHRxMUFMT48eM5fPhwC5deCCGEEO7KLYKdzZs38/bbb9O9e/caz7/00kvMnTuXN998k82bNxMfH8+IESMoLS11HjN16lSWLVvGkiVLWL9+PWVlZYwdOxaLxdLSH0MIIYQQbsjlwU5ZWRk333wz77zzDhEREc7nVVXl1Vdf5amnnmLChAmkpKTw3nvvUVFRwUcffQRAcXExCxYsYM6cOQwfPpyePXvywQcfkJGRwZo1a1z1kYQQQgjhRlwe7Nx///2MGTOG4cOH13g+MzOT3NxcRo4c6XzOYDAwaNAgNmzYAEBaWhrV1dU1jklMTCQlJcV5TG2MRiMlJSU1HkIIIYTQJr0rL75kyRLS0tLYsmXLGa/l5uYCEBcXV+P5uLg4Dh486DzGz8+vRkbIcYzj/bWZNWsWzz33XGOLL4QQQggP4LLMTnZ2Ng899BAffvgh/v7+dR6nKEqNn1VVPeO5053rmCeeeILi4mLnIzs7u2GFF0IIIYTHcFmwk5aWRl5eHr1790av16PX61m3bh2vv/46er3emdE5PUOTl5fnfC0+Ph6TyURhYWGdx9TGYDAQGhpa4yGEEEIIbXJZsDNs2DAyMjJIT093PlJTU7n55ptJT0+nffv2xMfHs3r1aud7TCYT69ato3///gD07t0bX1/fGsfk5OSwfft25zFCCCGE8G4uG7MTEhJCSkpKjeeCgoKIiopyPj916lRmzpxJx44d6dixIzNnziQwMJCbbroJgLCwMO68806mT59OVFQUkZGRPPLII3Tr1u2MAc9CCCGE8E4uHaB8Lo8++iiVlZXcd999FBYWcskll7Bq1SpCQkKcx8ybNw+9Xs/EiROprKxk2LBhLFq0CB8fHxeWXAghhBDuQlFVVXV1IVytpKSEsLAwiouLZfyOEEII4SHqe/92+To7QgghhBDNSYIdIYQQQmiaBDtCCCGE0DQJdoQQQgihaRLsCCGEEELTJNgRQgghhKZJsCOEEEIITZNgRwghhBCaJsGOEEIIITRNgh0hhBBCaJoEO0IIIYTQNAl2hBBCCKFpEuwIIYQQQtMk2BFCCCGEpkmwI4QQQghNk2BHCCGEEJomwY4QQgghNE2CHSGEEEJomgQ7QgghhNA0CXaEEEIIoWkS7AghhBBC0yTYEUIIIYSmSbAjhBBCCE2TYEcIIYQQmibBjhBCCCE0TYIdIYQQQmiaBDtCCCGE0DQJdoQQQgihaRLsCCGEEELTJNgRQgghhKa5NNiZP38+3bt3JzQ0lNDQUPr168d3333nfH3y5MkoilLjcemll9Y4h9FoZMqUKURHRxMUFMT48eM5fPhwS38UIYQQQrgplwY7rVu3Zvbs2WzZsoUtW7YwdOhQrrrqKnbs2OE85oorriAnJ8f5WL58eY1zTJ06lWXLlrFkyRLWr19PWVkZY8eOxWKxtPTHEUIIIYQbUlRVVV1diFNFRkby8ssvc+eddzJ58mSKior44osvaj22uLiYmJgYFi9ezKRJkwA4evQobdq0Yfny5YwaNape1ywpKSEsLIzi4mJCQ0Ob6qMIIYQQohnV9/7tNmN2LBYLS5Ysoby8nH79+jmfX7t2LbGxsXTq1Im7776bvLw852tpaWlUV1czcuRI53OJiYmkpKSwYcOGOq9lNBopKSmp8RBCCCGENrk82MnIyCA4OBiDwcBf//pXli1bRteuXQEYPXo0H374IT/88ANz5sxh8+bNDB06FKPRCEBubi5+fn5ERETUOGdcXBy5ubl1XnPWrFmEhYU5H23atGm+DyiEEEIIl9K7ugCdO3cmPT2doqIiPv/8c2677TbWrVtH165dnV1TACkpKaSmppKUlMS3337LhAkT6jynqqooilLn60888QTTpk1z/lxSUiIBjxBCCKFRLg92/Pz86NChAwCpqals3ryZ1157jbfeeuuMYxMSEkhKSmLv3r0AxMfHYzKZKCwsrJHdycvLo3///nVe02AwYDAYmviTCCGEEMIdubwb63Sqqjq7qU6Xn59PdnY2CQkJAPTu3RtfX19Wr17tPCYnJ4ft27efNdgRQgghhPdwaWbnySefZPTo0bRp04bS0lKWLFnC2rVrWbFiBWVlZcyYMYNrr72WhIQEsrKyePLJJ4mOjuaaa64BICwsjDvvvJPp06cTFRVFZGQkjzzyCN26dWP48OGu/GhCCCGEcBMuDXaOHTvGrbfeSk5ODmFhYXTv3p0VK1YwYsQIKisrycjI4P3336eoqIiEhASGDBnCJ598QkhIiPMc8+bNQ6/XM3HiRCorKxk2bBiLFi3Cx8fHhZ9MCCGEEO7C7dbZcQVZZ0cIIYTwPB63zo4QQgghRHOQYEcIIYQQmibBjhBCCCE0TYIdIYQQQmiaBDtCCCGE0DQJdoQQQgihaRLsCCGEEELTJNgRQgghhKZJsCOEEEIITZNgRwghhBCaJsGOEEIIITRNgh0hhBBCaJoEO0IIIYTQNAl2hBBCCKFpEuwIIYQQQtMk2BFCCCGEpkmwI4QQQghNk2BHCCGEEJomwY4QQgghNE2CHSGEEEJomgQ7QgghhNA0CXaEEEIIoWkS7AghhBBC0yTYEUIIIYSmSbAjhBBCCE2TYEcIIYQQmibBjhBCCCE0TYIdIYQQQmiaBDtCCCGE0DQJdoQQQgihaS4NdubPn0/37t0JDQ0lNDSUfv368d133zlfV1WVGTNmkJiYSEBAAIMHD2bHjh01zmE0GpkyZQrR0dEEBQUxfvx4Dh8+3NIfRQghhBBuyqXBTuvWrZk9ezZbtmxhy5YtDB06lKuuusoZ0Lz00kvMnTuXN998k82bNxMfH8+IESMoLS11nmPq1KksW7aMJUuWsH79esrKyhg7diwWi8VVH0sIIYQQbkRRVVV1dSFOFRkZycsvv8wdd9xBYmIiU6dO5bHHHgNsWZy4uDhefPFF7rnnHoqLi4mJiWHx4sVMmjQJgKNHj9KmTRuWL1/OqFGj6nXNkpISwsLCKC4uJjQ0tNk+mxBCCCGaTn3v324zZsdisbBkyRLKy8vp168fmZmZ5ObmMnLkSOcxBoOBQYMGsWHDBgDS0tKorq6ucUxiYiIpKSnOY2pjNBopKSmp8RBCCCGENrk82MnIyCA4OBiDwcBf//pXli1bRteuXcnNzQUgLi6uxvFxcXHO13Jzc/Hz8yMiIqLOY2oza9YswsLCnI82bdo08acSQgghhLtwebDTuXNn0tPT+fXXX7n33nu57bbb2Llzp/N1RVFqHK+q6hnPne5cxzzxxBMUFxc7H9nZ2Y37EEIIIYRwWy4Pdvz8/OjQoQOpqanMmjWLHj168NprrxEfHw9wRoYmLy/Pme2Jj4/HZDJRWFhY5zG1MRgMzhlgjocQQgghtMnlwc7pVFXFaDSSnJxMfHw8q1evdr5mMplYt24d/fv3B6B37974+vrWOCYnJ4ft27c7jxFCCCGEd9O78uJPPvkko0ePpk2bNpSWlrJkyRLWrl3LihUrUBSFqVOnMnPmTDp27EjHjh2ZOXMmgYGB3HTTTQCEhYVx5513Mn36dKKiooiMjOSRRx6hW7duDB8+3JUfTQghhBBuwqXBzrFjx7j11lvJyckhLCyM7t27s2LFCkaMGAHAo48+SmVlJffddx+FhYVccsklrFq1ipCQEOc55s2bh16vZ+LEiVRWVjJs2DAWLVqEj4+Pqz6WEEIIIdyI262z4wqyzo4QQgjheTxunR0hhBBCiOYgwY4QQgghNE2CHSGEEEJomgQ7QgghhNA0CXaEEEIIoWkS7AghhBBC0yTYEUIIIYSmSbAjhBBCCE2TYEcIIYQQmnZe20VUV1eTm5tLRUUFMTExREZGNnW5hBBCCCGaRL0zO2VlZbz11lsMHjyYsLAw2rVrR9euXYmJiSEpKYm7776bzZs3N2dZhRBCCCEarF7Bzrx582jXrh3vvPMOQ4cOZenSpaSnp7N79242btzIs88+i9lsZsSIEVxxxRXs3bu3ucsthBBCCFEv9doI9Prrr+eZZ56hW7duZz3OaDSyYMEC/Pz8uOuuu5qskM1NNgIVQgghPE9979+y6zkS7AghhBCeqMl3Pb/66qv55ptvsFqtTVJAIYQQQoiWUO9gp7KykquvvprWrVvz5JNPyrgcIYQQQniEegc7K1euJCsri3vvvZdPP/2ULl26MHDgQN5//30qKyubs4xCCCGEEOetQYsKtm7dmqeffpp9+/axZs0akpKSuO+++4iPj+eee+7ht99+a65yCiGEEEKcl0YPUC4tLeWjjz7iySefpLi4GLPZ3FRlazEyQFkIIYTwPPW9f5/XCsoOBw4cYNGiRSxatIji4mKGDx/emNMJIYQQQjS5Bu+NVVlZyfvvv8+QIUPo2LEjixcv5q677iIzM5MVK1Y0RxmFEEIIIc5bvTM7GzZsYOHChXz66aeYTCauvvpqVq5cKdkcIYQQQri1egc7AwYMoEePHrzwwgvcfPPNRERENGe5hBBCCCGaRL2DnS1bttCrV6/mLIsQQgghRJOr95idUwOdn3/+mVtuuYV+/fpx5MgRABYvXsz69eubvoRCCCGEEI3Q4AHKn3/+OaNGjSIgIICtW7diNBoB2xT0mTNnNnkBhRBCCCEao8HBzvPPP89//vMf3nnnHXx9fZ3P9+/fn99//71JCyeEEEII0VgNDnZ2797NwIEDz3g+NDSUoqKipiiTEEIIIUSTafCiggkJCezbt4927drVeH79+vW0b9++qcolhHChoxWVvLxrH7+cyMdf58PohDge6NSeEN9GrUMqGiinsoqX/9zLens9XJEQy5ROF0g9CNFADf6Lueeee3jooYd49913URSFo0ePsnHjRh555BGeeeaZ5iijEKIFbSkoZOIvmympPrn1y86SUr48ksOyyy8hIcDfhaXzHmkFRUz8ZRPFZ9RDLssG9CUxMMCFpRPCszS4G+vRRx/l6quvZsiQIZSVlTFw4EDuuusu7rnnHh544IEGnWvWrFn06dOHkJAQYmNjufrqq9m9e3eNYyZPnoyiKDUel156aY1jjEYjU6ZMITo6mqCgIMaPH8/hw4cb+tGE8HoHysq5fr0t0Lk4PIwP+/Xm36k9SAzwZ19ZOdeu30S5B+5/52myyiu43h7o9AgP5cN+vZmf2oNWAf7sLyvn2l82USb1IES9nfdGoBUVFezcuROr1UrXrl0JDg5u8DmuuOIKbrjhBvr06YPZbOapp54iIyODnTt3EhQUBNiCnWPHjrFw4ULn+/z8/IiMjHT+fO+99/L111+zaNEioqKimD59OgUFBaSlpeHj43POcshGoEKA2WrlirUbSS8qpm9kBP8b0IcgvS35m11RyRVrN3Csysit7dowr1c3F5dWuyyqyui1G/i9sJjUyHA+G9CXYHs9HK6oZPTajeRUVXFzUmte693dxaUVwrXqe/9u9K7nTen48ePExsaybt065yDoyZMnU1RUxBdffFHre4qLi4mJiWHx4sVMmjQJgKNHj9KmTRuWL1/OqFGjznldCXaEgHcPHOTR9B2E+/ry07ABZ3ST/Hw8n2t+/g2AVYP70ysy3AWl1L5FBw7xSPp2wnz1rBt2Oa1Pq4dfjudz9c+/oQIrBvcjNVJWsxfeq7737wZ3Y1VVVfHyyy9z5ZVXkpqaSq9evWo8GqO4uBigRtYGYO3atcTGxtKpUyfuvvtu8vLynK+lpaVRXV3NyJEjnc8lJiaSkpLChg0bar2O0WikpKSkxkMIb1ZmNvPizr0APNG1Y63jQS6PiWJS21YAPJPxZ4uWz1uUm83M/nMPAI9d2OmMQAfgspgobkxqDcAz23bhRt9XhXBbDR6gfMcdd7B69Wquu+46+vbti6IoTVIQVVWZNm0aAwYMICUlxfn86NGjuf7660lKSiIzM5Onn36aoUOHkpaWhsFgIDc3Fz8/vzP26oqLiyM3N7fWa82aNYvnnnuuScothBYszswm32QiOSiQ25Lb1nnc3y/qzLLDOfyaX8jGEwX0i46s81jRcIuzsjlhtNXD7e3rrocnunbi8+yjbCooZMOJAi6LiWrBUgrheRoc7Hz77bcsX76cyy67rEkL8sADD7Bt27YztpxwdE0BpKSkkJqaSlJSEt9++y0TJkyo83yqqtYZiD3xxBNMmzbN+XNJSQlt2rRp5CcQwjNVW638e28mAA92ugC9ru6Eb0KAPze0bcX7Wdm8vme/BDtNyHxKPTzQqT2+56iHG5NasyjzEG/sOSDBjhDn0OBurFatWhESEtKkhZgyZQpfffUVP/74I61btz7rsQkJCSQlJbF3ry3lHh8fj8lkorCwsMZxeXl5xMXF1XoOg8FAaGhojYcQ3mp17nFyqqqIMfgxsW3iOY+/r2MyAGtyj3OkorK5i+c11hw7ztHKKqL8/JzdhWfjqIfvjx0nW+pBiLNqcLAzZ84cHnvsMQ4ePNjoi6uqygMPPMDSpUv54YcfSE5OPud78vPzyc7OJiEhAYDevXvj6+vL6tWrncfk5OSwfft2+vfv3+gyCqF1Hx3MBmBi21YY6jF7sUNIMP2iI1GBJYeONHPpvMdHWbblMq5vm4h/PeqhfXAQA2KibPVwUJbaEOJsGhzspKamUlVVRfv27QkJCSEyMrLGoyHuv/9+PvjgAz766CNCQkLIzc0lNzeXykrbt5SysjIeeeQRNm7cSFZWFmvXrmXcuHFER0dzzTXXABAWFsadd97J9OnT+f7779m6dSu33HIL3bp1Y/jw4Q39eEJ4ldzKKlbnHgfg5qT6d+XeYh8g+1FWNlYZINtoeVVGVuXaJl7c0q7+9XCTvR4+PnhY6kGIs2jwmJ0bb7yRI0eOMHPmTOLi4ho1QHn+/PkADB48uMbzCxcuZPLkyfj4+JCRkcH7779PUVERCQkJDBkyhE8++aRGV9q8efPQ6/VMnDiRyspKhg0bxqJFi+q1xo4Q3uyz7KNYVJU+keF0Cq3/WlnjWiXw+B87OVhRyUYZINton2Ufwayq9I4Ip0to/YcJjGsVz+N/7OBQRSW/nCjgcqkHIWrV4GBnw4YNbNy4kR49ejT64ueaMhkQEMDKlSvPeR5/f3/eeOMN3njjjUaXSQhv8s1R24zF69uce4zIqQL1PoxNjOPjQ0f45miuBDuN9M2RYwBcV48xU6cK8PFhXGI8Hx48zDdHciXYEaIODe7G6tKli7ObSQjhuXIqq9hSUATA6MTaB/OfzZhW8QB8e/SYrPXSCLmVVWwusE2wGJNwHvWQaKuH5UePSVeWEHVocLAze/Zspk+fztq1a8nPz5fF+YTwUN8dtWUT+kSGn9fmnoNjowny8eFoZRVbC4ubunhe47ucY6hAr4iw89rcc2BsFMF6PTlVUg9C1KXBwc4VV1zBxo0bGTZsGLGxsURERBAREUF4ePgZC/sJIdzXtzm2Lqwr7ZmBhvL38WF4fAxgyyqI8+P43Y1pgnr49mjtC6kK4e0aPGbnxx9/bI5yCCFaUGm1mV+OFwAw5jy6sByuTIznyyO5rMw9xt9TOjdV8bxGmdnM+uP5AFzZiHoYkxjHF4dzWJmTxzMpXZqqeEJoRoODnUGDBjVHOYQQLeiXE/mYVZXkoEDaBwed93mGxEajAH+WlJFbWUX8eXSHebMNxwuoVlXaBgbQoRH1MDg2Gh2wu7SMnMqq8+qWFELL6tWNdejQoQad9MgRWWhMCHe2Lu8EYLtJNkakwY8e4WEA/GTPUIj6O7UeGrOMR4SfHxdHhNU4pxDipHoFO3369OHuu+9m06ZNdR5TXFzMO++8Q0pKCkuXLm2yAgohmt6Px5om2AEYEhdtP+fxRp/L2/xoD0wcv8PGGBIbU+OcQoiT6tWN9eeffzJz5kyuuOIKfH19SU1NJTExEX9/fwoLC9m5cyc7duwgNTWVl19+mdGjRzd3uYUQ5+lwRSX7ysrRAQOaYF2WQbHRzNu9n3V5J866Aa+o6WhFJXtKy9ABl8c0PtgZFBfNnN37+CnvBFZVRSf1IIRTvTI7kZGRvPLKKxw9epT58+fTqVMnTpw44dyM8+abbyYtLY1ffvlFAh0h3Jyjm6N3ZDhhfr6NPl+fyHCCfHzIM5rYWVLa6PN5i3X2br+eEeGEN0E9pEaGE6T34bjRxI5iqQchTtWgAcr+/v5MmDCBCRMmNFd5hBDN7NcTtllYTZHVATD4+NA3KoIf806w8UQBF4WFNsl5tc5RD5fFNGxPwbr46XT0i4pkzbHjbDxRQLdwqQchHBq8zo4QwrP9mm9brfeSqKZbF+vSaNsNe+OJwiY7p9Y56uHSqKYJduBknf6aX9Bk5xRCCyTYEcKL5FUZySyvQAH6RDZhsHPKTVa2jji3E0Yj+8vKAejbDEHnryekHoQ4lQQ7QniRTfZswoWhIU0yXsehV2Q4vorCsSojWeUVTXZerXLUQ5fQ4CYZr+PQMyIMP52OPKOJA1IPQjhJsCOEF3F0bzRlFxbYdt92rPPi6J4RdWuOrkSwbR3Ry1EPJ6QrSwiHBgc75eXlzVEOIUQL+M1xk41u+n3sTu1CEWf32wlHsNN043UcnON2pB6EcGpwsBMXF8cdd9zB+vXrm6M8QohmUm42k1FUAjTPTbavfQxQWmFRk59bSyrMFrYV2XYnv7SJMztwcgxQmuyALoRTg4Odjz/+mOLiYoYNG0anTp2YPXs2R48ebY6yCSGa0O+FxZhVlcQAf1o3w95JPe3dJ7tLyiitNjf5+bVia2ER1apKvL+BNoEBTX7+XhHhAOwtLaO0urrJzy+EJ2pwsDNu3Dg+//xzjh49yr333svHH39MUlISY8eOZenSpZjN0sgJ4Y7SCmxdJ30iI5plleP4AH8SA/xRwZm5EGdKKygCbBmY5qiHGHsQpQLp9kyeEN7uvAcoR0VF8fDDD/PHH38wd+5c1qxZw3XXXUdiYiLPPPMMFRUyE0AId5Ju79boFRnWbNdwDI79XbpQ6vSHPRB0DOhuDo4s21Z7YCWEtzvvYCc3N5eXXnqJCy+8kMcff5zrrruO77//nnnz5rFs2TKuvvrqJiymEKKxHMGOY5fy5tDT3oWSLuN26uSoh4tboB62StApBNDA7SIAli5dysKFC1m5ciVdu3bl/vvv55ZbbiE8PNx5zMUXX0zPnj2bspxCiEY4YTRyuLIKgB7NuI2AM6MgN9laFRhNHKyoBJo76HRk2Iqa7RpCeJIGBzu33347N9xwA7/88gt9+vSp9Zj27dvz1FNPNbpwQoim8UehbexGh+AgQnybbhG7010cEYYCHKqo5ITRSLTB0GzX8kSOLqz2wYFNuqjj6XqE2+rhSGUVeVVGYv2lHoR3a3Cwk5OTQ2Bg4FmPCQgI4Nlnnz3vQgkhmlZ6C4wTAQj19aVDSBB7S8vZWljMiPjYZr2ep3GO12nGrA5AiK+eTiHB7C4tY2thEaMS4pr1ekK4uwaP2TGbzZSUlJzxKC0txWQyNUcZhRCN1BLjdRwcU59/l8GxZ3CO12nmoBNksLgQp2pwsBMeHk5ERMQZj/DwcAICAkhKSuLZZ5/FarU2R3mFEOehJW+yjvEi6TL9/AwtGXQ6Bin/IcGOEA3vxlq0aBFPPfUUkydPpm/fvqiqyubNm3nvvff4+9//zvHjx3nllVcwGAw8+eSTzVFmIUQDHKsyklNVhQJ0a8bByQ4pYbZr7CgubfZreZLjVbZB4grQvSXqwX6N7cWy1o4QDQ523nvvPebMmcPEiROdz40fP55u3brx1ltv8f3339O2bVteeOEFCXaEcAOOb/adQoIJ1jf4T77BLgoLAeBoZRWFJhMRfn7Nfk1P4Biv0yGkeQeJO1wYGoIC5FYZZbC48HoN7sbauHFjrdPKe/bsycaNGwEYMGAAhw4danzphBCN5vhm3xJZHYAQX1+S7NsgbJfsjpMj09UtrKXqQU+7oMAa1xbCWzU42GndujULFiw44/kFCxbQpk0bAPLz84mIaPoN7oQQDee40V3UQjfZU6+1XbYrcNphDzpbsh4cXYrSlSW8XYNz2q+88grXX3893333HX369EFRFDZv3syuXbv47LPPANi8eTOTJk1q8sIKIRpuZ4njJhvSYtdMCQ9lec4x5w1ewM4SW9DZtQXr4aKwEL4+miuZHeH1GpzZGT9+PHv27OHKK6+koKCAEydOMHr0aHbt2sXYsWMBuPfee5k7d+45zzVr1iz69OlDSEgIsbGxXH311ezevbvGMaqqMmPGDBITEwkICGDw4MHs2LGjxjFGo5EpU6YQHR1NUFAQ48eP5/Dhww39aEJoTpXFwv7ScgC6hrZgsGO/octN1sZosbDXXg8XtWQ9hDsGi0vQKbxbg4Kd6upqhgwZgtFoZNasWSxdupRly5Yxa9Ys2rVr1+CLr1u3jvvvv59ff/2V1atXYzabGTlyJOXl5c5jXnrpJebOncubb77J5s2biY+PZ8SIEZSWnmxEp06dyrJly1iyZAnr16+nrKyMsWPHYrFYGlwmIbRkd0kZViDKz4+4FlxF19FVs6ukFJMsQ8Ge0nIsqkq4ry8JAf4tdl1HN9bukjKM0h4KL9agbixfX1+2b9+OoihNcvEVK1bU+HnhwoXExsaSlpbGwIEDUVWVV199laeeeooJEyYAttlgcXFxfPTRR9xzzz0UFxezYMECFi9ezPDhwwH44IMPaNOmDWvWrGHUqFFNUlYhPNGpXSdN9XdbH20DAwjR6yk1m9lbWtai41Tc0U57ZqWl66FVgD9hvnqKq83sKS1vsUHqQribBndj/eUvf6l1gHJTKC62Tc2MjIwEIDMzk9zcXEaOHOk8xmAwMGjQIDZs2ABAWloa1dXVNY5JTEwkJSXFeczpjEbjGStAC6FFO065ybYkRVGcY4SkKwt2lDgGibd8PZxc90jaOeG9GjxA2WQy8d///pfVq1eTmppKUFBQjdfrM1anNqqqMm3aNAYMGEBKSgoAubm5AMTF1dzXJS4ujoMHDzqP8fPzO2P2V1xcnPP9p5s1axbPPffceZVTCE+y0zETqwXHiTikhIXya34hGUUlTGzbqsWv704c9dA1tOUzKylhofxyooCM4hJuaPGrC+EeGhzsbN++nV69egGwZ8+eGq81Jj37wAMPsG3bNtavX3/Ga6efV1XVc17rbMc88cQTTJs2zflzSUmJc9q8EFqhqqozq9LVBd1IF9qzGLtLJLOzs7jlZ8Q5OLJ6u6QehBdrcLDz448/NnkhpkyZwldffcVPP/1E69atnc/Hx8cDtuxNQkKC8/m8vDxntic+Ph6TyURhYWGN7E5eXh79+/ev9XoGgwGDrCYqNC7PaCLfZEIHdA4NbvHrd7Ffc1dpWYtf253kVRnJM5pQcE09OK65u8S760F4t/NeO37fvn3s37+fgQMHEhAQUK9sy+lUVWXKlCksW7aMtWvXkpycXOP15ORk4uPjWb16tXPVZpPJxLp163jxxRcB6N27N76+vqxevdq5hUVOTg7bt2/npZdeOt+P12w2b9rEgv/+l+rqalcXpVEiIiJ4/MkniY6OdnVRzsvvaWm889ZbmDy8HsLDw3nsiSeIjY094zVHNuGCkCACfHxaumh0CTm5bURJdTWhtWyR8Ed6Ov+ZPx+TydTSxWtSoaGhPPb448Sf8qXM4U97RqVdUCBBLbBdx+k6h9iCndwqI8WmasL8zqyH7RkZ/Ptf/8JoNLZ08ZpUaEgIjzz2GK1aeWa36c6dO/nXG29QVVXl6qI0SnBwMNP/9jfatm3r6qI4NfgvLz8/n4kTJ/Ljjz+iKAp79+6lffv23HXXXYSHhzNnzpx6n+v+++/no48+4ssvvyQkJMQ5xiYsLIyAgAAURWHq1KnMnDmTjh070rFjR2bOnElgYCA33XST89g777yT6dOnExUVRWRkJI888gjdunVzzs5yJ59+8glpW7a4uhhNYsDll3P1Nde4uhjn5bP//Y8tGqmHS/v14/pT9qpz2G3PqDiCjpYW5udLvL+B3Coje0rLSI08c1X1pZ9/zpbNm11QuqbXp29fbrr55jOed2RULnTBuCmwbd/RKsCfI5VV7Cot5ZKoyDOO+WLZMjZv2uSC0jW9nr168ZfJk11djPPy1Zdfsum331xdjCbRvUcP7rzrLlcXw6nBwc7DDz+Mr68vhw4d4sILL3Q+P2nSJB5++OEGBTvz588HYPDgwTWeX7hwIZPt/1kfffRRKisrue+++ygsLOSSSy5h1apVhJzSgM+bNw+9Xs/EiROprKxk2LBhLFq0CB8XfJs9F6t9zZFrr7+eSy65xMWlOT/vL1rE9u3bsXrwuh2Oerj6mmvof9llLi7N+fnwgw/4Iz3d+VlO57jJdgpp+a4Th86hweRWGdlVUnuwY7GXfdz48Vw+cGBLF69JLPn4Y35PS6uzHvaUukE9hARzpLKK3SVltQY7jjXJRl95JUOGDm3p4jWJ/336KZs3bXL+n/JEjjZ15KhRDB8xwsWlOT9LP/+cXzdudLv7Q4ODnVWrVrFy5coaY2sAOnbs6JwhVV+qqp7zGEVRmDFjBjNmzKjzGH9/f9544w3eeOONBl3flbp06eKxjcryb791dRGaTKfOnT22HlavWnXW1/c6brIuGCfi0CUkhHV5+eccHNuhY0ePrYe15xjHuNsN6qFzaAg/5J0457idDh06eGw9/FLL5BZP1f6CCzy2Hn5z08xUg9fZKS8vJzAw8IznT5w4IYN+hXAjbpFRsN/g93jx4Ni9blAPjsHiu718sLjwXg0OdgYOHMj777/v/FlRFKxWKy+//DJDhgxp0sIJIc7PCaORAlM1CtAhJOicxzeXLvZxKt46IyvfaOKE0Tb4uqML68ERdMr0c+GtGtyN9fLLLzN48GC2bNmCyWTi0UcfZceOHRQUFPDLL780RxmFEA3k6K5oGxjgkplYDo6ZQGebkaVljuxa6wB/l8zEcqjPjCwhtKzBmZ2uXbuybds2+vbty4gRIygvL2fChAls3bqVCy64oDnKKIRoIMdNtqMLu07g5IwsOFkmb+L4zJ1dNBPLwTEjC6QrS3in8/qqER8fL9stCOHG9paWA65ZxO50XUJDzjojS8tOBp2u68JycMzI2lVSSt8o76oHIc4r2CkqKmLTpk3k5eWdMd3yL3/5S5MUTAhx/txhcLJD59Bg1uad8MrxInvdYPq/Q31nZAmhRQ0Odr7++mtuvvlmysvLCQkJqbFqsqIoEuwI4QbcYY0dh47BtjLss2ebvMluZzeWG9SDPbu0r8z76kGIBo/ZmT59OnfccQelpaUUFRVRWFjofBQUFDRHGYUQDVBaXU2Ofbl5dwh2HLPB9nvZTbbMbOZIpTvVgyPolMyO8D4NDnaOHDnCgw8+WOtaO0II13OM14k1GNxi1k2HYFuwc6iiEpMHr27bUI71dWIMfkT4+bm4NDXrocrNVrcVork1ONgZNWqUZvYUEkKL9rhR1wlAnL+BIL0PFlUlq6zC1cVpMY6g0x2yOmALukJ99ahAVrn31IMQcB5jdsaMGcPf/vY3du7cSbdu3fA9bd2M8ePHN1nhhBANt9uNBieDbSxfh+Ag/igqYV9ZmUu3TWhJu+0Dst2tHn4vLGZfablzwUchvEGDg527774bgH/84x9nvKYoinNDOSGEa+xxDk52/XRnhw4hwbZgx4sGKe9xZHbcKLi7wBHslMm4HeFdGhzs1LWzrxDCPThm27h6QcFTOcaLeNNMIEdA0THYvYJO8M6ZccK7NXjMjhDCfZmtVg7ax2Nc4EY3WUdZvGVG1qnjky6QoFMIl6t3sHPllVdSXFzs/PmFF16gqKjI+XN+fj5du3Zt0sIJIRrmUEUlZlXFX6cjwb49gDtwTD/3loxCdkUl1aqKQadzbtPgDrx1GQAh6h3srFy5EqPR6Pz5xRdfrLGujtlsZvfu3U1bOiFEgxyw38TaBwehO2XBT1dzZHbyTSYKTSYXl6b5OeohOTjQreqhfXAQClBoqibfqP16EMKh3sGOqqpn/VkI4Xr7ncGOe62DFaTXk2jPcHhDdscZdAa5T1ciQICPD60DAwBkkLLwKue1N5YQzSWnsoplh4+ys7gUX52O1MhwxreKJ8TX9YvjeYIDZe43XsehQ3AQRyur2FdWTh+Nb0S5/5QMm7u5IDiI7IpK9pWWc0lUpKuL4xFyK6tYam+X9DodvSPCubp1AiG+cgv1FPWuKUVRauyD5XhOiKZgVVXm7d7P3F37MJ4y429xVjb/3LGbmd27MqFNogtL6BkOuPlN9qfj+V6xXYG7B51r807IIOV6sKgqr+/ezyuntUsfZGXzzx27mN3jImmXPES9gx1VVZk8eTIGgwGAqqoq/vrXvxJkT9OeOp5HiIaotlq5e9NWvjl6DIA+keEMj4+lymLhi8M5ZJZX8H+b09lbWsZjXTu5uLTuzZ0zCt40ONZduxPhlHrwgu7ExjBZrdyzKZ2vj+YCkBoZzoj4WIwWC18cyeFAma1d2lNaxmMXdpQv/26u3sHObbfdVuPnW2655YxjZMdz0VCqqjJ963a+OXoMg07HnJ4pTGrbytlw/O3Cjry4cw+v7TnAy7v2Eeyr5/6O7V1cavdktFjIrqgE3DWjYF/jRePBjslq5ZAbTv93kOnn56aqKtN+z+Dro7n46XTMPa1devTCjrz4517m2bM+wXo9D3SSdsmd1TvYWbhwYXOWQ3ip+fsy+ejgYXTAwkt6MTIhtsbrfjodT6d0IczPl39s381zGbvoHRHOpdEy1uB0WeUVqECwXk+MwfUbT57OkVE4UFaBRVXx0eg34YPlFViBIL0Pcf4GVxfnDI6FBTPLyjFbreh1stza6f574CBLDh1BB7x/aS+Gx9dsl/Q6HU9d1JlwP1+ezdjFc9t30T08lIGx0a4psDgn+V8uXGZPSRkv7NgDwMweXc8IdE71YKcLmNi2FVbgns3pFJuqW6iUnmO/c5xIoFum1FsHBuCrKJisVo5WVrm6OM1m/ykzsdyxHhID/PHX6ahWVY5ouB7O156SMp7Z9icAM7p1OSPQOdV9HZK5Oak1KvBg2jZKq6VdclcS7AiXsKoqU9K2YbRaGR4Xw53tk875nhd7XERyUCBHKqt48c+9LVBKz+LO43UAfBSFpCDbGJZMDXehuPMgcQCdl9TD+bCqKtO2ZlCtqoyIj+HeDslnPV5RFF7o0ZWkwAAOV1bx3HZZa85dSbAjXOKz7KOkFRYRrNczt2dKvb4Bh/jqeaVnCgALDhxkl31XaWHjuMm64zgRh2T7gF3HbCUtcgSdHTyhHsq1Ww/n43+HjvBrfiGBPj68dHH92qVgvZ7XencH4P3MQ/xZLO2SO5JgR7S4KouFWTtt3VdTO7cn0b7IWX0Mio1mTGIcFlXl2YxdzVVEj+TuGQWAZPvszSwN32QdgZw7zsRyaGfP7Gi5HhrKZLU6M8aPdOlAmwa0SwNiohiXGI8V+McOaZfckQQ7osW9n5lNdkUlCf7+/N8FZ08T12ZGShd8FIXvjx3n94Kipi+gh9rvQZmdzHLtdp+4e3cinFzZOVPDGbaG+jArm0MVlcQaDNx1QbsGv/+pizrhoyiszj3OrycKzv0G0aIk2BEtqtpq5V97DwAwrcsFBOp9GnyO5OAgrrMv5DVn174mLZ+nKjObya2yrXXlzhmFZOdYEW3eZCvMFufgawk6PUe11cq83fuB82+XOoQEc1NSawBe33OgScsnGk+CHdGivjicw5HKKmIMftxobxjOx9TOF6AAK3Pz2Flc0nQF9FCO4CHSz5cIP/ebdu5waveJFvfXcwQP4b6+RLrh9H8HRz0cLK/AqsF6aKgvj+RwtLKKWIOBW9u1Oe/zPNCpPQqwKjeP3TKm0K1IsCNajKqqzqzO3Re0w9+n4d+eHDqGBDOuVTxgG6zs7bLsN9lkN9t48nRtgwLRARUWC8eqtLfq+kH7GJhkN86uAbQJDECvKFRarJqsh4ZQVZX/7M0C4I72bTE0ol26IDiIMYlxAPxrb2ZTFE80EZcGOz/99BPjxo0jMTERRVH44osvarw+efJk555cjsell15a4xij0ciUKVOIjo4mKCiI8ePHc/jw4Rb8FKK+NhcUsb24lAAfHbe3b9vo8zmmq//v0FGvX3cnq9y2cnI7N7/J+ul0zoGfmRocHOv4TI6p3e5Kf0o9HPDy6eebCgpJLyrGoNMxuQnaJccK70uzj1Lk5e2SO3FpsFNeXk6PHj1488036zzmiiuuICcnx/lYvnx5jdenTp3KsmXLWLJkCevXr6esrIyxY8disViau/iigd7PPATA1a0SmqSrpX90JF1Cg6mwWPj4kHcHuI7MTrtA977JwsmATIszgZyZHTcPduBkGbVYDw2xODMbgOvaJBJtaPyK16mR4VwUFkKV1cqnh440+nyiabg02Bk9ejTPP/88EyZMqPMYg8FAfHy88xEZeXKbgOLiYhYsWMCcOXMYPnw4PXv25IMPPiAjI4M1a9a0xEcQ9VRkquaLwzkA3NYE357AtqDXHfbszodZ2ZocA1JfBz0kswMnu9q0uKBdVplnZHbANtAftDtYvD7KzGa+PmLb6PPmRozVOZWiKPzFfq73sw55dbvkTtx+zM7atWuJjY2lU6dO3H333eTl5TlfS0tLo7q6mpEjRzqfS0xMJCUlhQ0bNriiuKIOn2cfocpqpWtoCL0jwpvsvNe2TsSg0/FnSRnbvXgxrywP6T4BbS9ol1Vh+0ztPKgevHlG1leHcyi3WLggOIg+keFNdt7r2rQiwEfHrpIytsjyGG7BrYOd0aNH8+GHH/LDDz8wZ84cNm/ezNChQzEabQPqcnNz8fPzIyIiosb74uLiyM3NrfO8RqORkpKSGg/RvD7LPgrAjUmtm3S/oDA/X0bZ99T6xEu7sizg3O28XQMWQnMVZ/eJxjIKViDbkWHzgGDHUUYtjp2qr48O2tqMG5NaNXm7NDbRNoHic3vbJ1zLrYOdSZMmMWbMGFJSUhg3bhzfffcde/bs4dtvvz3r+1RVPet/3FmzZhEWFuZ8tGnTNOlLUbtD5RVsLihCAa5undDk57++TSvANiDQbLU2+fndXSEKFlXFoNMRH+Dv6uKck6Mb60B5OVpK8Bcpts01/XQ6EjygHk5dWFBL9VBfB8rK+TW/EB0wqe35L4NRlwn2tcC+PJLjle2Su3HrYOd0CQkJJCUlsXevbUnv+Ph4TCYThYWFNY7Ly8sjLi6uzvM88cQTFBcXOx/Z2dnNWm5vt8w+VueymKhmuQkMi48h0s+XPKOJdXn5TX5+d3dCsf0Ztw0KQOeGu2yfztHVVlJtxuijd3Fpmo6jHtoEBuDjAfXQNigABSg1m6nSUD3Ul6NdGhwb3Szt0uDYaCL9fDluNLH+uPe1S+7Go4Kd/Px8srOzSUiwZQd69+6Nr68vq1evdh6Tk5PD9u3b6d+/f53nMRgMhIaG1niI5rP0sC2Ne23rxGY5v59OxzX2c3+W7X2zHxw3WU/oOgEI1PsQ72+b9VJscP8MSH3l62zrs3hKPfj7+JBov8lrqR7q6+sjtmCnObLNAL46HeNb2c691B5YCddxabBTVlZGeno66enpAGRmZpKens6hQ4coKyvjkUceYePGjWRlZbF27VrGjRtHdHQ011xzDQBhYWHceeedTJ8+ne+//56tW7dyyy230K1bN4YPH+7CTyYcdpWUsqO4FF9FcS4C2ByusTdYK3PzMHlZytjTgh04OROoREM32ROKZwU7cLIeivwaP+XakxwoK2d7cSl6RWF0Yt29AI3l6Mr6+kguVbIciku5NNjZsmULPXv2pGfPngBMmzaNnj178swzz+Dj40NGRgZXXXUVnTp14rbbbqNTp05s3LiRkJAQ5znmzZvH1VdfzcSJE7nssssIDAzk66+/xqcRq2CKpvOVfVrnkLgYwv18m+06faIiiDX4UVJt5hcvSxk7gh1PmInl4BikXOzv/gOq6ytf56gHz/lMjsDM2zI739jbpQExUc26vcqlUREkBvhTajazLu9Es11HnJtLO2oHDx581jUIVq5cec5z+Pv788Ybb/DGG280ZdFEE/nu6DEAxjbjtycAH0XhioQ43s/K5tujxxgSF9Os13MnJ/C8zI4jMCvVUEYh35nZce8tO07Vzh6YlWioHurD8SWsObPNADpFYXRCHAsOHOS7nDxGJTRvOyjq5lFjdoRnOVJRSUZxCTpgpH16eHMaY5/qufzoMa/Z3FAFjntgN5Yj+6GlbixHZqedB2V2HEFnsRcFO4fKK0gvKkYHXNkCwcdoe9u3Ksd72iV3JMGOaDYrcmxZnb5REU2yDPu5XB4bRYheT57R6DULeVkDAqiyz/xp6wFbRTg4ArNSjQQ7Fn9/Kpyz4jynHpLs/2dK/LRRD/WxIse2MG2/6Ehi/Ju/Xeof42iXTPxeWNTs1xO1k2BHNJvv7I1KS6Vu/XQ6Zwbp26N1LyqpJeZw2/Ypcf4GAvWeM07NEZiV+fqhamB8naMeYg1+BOs9Zxq3I7NT7ueH1Uumn6/JtbVLLZFtBlu7NCze1q3u6NYXLU+CHdEsSqqrnQOFR7dQowJwhf1a3x873mLXdKVq++rhntSFBRBj8CPQxwcUBXNouKuL02hmez140iBxgEg/X2dwZg4Ld21hWkC52cwvJwoAGBnfcu3SaPsXPkdWSbQ8CXZEs/jh2AmqVZWOIUF0CAlusesOjo1GB+wqKeOIfQsFLTNHRAGeF+woikJb+9iW6tO2e/FE1R5cD47xU2YN1MO5/JSXj9FqJSkwgA7BLTeQfHhcDHpFYXdpmSY3wPUEEuyIZvGjPbMyPK7lvj0BRPj50du+oZ83ZHeqwz0zowAnx4uYwz3/JmuWevAIa47ZMisj4mObdC+scwnz8+WSKNvv98djMgXdFSTYEU1OVVV+sP9BD42LbvHrD7NPO/eGYMccYRsr4mkZBThZZsd4F09Wba+HZA+sB2eGTQP1cDaqqrI61/4lLL7ll6YYYm8Lf8jTfrvkjiTYEU1uT2kZOVVV+Ot0XBrd8g3oUHuwsy4vn2qNr6Zc7cHBzsmbrOdnFBxBpydmdk4GnZ5fD2fzZ0kpRyurCPDRcVlMVItff0isrV36+Xi+163y7g4k2BFNzpHV6RcdSYALZtpcHBFGlJ8fZWYzm/ILz/0GD2VRFCz2fd088SbrKLOnjxWxKArm0DDAM+vBMTPO0+vhXNbaVzDuHx3lknapW3go0QY/ys0Wr1kaw51IsCOanKNRGeKCLiywrVrqTBlruCur1OAPig4/VSXW0HxL3jcXrYwVKfU1gE6Hr6o6Nzj1JI7MTnV4JFpe8u6nPNvs0IGxLZ/VAVu7NCjW1i79qOF2yV1JsCOaVJXFwoYTtkbFkbZ1hSH2RuVnDe+TVWZf9TYSa4sOtmwqjm4sa0AgFXhe+R3K7HsrRaieWQ9t7PWg+vt7dD2cTbXVysZ825TzgTGu+RIGJ9slGaTc8iTYEU3qt/xCKi1WEvz96RLaclPOTzfA3iefXlhMSXW1y8rRnBzBToSHLkEfpNcTUG0CIF/x3KboZD145q7WAT4+BNnroUDn+Qs81mZrYTHlZguRfr5cFBZy7jc0k8H2YOePomLyjSaXlcMbeW4LI9ySYyHBgbFRLv2W2yowgOSgQKzARvsiYlpTZt9qIVL13MGOocYqwLODnVJfW2Yn3IMHnYaajADkazTY+cnetT4gJgqdC9ul+ADbl0AV7bZL7spzWxjhlhyrk17mgllYp3Nkd9Yf12ajUu7MKHjuTTbEeZP13KaoTAP14Ah2tJrZ+cn+JexyF8zCOt1l0bYy/HJCu13s7shzWxjhdsrNZn63zzJwxdTO050MdrTZqJwcs+OZ3VgAwfabbJEnZ3Y0EOw468GDg866VJwy+2lgrOvG6zhcFmP7IviLRr+EuSvt/c8WLrOloIhqVaV1gD9tAwNcXRxnsLO9uIRCk/b6x7WQUXDcZAs9ONgps3djRVg9c8wOQIh9zE6Ror3Mzm/5BZisVloF+NPeDZYG6BdlC3Z2lpTKuJ0W5LktjHA7jvE6l8W4dryOQ5y/gU4htv7xDRr7FqWqKmUGzw92gkyOm6xnNkWqqmoks2OvBw1mdhwzMge6SbsU429wTt6QcTstR3v/s4XLuNN4HQdHH73WpqAXmKqx2MdXhEs3lssUVVdjti9QF+bJwY6GMzuObuzL3aALy0HG7bQ8z2xhhNs5dbxOfzcYr+MwwN4/vl5jjUq2fUd3n7JSfF1clsZw3GRLUTxyCf3DFbbZZLryMjxvWceTHPVQptNRZfHc7rjTlZvNbCsqAaC/G30Jk3E7LU+CHdEkHON1WgX4k+QG43UcHN+gdpWUccJodHFpms4Re7CjLy5ybUEayd9cjWKuRlUUciqrXF2cBsvWSj1YzCj2gMcT66EuaQVFmO3tUms3apdOHbdTION2WoQEO6JJuNt4HYdIgx+dQ2z945vyi1xbmCaUXamNm6wC+JTYvnkf8cCb7BFnPRS7uCSN4+n1UJdf7XvjuWJD4rORcTstT4Id0SQ22P9g3SlV7HBJlG3vpd/ytdOoHHZ0Y3n4TRZAX2L7DEftgYMn0UpmB06tB+0EO46/eUcb4E5OjtvRTrvkziTYEY1mtFjYWmhrKPu5cbCjpR3QD2voJutTassoHK3wvJuslurBEew4ukg9ndlqZYs9m+voNnInl0Zr70uYO5NgRzRaRnEJRquVKD8/t1jH4nSX2AOw9MJiKjUy+NIxMFZTN1kPzCg4g52SItcWpAloLbOzraiEcouFcF9fOrtwn7669I20BTvbi0spN5tdXBrtk2BHNJojY9InKtytxus4JAUGEGswUK2qpBd6frcPwOFKDd1kix3BjudlFLSU2XFk2Dwx6KzNb/Z2qW9UhEv3w6pLq8AAWgX4Y1FVftdIu+TOJNgRjbbZnip2fFNxN4qiaCplXGG2cMI+g0MLN9mT3SeedZOtsljIc9aD59+sHJ/BE8dO1eZX+9+642/fHfWxd7Fv1lAXu7uSYEc0iqqqzm9QfdxwEKBDX3vZfj3h+Y2KIwPiazGjq/KsAKE2PiWemdlxZED0Fgu6ygoXl6bxHEHnYQ8LOmtzart0qRuO13FwfEHU0nhCdyXBjmiU7IpK8oxG9IrCxRFhri5OnRyDlDcXFGJVPXfFYTjZdRJsNOJ+yfmG8y2yNfQFpmpKq6tdXJr6c9RDiEkb9aAvttVDUXU1xSbPqYfa7Csr54TRhL9OR4/wUFcXp059NdQuuTsJdkSjOL49dQ8PJcDHfZea7xYWSpCPD8XVZnaXlLm6OI3i+Obt2GrB0+lMRoLsWy1klXtOdscZ7FRrY1E4nclEsNVRD56dqUqzr+Z+cUQYBjduly4KCyHQ3i7tKfXsdsndSbAjGmVzgft3YQHodTp6RYYDJ/vyPdXJzI7ndzc4RDuDnXIXl6T+HGvsaCXoBIiy79x+sMKzg50t9mCnt/1v3l35ntIuSVdW83JpsPPTTz8xbtw4EhMTURSFL774osbrqqoyY8YMEhMTCQgIYPDgwezYsaPGMUajkSlTphAdHU1QUBDjx4/n8OHDLfgpvJu7D04+laOMjm99nuqQ/UYUoqGbbLTV8zI72ad0Y2mFI9jJKvPsYCfNQ4IdgL4S7LQIlwY75eXl9OjRgzfffLPW11966SXmzp3Lm2++yebNm4mPj2fEiBGUlpY6j5k6dSrLli1jyZIlrF+/nrKyMsaOHYtFI+upuLMqYEexbbpqXzfP7AD0irSNKUorLHJtQRop097FEFrlOYHBuUSr9pusB2V2DpTZyhqmoQxblLMePDfYMaGws8R2j0iNCHdtYeqhr3OFdwl2mpPelRcfPXo0o0ePrvU1VVV59dVXeeqpp5gwYQIA7733HnFxcXz00Ufcc889FBcXs2DBAhYvXszw4cMB+OCDD2jTpg1r1qxh1KhRLfZZvFEmOqxAm8AAEgL8XV2cc3J8y9tbWs6lPi79r98ojptsqFE7wU6UvRvroAdldhxBZ7iG6iFaA91Yh330WFSVBH9/Et1o88+6pNozzpnlFVR4cLvk7tx2zE5mZia5ubmMHDnS+ZzBYGDQoEFs2LABgLS0NKqrq2sck5iYSEpKivMY0Xz22//79PGAVDFAtMHg3JH9eHCIi0tzfopM1RTYZ8qEaSqz41kDY0uqq51rHWkqs6OBbqyDej8Aeke67+zQU4X7+dIhOAiA3AD3W4FeK9w22MnNzQUgLi6uxvNxcXHO13Jzc/Hz8yMiIqLOY2pjNBopKSmp8RANd0CxzXJw98HJp3IMBjwe7L7TUc/GkdWJNRjwtY9z0QJHRiG7ohKzB3yu/c568MPPA8pbX45g53BlFdUe+rkO+fgC0NsDxhE6OLLOuQFBri2IhrltsONw+vYDqqqec0uCcx0za9YswsLCnI82bdo0SVm9iQoctP/36eUB/eIOjkYlz0MzO46uk/bB2voGGIqKQafDoqoc9oDtCjLLHPWgrZtTqGrF31EPHrghqAoc0tuCnVQPyTgD9LKvUSaZnebjtsFOfHw8wBkZmry8PGe2Jz4+HpPJRGFhYZ3H1OaJJ56guLjY+cjOzm7i0mufJSSUUkXBR1HoGuY5gUNve2B2PDgUT1zCy5HZuUBjN1kdkGTfRPagB3RlOeoh2Q03vm0MBc+qh9NZQsMo0fngoyj0CPeMbiw4mXHO9Q/yyHbJE7htsJOcnEx8fDyrV692PmcymVi3bh39+/cHoHfv3vj6+tY4Jicnh+3btzuPqY3BYCA0NLTGQzSMMSERgM4hwW69mODpuoWH4qsoVPn6YQ73nDS3g/Mmq7HMDkA7+03W0UXkzg6UazOzAyfr4YAHjtsxJrYGoGtoCIF6z2mXLgoLxaDTUaXXY45w3+0tPJlLg52ysjLS09NJT08HbIOS09PTOXToEIqiMHXqVGbOnMmyZcvYvn07kydPJjAwkJtuugmAsLAw7rzzTqZPn87333/P1q1bueWWW+jWrZtzdpZoHqZ4W7Djzkux18bfx4eLwmxldjSMniRTwzfZjiG2z7TXA1aSzbQHZNqsh2AA9pa5fz2crqqVbUiCJ3VhAfjpdHSzt6XGVjKsojm4dJ7bli1bGDJkiPPnadOmAXDbbbexaNEiHn30USorK7nvvvsoLCzkkksuYdWqVYSEnOw2mTdvHnq9nokTJ1JZWcmwYcNYtGgRPh6UbfBEjsxOdzfeD6suvSPDSS8qxtjK84Kdk90nQfzq4rI0tc72m6wnLJvvyHokBwfyu4vL0tQ62YNOT6iH0xlbe2awA7Yu9i0FRRgTW7m6KJrk0mBn8ODBqGfZ/ExRFGbMmMGMGTPqPMbf35833niDN954oxlKKOpyMrPjmcHOggMHMSZ61jeoU6eda7Ebq1OoLdhx973LikzV5Jts086Tg7SX2fGUejidBcXZLvXywGCnZ2QY7Mfj2iVP4bZjdoT7qvD1wxISiqKqXORBg5MdHDMfTAkJmF1clobYZV8VtlWAP8F67S0+1sme2cmtMlLixrufn1oPIb5SD+4i398f1dcXf9XqkQP4HZMnjPGe1S55Cgl2RIPl26dtx6MS5IE33QuCgzCYq1H1vhzxoD+BP+032QtDPS/ArI9QX1/i/Q2AbZVrd+VN9eBJXVnH/W3ZzlbmanTnWJ7EHbULCsTfbAa9nhz7WkGi6XhOSy/cRr59Qb4kPHPRMUVRiCmz3bCyFM/5E3B0K3TR6E0WTmYVdpeUnuNI19llr4cLPTCrWV+OetjjQV1ZjmAn0eKZeRFFUYivtAX52XoJdpqa57T0wm2cCLI18kmqZwY7AFHltpvpEcVzBrKfzCgEu7gkzadzqGOQsmR2XMkT6uF0xwMcwY7ndL2dLq7KNvD9qGR2mpwEO6LBHN1YbT00swMQWWFrxA97SGZHVVXnTVbLmR3HtOfdpe6Z2VFV1Tlmp4uGg053r4fTqarKcX/bvneemtkBiLHvd5cjmZ0m5xktvXAbx6uMVBj8QbXSxpODnXJbev4oOqxnmRHoLo4bTRSYqlE4OVtGixzTz3e5afdJnr0edJwMCLSoc4hnzcg6WFGJyUcPZjOxVg8Odoy2YOeYfed20XQk2BEN8kdRMQC++fn4u7gsjRFWVYlirsaoKB6x07Yjm5AcHOhRK1Y3VIp9wcfsikoK7dO73cnJegjSdD04toA5VFFJkcn9u4Uy7O2S3/Fjrl1PpZHCTEYUk4lqRedcU0s0DQl2RINsK7LtEO+Xe9TFJWkcHSq+eXkA7Cx2/1S9N4wTAQjz83VuV5Bh/7/mTrxh3BRAhJ8fbQNt3UIZxe5XD6fLcLZLOS4uSePoAL+8YwDs8IB2yZNIsCMaxJHZMeQccXFJGs8vz7bJ7HYPaMy32xtzrQc7AN3ty+Zvc8NgZ5tX1kOxi0tybo56MXj4lzA42S7t8IB2yZNIsCMaZJtGvkEB+B1zNCru/w1qq/2Gc7EHbs/RUO58k91aWARAT/sCcFrW3b46ujtm2E4n7ZI4Fwl2RL0VGE1kV9gG0GnpG5S7Z3bKzGbneicXe+D2HA3VLcz2Gd0ts1NaXc0++1Tsnl4QdHZz4wzbqXIrq8gzGlFU1fk37ckks9M8JNgR9fa7/VttaGUFOqPRtYVpAobcoyiqSnZFJXlV7vt5thWVYAUS/P2JD/DkYeH147jJ7i8rp7TafWbWpBeVoAKtA/yJsa8wrGWOzM7e0jLKze5TD6dzjCmKMFah86DtLeridywXRVU5Ulnl1u2Sp5FgR9TbloIiAGJK3a974XzojEbi7dPn0+yfzR2d7DrRfjYBINbfQIK/PyrulXXzpi4sgDh/A3H+BlTcu0vFkXmKrXL/WZX1oTMZibWvFeTO7ZKnkWBH1FuaxoIdgGTVE4Id2+/bW4IdODk2aYsb1Uu6F9ZDD3t2x5HVdUdbCgoBiK3UzlTttmbbsgvu3C55Ggl2RL1YVdXZ4MWUus+37cZKVi0AbHHjxtwbb7KXREUA8Ft+gYtLcpIj6PSGQeIOzno4UejiktTOqqpszi8CILHCMxZArI829i0v3Lld8jQS7Ih62V9WTnG1mQAfHZEaalQcmZ2tBUVuuWLp8Sqjc9HDHl50k7002naT3ZRf6BYrXOdUVpFdUYmClwY7+QWoblAPp9tTWkZRdTWBPj7EVFa6ujhNxpHZ2Vronu2SJ5JgR9SLozuhR3gYOg398SVgJVivp9xica6O60422jMbF4YGE+Hn5+LStJzu4WH463QUmE7OgHKlX07kA7bB06G+3rNv0cURYfjpdOQZTWS64Urjv+XbMk69IsPxQTvtUpzFTJDeh3Kzhd1u2C55Igl2RL1stjcqvSPDXVuQJqYDekfavqn/esJ9ukwcNhy3lemy6CgXl6Rl+el09LL/X/vVDbqyvLUe/H18nMsdbMp3v64sR7DjyEBphY6TA+E32bvpRONIsCPqZb39m+2lUZEuLknTc9zAfjqe7+KSnMmRUbgsRnu/93O51NmF4vqb7C/2QNgb6+ESe5fir25QD6fbpNFgB07+/3e0AaJxJNgR53SkopIDZRXo0GZjPyg2GoD1x/Pdqn8832jiT/tigv2itfd7P5dL7Z95/fF8l44XyamsYn9ZOQrQT4PB/rk4Aolf3OzLwOGKSrLKbe1SqsYyzgADT2mX3HG8lKeRYEeckyPj0TMiXJPjFXqEhxKi11NcbXarLQoc3WpdQoOJNmh/EbvT9YuOxF+n40hlFXtKXTcofoO9HrqFhxLmp73//+fSPzoSvaKQWV7hHCzvDn44dhywda1rsV1KjQwn0MeH40aTcwNacf4k2BHn9LM92Lk8RpvjFfQ6nTNj9XOe+3x7XZt3AvC+cSIOAT4+9Ldnd9bYb2yu4LipDtDo//9zCfX1pY89u/ODC+vhdD8es/19DI2LcXFJmoefTufsyvrZzbJqnkiCHXFWqqryk/2mOzBWu429oytr3fETLi6JjaqqrMrNA2B4vDYb8/oYav/srrrJWlSVNbm2a4+Mj3VJGdzBsDjb34e7BDtmq9X5tzpMo8EOwOX2duknN/oS5qkk2BFn9WdJKblVRvx1Oue3Oy0aYm9UNhwvoMQN9tfZUVzKkcoqAn18NJtRqw/HjWzjiUKX7M+0paCQfJOJMF+9JgfB1pcje/JzXj4mq9XFpYG0wiJKqs1E+Plqev2pQfYvmOtP5FNlsbi4NJ5Ngh1xVsuPHgNsmY8AHx8Xl6b5dAgJplNIMNWqyupc1397XWnP6gyMjcJfw7/3c+kQHETbwABMVitrj7V81m1ljq0ehsXF4Kvz3uYyJSyUGIMf5RYLG91giYbVOba/0UGx0fgoiotL03y6hYWS4O9PudkiXVmN5L1/vaJelufYgp0rE+NcXJLmd2WC7TMuP5rr4pLAKvtN1pu7TgAURWFMYjwAXxzJafHrO4KdUQna//9/NjpFcf5f/MoF9XAqVVX50l6GKzVeL4qiONtexxdPcX4k2BF1OlxRybaiEnTAqATt33QdjcqaY8ddmjLOrqgkrbAIBRjh5cEOwDWtEwBb4NGSXVk7ikvYXVqGr6JoelxIfTnq4ZsjxzC7sCtrW1EJmeUV+Ot0jPSCdmm0/TOuyDnmVktjeBoJdkSdvrNndfpGRXjF1OeeEWEkBthSxq4ciPl59hEALouJIiHA32XlcBc9I8JICgygwmJp0S7GTw/Z6mFkQizhXjjl/HQDYqKINviRbzK5tEvFkdUZER9LsF7vsnK0lP4xUYT66jluNDlXshcNJ8GOqNNnh44CMLZVvItL0jIURWFC60QAPjp42CVlUFWVT+2/9+vbJLqkDO5GURSutmcVPs8+2iLXtKiq81oT27RqkWu6O71Ox1hHl+Jh13RlWVWVL+3Xvsr+f0Lr/HQ6RtkzvC31/1+LJNgRtdpTUkZaYRF6ReHa1t5z070pqTUAq3OPc6zK2OLXzyguYU9pGQadjnFeEmTWx8S2toBjVW4eRyuaf3frn/JOkFtlJNzX16un/p9ugj0A/+JIDqXVLT87bv3xfA5WVBKs1zPCi+rlBnu7tPTwUZmVdZ7cOtiZMWMGiqLUeMTHn7wBqKrKjBkzSExMJCAggMGDB7Njxw4Xllg7lhyyZTaGx8cQ46/9LiyHTqHBpEaGY1FV/mfvxmhJ72dmA3BFQqwmV4U9X51DQ+gfHYlFVXk/K7vZr/ff/QcBuLZNIgYvng13un5REXQMCaLcbOGz7Jb/+1iUeQiAiW0TCfKCLiyHATFRtArwp7jazAr7oHnRMG4d7ABcdNFF5OTkOB8ZGRnO11566SXmzp3Lm2++yebNm4mPj2fEiBGUlsrS2o1RbbU6xyvc2La1i0vT8hzZnfcyD7XogMAiU7Xz9357+6QWu66nuL19W8AWEDbnWi/7y8qdCzredYHUw6kURWFysq0e3ss81KJ7Nh2rMjpnJN1mL4O38FEUJtmzmx+1QLCvRW4f7Oj1euLj452PmBhb6lJVVV599VWeeuopJkyYQEpKCu+99x4VFRV89NFHLi61Z/vqSC65VUZiDH6M8ILZDqe7tk0iEX6+ZJZX8G0LTkNfnJVNhcXCRWEhXOaFG3+ey5jEeGINBvKMxmbNur29LwsVGBEfQ8eQ4Ga7jqea1LY1/jod24tLnfuGtYSFBw5iVlX6RkZwUVhoi13XXdyY1BoF+CHvBHtKXLdXnKdy+2Bn7969JCYmkpyczA033MCBAwcAyMzMJDc3l5EjRzqPNRgMDBo0iA0bNriquB5PVVX+vdf2O76zfRJ+XriQWpBezx32zMobew60yLfXKouFd/ZnAfB/F7RD0fBCaefLT6fjvo7JAMzdtY/qZsju5FRW8aH9m/NfOyQ3+fm1INzP1zmGZM6ufS1yzWJTNW/b/z7u6dCuRa7pbpKDg7jCvq7Q/H2ZLi6N53HrO9kll1zC+++/z8qVK3nnnXfIzc2lf//+5Ofnk5tr+8YdF1dzUam4uDjna3UxGo2UlJTUeAibDScK+KOohAAfnVd3pdzVPgl/nY6thcX80AIr976XeYijlVUk+PtzrczCqtPt7dsSY/DjYEUlSw42fXbnxT/3UmW1cmlUBAO9eJuOc3mo8wX4Kgo/Hc/nt/zmz+68sz+LkmoznUOCvXrgviPY//TQEfJcMIHCk7l1sDN69GiuvfZaunXrxvDhw/n2228BeO+995zHnP4NWFXVc34rnjVrFmFhYc5HmzZtmr7wHkhVVWbt3APADW1bE2Xwc3GJXCfG3+AM9mZs/7NZx+6UVpuZt3s/AH+7sINXbw9xLkF6PQ92ugCAmTt3U2Rqun3MdpWUOsdDPJPSRbJrZ9EmMMCZ3fnn9t3Nmv08XmXk3/ZMxvQuHdB5cb1cGhVBr4gwjFYrr+3Z7+rieBS3DnZOFxQURLdu3di7d69zVtbpWZy8vLwzsj2ne+KJJyguLnY+srNlwBfYplv/ml+Iv07Hw50vcHVxXG56lw5E+PnyZ0kZHzTjoMA5u/ZxwmgiOSiQG5O8b0B4Q93Rvi0dQ4I4bjTxwo7dTXJOs9XKg2nbsAJjEuPo68WbftbX9C4dCPDR8Wt+IZ814/ov/9yxm5JqM93DQ71mbZ26KIrCk107AbDwwCEOlVe4uESew6OCHaPRyJ9//klCQgLJycnEx8ezevVq5+smk4l169bRv3//s57HYDAQGhpa4+Htqq1W/rFjFwD/16EdiYEBLi6R64X7+fJIlw4APLd9V7Os7/JHYbFzjNTz3S/06s0m68vg48PLF6cAtqnITbHa9b/3ZfJ7YTGhvnpm97io0efzBq0DA5jW2fb38WzGLgpNpia/xq8nCpwLfL7Y4yJNb/pZX4PjYhgUG4XJauX5Jgr2vYFbt6yPPPII69atIzMzk99++43rrruOkpISbrvtNhRFYerUqcycOZNly5axfft2Jk+eTGBgIDfddJOri+5x3txzgF0lZUT6+Tq7CYRtkHbviHBKqs08+HsG1iZM15ebzTyQ9gdWbPsOeftmkw0xICaK25PbogJ/3ZzO4UYEoj/lneCFHbbu2392u1C26GiA+zom0yE4iDyjkYfSMpq0O6vIVM1fN6cDcHNSa/pIts3pmYu6oABLD+fwfQtuoeLJ3DrYOXz4MDfeeCOdO3dmwoQJ+Pn58euvv5KUZBtL8eijjzJ16lTuu+8+UlNTOXLkCKtWrSIkJMTFJfcse0rKeNk+q+L57l1lH6BT6HU63kztToCPjrV5J5htH9PUWKqq8vDvGfxZUkaswY+Z3bs2yXm9yT+7X0iP8FAKTNVM/GUzx89jwOaO4hLu+G0rFlVlYttWzjWWRP0YfHx4q8/F+CoKy3OONdksIYuq8kDaHxyurCI5KJDn5e+jhh4RYfyffVba9K0ZlFY33dg1rXLrYGfJkiUcPXoUk8nEkSNH+Pzzz+na9eR/ekVRmDFjBjk5OVRVVbFu3TpSUlJcWGLPU2Y2c/tvv2OyWhkeFyP7MdWiY0gwr9i7Tebu3s/izMaN31FVled37Gbp4Rz0isKCS3p51SrVTcXfx4dFl/YmMcCfPaVlXLP+N7IaMIZhU34h43/6laLqalIjw5nbM0UGJZ+HHhFhPNftQsDWnbXscOPG76iqymPpO1iRk4efTsfbfS8mxNd7Vkuurye7diIpMIDDlVU82MRZNS1y62BHNC+rqjL19wx2l5YRazDwWu/u0tjXYVJSa6bau/ce3prBf+1rfjSUVVV5bvtuXttjG6czu8dF9JMFBM9bm8AAll1+CXH+BnaVlDH8h1/436EjZ234jRYLc3ftY/xPv1JcbaZPZDif9O8js+Aa4e4LkrizfRIqcO/mP857lV+z1crDW7ezKPMQCvCfPj3oGRHelEXVjCC9nrf79sRXUfj6aC5v2NsUUTsJdryUqqr8fduffHE4Bx9FYcElPYmT7MJZPXVRJ+65oB0Aj/+xkylb/qDMXP/NEI9VGbl54xbePGVA8uT23rXsfXO4IDiI1YP70zsinKLqau7d8gdDf/iFdw8cZE9JGZUWC+VmM9uKipm7ax99V61j5s49mFWVq1ol8L8BfQmTrttGURSFmT26MrFtK8yqyoO/Z/DkHzupMNd/08rDFZVc98tmPsjKRgfM6ZnC+FbePfvqXHpHhvOCvYvvHzt2s8Q+mFucSXKDXsiqqjy1bSfv2Dc7fLN3d8ku1IOiKDzf/UKiDX7M2rmHjw8d4Ye8E/ytS0cmtm1FoL72zECxqZpFmYd4bc9+SqrN+Ot0zOvVjevte92IxksMDOCrgZcwf18m83btJ6O4hEfT694UOMHfn79f1ImJbVtJNrOJ+CgKb/buTqK/P6/u2c/b+7NYlZvHI106cE3rhDo3VC0wmnhnfxb/3pdJudlCoI8P/+lzMVcmyoD9+ri9fVsyyyuYvy+TB9O2UW1VuTVZ1o47nQQ7XqbIVM2DadtYnmPbUO+lHhfJTbcBFEXh4S4d6BMVwdTfM8gqr+CR9O08t30Xg2KjuDgijDh/f6yqypHKKn4vKOLn4/kY7VsbXBwexrxe3egWLssdNDWDjw9TO3fglnZt+PTQEb49eoyMohIqLLbsQoSfL70jwhnXKp5r2yRKt1Uz0CkKf0/pTL/oSB76fRtZ5RU8kLaNp7btZGhcDN3CQ4kxGLCoKkcqKkkrKOKn4/mY7d2OfSLDeTO1BxcEB7n4k3gORVH4R7culJnNLM7K5uGtGRwoL+fJrp1kKYtTSLDjRdYfz+eBLbYZDr6Kwr9SezBBBiSflwExUfwy/HLePXCIBQcOklVewTdHj/GNfVfm010YGsz9HdtzfdtWslZIM4s2GLivY3vu69gei6rau1JUQnylq6qlDIuP4beRg1hw4CDv7DtITlUVyw7nsOxwTq3HdwsL5eEuFzA2Md6rV0g+X4qiMLdnCrEGA3N27+ONPQfYcLyAN1O7y2a2dhLseIEDZeU8v2M3Xx2xrTadHBTI230vloF/jWTw8eHejsnc06EdvxcWsf54PntLyzleZUSnKMT6G+gcGszQ2Bi6hAZLd4kL+CiKzORxEcfWHg90bM+v+YX8dqKAP0tKKTJVo9fpiDb40S08lIExUXQOleVCGktRFJ64qBMXhYfw8O8ZpBUWcfman7nrgiQe7tzBq7f/AQl2NKvaauXn4/ksOnCI73KOoWIbjf6X5LY8m9JZvuU2IZ2ikBoZQWqkLHomxOl0ikL/6Ej6y7jAFjG+VQI9I8J5NH07q3OP8599WSw6cIhJSa24OakNPSPCvPKLlwQ7GpJTWcUvJ/JZf7yA744eI/+U5dtHxMfw94s6c1GYjBURQggtaxMYwMf9+/DDseO8sGM3fxSV8F5mNu9lZtMuKJDRCXH0j46kX3Sk1ywiK8GOB1FVleJqM7lVVeRWVnGksoo9pWXsLiljV0kphyurahwfbfBjfKt47myfJGliIYTwMkPjYhgSG83G/EIWHjjIypw8suwzt+bvy0TBtnRD59BguoSE0CEkiMQAfxLsjwANDeKXYKeFZcbEUXj5EL5QfcjYvguzqmJWVayqitlq+7fRaqWs2kyZ2fGwUGY2U2A0UWWf1VMbHdAtPJT+0VEMi4tmQEwUehmNL4QQXks5pRux3GxmTe5x1uWdYMOJAvaVlTsf33Lm5IoQvZ4wXz2hvr6E+uoJ8dUTpNfjp9Phqyj46XS2f+t0+OkUfBSFDVG2e9wBX/dat02CnRZ2ICaBoi7d+QbgPFe8DPf1JT7AQIK/Px1DgukUEkzn0GAuCgshVMbiCCGEqEWQXs9VrRO4qrVtsca8KiM7i0vYZe8hOFBWTk5VFbmVRiosFkrNZkrNZjit1+CsouNhUDwHyoub6VOcHwl2WlirwhMUZx2gT+9UOna4AL2i2B86fHS2f/vqdATrfQjW620PXz3Beh8i/PyI8zdoKrUohBDCNWL9DcT6xzA4LqbG86qqUmo2k1dlpKTaFvAUV1dTUm2m3Gym2qpSbbVislqptqqYVCsmixWLqvL71t85sP8ArToku+hT1U6CnRbWJecweevWcVPqxVwtO/kKIYRwM4qi2LuuGt5TMHvF13z+3VdceM89zVCy8ycDOoQQQgihaRLsCCGEEELTJNgRQgghhKZJsCOEEEIITZNgRwghhBCaJsGOEEIIITRNgh0hhBBCaJoEO0IIIYTQNAl2hBBCCKFpEuwIIYQQQtMk2BFCCCGEpkmwI4QQQghNk2BHCCGEEJomwY4QQgghNE2CHSGEEEJomgQ7QgghhNA0CXaEEEIIoWmaCXb+/e9/k5ycjL+/P7179+bnn392dZGEEEII4QY0Eex88sknTJ06laeeeoqtW7dy+eWXM3r0aA4dOuTqogkhhBDCxTQR7MydO5c777yTu+66iwsvvJBXX32VNm3aMH/+fFcXTQghhBAupnd1ARrLZDKRlpbG448/XuP5kSNHsmHDBheVyjvs2rWLH77/3tXFOC95x465ughNZs/u3R5bD8dyclxdhCazb+9ej62HHA3Vw/79+z22Ho4ePerqImiWxwc7J06cwGKxEBcXV+P5uLg4cnNza32P0WjEaDQ6fy4uLgagpKSk+Qp6yrUtFgsVFRUtcr3mYLFYsFgsfPa///HZ//7n6uI0itFo9Nh6MJvNWCwWli1dyrKlS11dnEYxeXA9VNvr4asvv+SrL790dXEaxVhd7bn1UF2NxWJh+TffsPybb1xdnEYxmUweWw9VVVVYLBYqKytb5DM4rqGq6tkPVD3ckSNHVEDdsGFDjeeff/55tXPnzrW+59lnn1UBechDHvKQhzzkoYFHdnb2WWMFj8/sREdH4+Pjc0YWJy8v74xsj8MTTzzBtGnTnD9brVYKCgqIiopCUZRmLa8WlJSU0KZNG7KzswkNDXV1cbyW1IN7kHpwD1IP7qGl60FVVUpLS0lMTDzrcR4f7Pj5+dG7d29Wr17NNddc43x+9erVXHXVVbW+x2AwYDAYajwXHh7enMXUpNDQUGlU3IDUg3uQenAPUg/uoSXrISws7JzHeHywAzBt2jRuvfVWUlNT6devH2+//TaHDh3ir3/9q6uLJoQQQggX00SwM2nSJPLz8/nHP/5BTk4OKSkpLF++nKSkJFcXTQghhBAupolgB+C+++7jvvvuc3UxvILBYODZZ589oytQtCypB/cg9eAepB7cg7vWg6Kq55qvJYQQQgjhuTSxgrIQQgghRF0k2BFCCCGEpkmwI4QQQghNk2BHCCGEEJomwY5osH//+98kJyfj7+9P7969+fnnn11dJE2bNWsWffr0ISQkhNjYWK6++mp2795d4xhVVZkxYwaJiYkEBAQwePBgduzY4aISa9+sWbNQFIWpU6c6n5M6aDlHjhzhlltuISoqisDAQC6++GLS0tKcr0tdND+z2czf//53kpOTCQgIoH379vzjH//AarU6j3Gremj87lTCmyxZskT19fVV33nnHXXnzp3qQw89pAYFBakHDx50ddE0a9SoUerChQvV7du3q+np6eqYMWPUtm3bqmVlZc5jZs+erYaEhKiff/65mpGRoU6aNElNSEhQS0pKXFhybdq0aZParl07tXv37upDDz3kfF7qoGUUFBSoSUlJ6uTJk9XffvtNzczMVNesWaPu27fPeYzURfN7/vnn1aioKPWbb75RMzMz1f/9739qcHCw+uqrrzqPcad6kGBHNEjfvn3Vv/71rzWe69Kli/r444+7qETeJy8vTwXUdevWqaqqqlarVY2Pj1dnz57tPKaqqkoNCwtT//Of/7iqmJpUWlqqduzYUV29erU6aNAgZ7AjddByHnvsMXXAgAF1vi510TLGjBmj3nHHHTWemzBhgnrLLbeoqup+9SDdWKLeTCYTaWlpjBw5ssbzI0eOZMOGDS4qlfcpLi4GIDIyEoDMzExyc3Nr1IvBYGDQoEFSL03s/vvvZ8yYMQwfPrzG81IHLeerr74iNTWV66+/ntjYWHr27Mk777zjfF3qomUMGDCA77//nj179gDwxx9/sH79eq688krA/epBMysoi+Z34sQJLBbLGbvJx8XFnbHrvGgeqqoybdo0BgwYQEpKCoDzd19bvRw8eLDFy6hVS5YsIS0tjS1btpzxmtRByzlw4ADz589n2rRpPPnkk2zatIkHH3wQg8HAX/7yF6mLFvLYY49RXFxMly5d8PHxwWKx8MILL3DjjTcC7vc3IcGOaDBFUWr8rKrqGc+J5vHAAw+wbds21q9ff8ZrUi/NJzs7m4ceeohVq1bh7+9f53FSB83ParWSmprKzJkzAejZsyc7duxg/vz5/OUvf3EeJ3XRvD755BM++OADPvroIy666CLS09OZOnUqiYmJ3Hbbbc7j3KUepBtL1Ft0dDQ+Pj5nZHHy8vLOiN5F05syZQpfffUVP/74I61bt3Y+Hx8fDyD10ozS0tLIy8ujd+/e6PV69Ho969at4/XXX0ev1zt/z1IHzS8hIYGuXbvWeO7CCy/k0KFDgPw9tJS//e1vPP7449xwww1069aNW2+9lYcffphZs2YB7lcPEuyIevPz86N3796sXr26xvOrV6+mf//+LiqV9qmqygMPPMDSpUv54YcfSE5OrvF6cnIy8fHxNerFZDKxbt06qZcmMmzYMDIyMkhPT3c+UlNTufnmm0lPT6d9+/ZSBy3ksssuO2PphT179pCUlATI30NLqaioQKerGUL4+Pg4p567XT20+JBo4dEcU88XLFig7ty5U506daoaFBSkZmVlubpomnXvvfeqYWFh6tq1a9WcnBzno6KiwnnM7Nmz1bCwMHXp0qVqRkaGeuONN8pU22Z26mwsVZU6aCmbNm1S9Xq9+sILL6h79+5VP/zwQzUwMFD94IMPnMdIXTS/2267TW3VqpVz6vnSpUvV6Oho9dFHH3Ue4071IMGOaLB//etfalJSkurn56f26tXLOQVaNA+g1sfChQudx1itVvXZZ59V4+PjVYPBoA4cOFDNyMhwXaG9wOnBjtRBy/n666/VlJQU1WAwqF26dFHffvvtGq9LXTS/kpIS9aGHHlLbtm2r+vv7q+3bt1efeuop1Wg0Oo9xp3pQVFVVWz6fJIQQQgjRMmTMjhBCCCE0TYIdIYQQQmiaBDtCCCGE0DQJdoQQQgihaRLsCCGEEELTJNgRQgghhKZJsCOEEEIITZNgRwghhBCaJsGOEKJJKYrCF1984epiNAuTyUSHDh345Zdfmv1affr0YenSpc1+HSG8gQQ7Qohzmjx5MoqioCgKvr6+xMXFMWLECN59913nxn8OOTk5jB49ul7n9bTA6O233yYpKYnLLrus2a/19NNP8/jjj5/x+xVCNJwEO0KIerniiivIyckhKyuL7777jiFDhvDQQw8xduxYzGaz87j4+HgMBoMLS9p83njjDe66664WudaYMWMoLi5m5cqVLXI9IbRMgh0hRL0YDAbi4+Np1aoVvXr14sknn+TLL7/ku+++Y9GiRc7jTs3WmEwmHnjgARISEvD396ddu3bMmjULgHbt2gFwzTXXoCiK8+f9+/dz1VVXERcXR3BwMH369GHNmjU1ytKuXTtmzpzJHXfcQUhICG3btuXtt9+ucczhw4e54YYbiIyMJCgoiNTUVH777Tfn619//TW9e/fG39+f9u3b89xzz9UI2k73+++/s2/fPsaMGeN8LisrC0VRWLp0KUOGDCEwMJAePXqwceNG5zGLFi0iPDycb775hs6dOxMYGMh1111HeXk57733Hu3atSMiIoIpU6ZgsVic7/Px8eHKK6/k448/PnflCCHOSoIdIcR5Gzp0KD169KhzbMnrr7/OV199xaeffsru3bv54IMPnEHN5s2bAVi4cCE5OTnOn8vKyrjyyitZs2YNW7duZdSoUYwbN45Dhw7VOPecOXNITU1l69at3Hfffdx7773s2rXLeY5BgwZx9OhRvvrqK/744w8effRRZ5fQypUrueWWW3jwwQfZuXMnb731FosWLeKFF16o87P+9NNPdOrUidDQ0DNee+qpp3jkkUdIT0+nU6dO3HjjjTUCp4qKCl5//XWWLFnCihUrWLt2LRMmTGD58uUsX76cxYsX8/bbb/PZZ5/VOG/fvn35+eefz1YFQoj6cMle60IIj3LbbbepV111Va2vTZo0Sb3wwgudPwPqsmXLVFVV1SlTpqhDhw5VrVZrre899diz6dq1q/rGG284f05KSlJvueUW589Wq1WNjY1V58+fr6qqqr711ltqSEiImp+fX+v5Lr/8cnXmzJk1nlu8eLGakJBQZxkeeughdejQoTWey8zMVAH1v//9r/O5HTt2qID6559/qqqqqgsXLlQBdd++fc5j7rnnHjUwMFAtLS11Pjdq1Cj1nnvuqXH+L7/8UtXpdKrFYqmzXEKIc5PMjhCiUVRVRVGUWl+bPHky6enpdO7cmQcffJBVq1ad83zl5eU8+uijdO3alfDwcIKDg9m1a9cZmZ3u3bs7/60oCvHx8eTl5QGQnp5Oz549iYyMrPUaaWlp/OMf/yA4ONj5uPvuu8nJyaGioqLW91RWVuLv71/ra6eWJSEhAcBZFoDAwEAuuOAC589xcXG0a9eO4ODgGs+d+h6AgIAArFYrRqOx1usKIepH7+oCCCE8259//klycnKtr/Xq1YvMzEy+++471qxZw8SJExk+fPgZ3TWn+tvf/sbKlSt55ZVX6NChAwEBAVx33XWYTKYax/n6+tb4WVEUZzdVQEDAWctstVp57rnnmDBhwhmv1RXQREdHk5GRUetrp5bFEfidOouqtrKerfwOBQUFBAYGnvPzCCHOToIdIcR5++GHH8jIyODhhx+u85jQ0FAmTZrEpEmTuO6667jiiisoKCggMjISX1/fGoNyAX7++WcmT57MNddcA9jG32RlZTWoXN27d+e///2v8zqn69WrF7t376ZDhw71PmfPnj2ZP3/+WTNZTW379u306tWrRa4lhJZJsCOEqBej0Uhubi4Wi4Vjx46xYsUKZs2axdixY/nLX/5S63vmzZtHQkICF198MTqdjv/973/Ex8cTHh4O2GZVff/991x22WUYDAYiIiLo0KEDS5cuZdy4cSiKwtNPP93gtWZuvPFGZs6cydVXX82sWbNISEhg69atJCYm0q9fP5555hnGjh1LmzZtuP7669HpdGzbto2MjAyef/75Ws85ZMgQysvL2bFjBykpKQ0qz/n6+eefGTlyZItcSwgtkzE7Qoh6WbFiBQkJCbRr144rrriCH3/8kddff50vv/wSHx+fWt8THBzMiy++SGpqKn369CErK4vly5ej09manjlz5rB69WratGlDz549AVuAFBERQf/+/Rk3bhyjRo1qcHbDz8+PVatWERsby5VXXkm3bt2YPXu2s5yjRo3im2++YfXq1fTp04dLL72UuXPnkpSUVOc5o6KimDBhAh9++GGDynK+jhw5woYNG7j99ttb5HpCaJmiqqrq6kIIIYQnyMjIYPjw4ezbt4+QkJBmvdbf/vY3iouLz1g/SAjRcJLZEUKIeurWrRsvvfRSg8cQnY/Y2Fj++c9/Nvt1hPAGktkRQgghhKZJZkcIIYQQmibBjhBCCCE0TYIdIYQQQmiaBDtCCCGE0DQJdoQQQgihaRLsCCGEEELTJNgRQgghhKZJsCOEEEIITZNgRwghhBCa9v+TxkriklxCuwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.plot(x, bandedge, color = palette[0])\n", "ax.plot(xwf2, wf2, palette[1])\n", "\n", "ax.set_ylim([0,450])\n", "ax.set_xlabel('Distance (nm)')\n", "ax.set_ylabel('Energy (meV)')\n", "ax.set_title('Multiple Quantum Well')\n", "\n", "# plt.savefig('./Images/wf2.png', dpi = 2000)" ] } ], "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.9.7" } }, "nbformat": 4, "nbformat_minor": 5 }