예제 #1
0
# 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
예제 #2
0
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