# Smooth the data with spline fitting... n_spline = InterpolatedUnivariateSpline(x=Ge_nk_Exp[::5,0], y=Ge_nk_Exp[::5,1], k=3)(E_eV) k_spline = InterpolatedUnivariateSpline(x=Ge_nk_Exp[::5,2], y=Ge_nk_Exp[::5,3], k=3)(E_eV) ## Step 1 :: n and k modelling... # First model the Ge02 layer with the Sellmeier model # Define Oscillator Structure GeO2 = Structure([ Oscillator(oscillator_type="Sellmeier", material_parameters=None, A1=0.80686642, L1=0.68972606E-1, A2=0.71815848, L2=0.15396605, A3=0.85416831, L3=0.11841931E2) ]) GeO2_nk = cppb().nk_calc(oscillator_structure=GeO2, energy_array=E_eV) ## Step 2 :: use this modelled n and k to calculate the ellipsometry data... # Define a structure for the optical stack... OptiStack = Structure([ [4.4, 1240/E_eV, GeO2_nk["n"], GeO2_nk["k"]], # Layer 1 :: GeO2 native oxide layer [350000, 1240/E_eV, n_spline, k_spline] # Layer 2/ Substrate :: Bulk Ge ]) # Calculate Ellipsometry data... Out = calculate_ellipsometry(OptiStack, 1240/E_eV, angle=Exp_Angles) # Convert Ellipsometry data to complex dielectric function... # Define functions for the quick conversion of data... i = 2
import numpy as np from solcore.graphing.Custom_Colours import colours from solcore.absorption_calculator.cppm import Custom_CPPB as cppb from solcore.absorption_calculator.dielectric_constant_models import Oscillator from solcore.structure import Structure # First, read in experimental data for GaAs dielectric function (from Palik)... Palik_Eps1 = np.loadtxt("data/Palik_GaAs_Eps1.csv", delimiter=',', unpack=False) Palik_Eps2 = np.loadtxt("data/Palik_GaAs_Eps2.csv", delimiter=',', unpack=False) # Generate a list of energies over which to calculate the model dielectric function. E = np.linspace(0.2, 5, 1000) # Class object is created, CPPB_Model CPPB_Model = cppb() # The Material_Params method loads in the desired material parameters as a dictionary variable... MatParams = CPPB_Model.Material_Params("GaAs") # Parameters can be customised by assigning to the correct dictionary key... MatParams["B1"] = 5.8 MatParams["B1s"] = 1.0 MatParams["Gamma_Eg_ID"] = 0.3 MatParams["Alpha_Eg_ID"] = 0.0 MatParams["E1"] = 2.8 MatParams["E1_d1"] = 2.9 MatParams["Gamma_E1"] = 0.1 MatParams["E2"] = 4.72 MatParams["C"] = 3.0 MatParams["Alpha_E2"] = 0.04