Simulation Parameters

The interface is designed for a convenient access to the core functionality. One of the most important aspects the user should be able to control are the input Parameters. This can be archived via the Parameters() constructor.

AnnA.ParametersType
Parameters(;       
    N  =   400,                # Subintervals in perovskite layer, 
                               # resulting in N+1 Grid points

    # Physical parameters
    ε₀ = 8.854187817e-12u"F/m",# Permitivity of free space
    q  = 1.6021766209e-19u"C", # Elemntary charge of a proton
    kB = 8.61733035e-5u"eV/K", # Bolzmann konstant

    # Perovskite parameters
    b  = 400e-9u"m",           # Perovskite layer thickness
    ε = 24.1,                  # Perovskite permitivity
    Ec = -3.7u"eV",            # Perovskite conduction band energy
    Ev = -5.3u"eV",            # Perovskite valence band energy
    dₚ = 0u"m^-3",             # Perovskite doping concentration
    Dₙ = 1.7e-4u"m^2/s",       # Perovskite electron diffusion coefficient
    Dₚ = 1.7e-4u"m^2/s",       # Perovskite hole diffusion coefficient
    mₑ = 0.2,                  # Perovskite effective electron mass
    mₕ = 0.2,                  # Perovskite effective hole mass
    
    # Ion Parameters
    N₀ = 1.6e24u"m^-3",        # Typical density of ion vacancys
    Dᵢ₀ = 6.5e-8u"m^2/s",      # Diffusion constant
    Eᵢₐ = 0.58 * u"eV",        # Ativation energy of vacancy diffusion
    freeze_ions = false,
    
    # Environment Parameters
    T  = 300u"K",              # Temperature
    α  = 1.3e7u"1/m",          # Perovskite absorption koefficient
    Fₚₕ = 1.4e21u"m^-2*s^-1",  # 1 Sun absorbed photonflux 
    dir = 1,                   # Light trough  1 -> ETL, -1 -> HTL
    light = pulse(tₑ=1.0,w=2.),     # Light(t) function 
    V = t -> 0,                # Voltage(t) function
    Rₛₕ = 1e6u"V/A*m^2",       # Shunt resistance
    Rₛ = 1e-4u"V/A*m^2",        # Series resistance
    # Recombination Parameters
    τₙ = 3e-7u"s",             # electron pseudo lifetime
    τₚ = 3e-7u"s",             # hole pseudo lifetime
    k₂ = 3.22e-17u"m^3/s",     # second order rate constant

    # Interface Recombination
    k₂ₑ = 0u"m^4/s",           # ETL/perovskite bimolecular recombination rate
    k₂ₕ = 0u"m^4/s",           # perovskite/HTL bimolecular recombination rate
    vₙₑ = 0u"m/s",             # electron recombination velocity for SHR/ETL
    vₚₑ = 0u"m/s",             # hole recombination velocity for SHR/ETL
    vₙₕ = 0u"m/s",             # electron recombination velocity for SHR/HTL
    vₚₕ = 0u"m/s",             # hole recombination velocity for SHR/HTL

    # ELT Parameters
    dₑ = 1e18u"cm^-3",         # ETL effective doping density
    mcₑ = 1.5,                 # ETL effective electron mass
    Ecₑ = -4.0 * u"eV",        # ETL conduction band energy
    bₑ = 100e-9u"m",           # ETL width
    εₑᵣ = 3,                   # ETL permitivity
    Dₑ = 1e-7u"m^2/s",         # ETL electron diffusion coeficcient

    # HTL Parameters
    dₕ = 1e18u"cm^-3",         # HTL effective doping density
    mvₕ = 12,                  # HTL hole mass
    Evₕ = -5 * u"eV",          # HTL valence band energy
    bₕ = 100e-9u"m",           # HTL width
    εₕᵣ = 3,                   # HTL permitivity
    Dₕ = 1e-7u"m^2/s",         # HTL electron diffusion coeficcient
)

Constructs the parameters object from the defaults.

Examples

def_parm = Parameters()         # Use the default parameters
mod_parm = Parameters(          # Use modified default parameters 
    b  = 432u"nm",              # Perovskite Layer thickness
    ε = 42,                     # Perovskite permitivity
)
source

Transient Parameters

The fields light and V , correspond to the illumination and voltage transients during the simulation. They must be both of type Function and take one argument of type Real which corresponds to the time in seconds.

using Unitful # hide
Parameters(V = t -> 0.42)   # Constant voltage of 420 mV
Parameters(V = t -> 0.5*t)  # Voltage ramp with a slope of 0.5V/s

function l(t)
    1/2*(sin(t)+1)
end

Parameters(light = l)       # Sinusiodal light excitation with 1 Sun amplitude
Parameters(400, 8.854187817e-12 F m^-1, 1.6021766209e-19 C, 8.61733035e-5 eV K^-1, 4.0e-7 m, 24.1, -3.7 eV, -5.3 eV, 0 m^-3, 0.00017 m^2 s^-1, 0.00017 m^2 s^-1, 0.2, 0.2, 1.6e24 m^-3, 6.5e-8 m^2 s^-1, 0.58 eV, false, 300 K, 1.3e7 m^-1, 1.4e21 m^-2 s^-1, 1, Main.l, AnnA.var"#3#5"(), 1.0e6 m^2 V A^-1, 0.0001 m^2 V A^-1, 3.0e-7 s, 3.0e-7 s, 3.22e-17 m^3 s^-1, 0 m^4 s^-1, 0 m^4 s^-1, 0 m s^-1, 0 m s^-1, 0 m s^-1, 0 m s^-1, 1.0e18 cm^-3, 1.5, -4.0 eV, 1.0e-7 m, 3, 1.0e-7 m^2 s^-1, 1.0e18 cm^-3, 12, -5 eV, 1.0e-7 m, 3, 1.0e-7 m^2 s^-1)

The solver generally likes continuous functions, but may also work for a broad range of discontinuous light.

Ionic Motion

The mobile ions are controlled by the concentration N₀, diffusion constant Dᵢ₀ with the activation energy Eᵢₐ.

Disable ionic motion

To disable ion movement, use freeze_ions = true. The setting N₀=0, Dᵢ₀ = 0 or Eᵢₐ=Inf results in zero divisions during non-dimensioning and lead to an error.

Implicit Parameters

Values for other important device parameters are implicitly provided from the input in Parameters().

Effective Density Of States

This conduction / valence band DOS $~ N_{c/v}$ is calculated from the free electron gas approximation, electron/hole effective mass $m_{e/h}$, the Bolzmann constant $k_B$, temperature $T$, Electron rest mass $m_0$ and Planck constant $h$ via:

\[N_{c/v} = 2\left(\frac{2\pi m_{e/h} m_0 k_B T}{h^2} \right)^{3/2}\]

julia> parm = Parameters(mₑ=0.2, mₕ=0.2, T=300u"K");
julia> parm.Nc2.2444853376270854e24 m^-3
julia> parm.Nv2.2444853376270854e24 m^-3

Intrinsic Carrier Density

$n_i$ is defined by the Temperature, $N_{c/v}$ and the Bandgap $E_g$ by the mass action law:

\[n_i^2 = N_{c}N_{v} \cdot e^\frac{- E_g }{k_B T}\]

julia> parm.nᵢ8.160255121613629e10 m^-3

Fermi Level

The Fermi-level $Ef_{e/h}$ in the electron / hole trasportlayer can be expressed by thair doping density $d_{e/h}$, effective DOS and bandenergy $E_{ce} / E_{vh}$,

\[\begin{aligned} Ef_{e} &= E_{ce} - k_BT \log(N_{ce}/d_e) \\ Ef_h &= E_{vh} + k_BT \log(N_{vh}/d_h) \end{aligned}\]

julia> parm.Efₑ-4.099034602972784 eV
julia> parm.Efₕ-4.820328840840458 eV

Built In Potential

The difference in fermi levels between ETM and HTM define the built in potential $V_{Bi}$

julia> parm.Efₑ - parm.Efₕ0.7212942378676734 eV
julia> parm.Vbi0.7212942378676734 eV