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.Parameters
— TypeParameters(;
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
)
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ᵢₐ
.
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.Nc
2.2444853376270854e24 m^-3
julia> parm.Nv
2.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.Vbi
0.7212942378676734 eV