ChargeTransport.jl – Simulating charge transport in semiconductors
ChargeTransport.jl
simulates charge transport in semiconductors. To this end, it discretizes the semiconductor drift-diffusion equations via the Voronoi finite volume method as implemented in VoronoiFVM.jl.
Special features
- heterostructures
- 1D, 2D and 3D simulations
- stationary and transient simulations
- IV curves and scan protocols
- an arbitrary amount of charge carriers (electrons, heavy holes, light holes, ions, ...)
- thermodynamically consistent, physics preserving numerical methods
- different charge carrier statistics per species (Boltzmann, Blakemore, Fermi-Dirac)
- Auger, radiative, Shockley-Read-Hall recombination including transient traps
- uniform and Beer-Lambert generation
Installation and first steps
The installation can easily be done via the Julia REPL with the following commands
julia> using Pkg
julia> Pkg.add("ChargeTransport")
We recommend to have a look at the example files:
You can load an example as follows
julia> include("Ex103_PSC.jl")
julia> Ex103_PSC.main()
julia> Ex103_PSC.main(plotting = true) # show plots
Since the examples are encapsulated into modules, you can load as many examples as you wish. If you would like to modify one of the examples, consider using Revise.jl and includet
.
Literature
The simulations in the following papers are based on ChargeTransport.jl:
[1] D. Abdel, P. Farrell and J. Fuhrmann. Assessing the quality of the excess chemical potential flux scheme for degenerate semiconductor device simulation. Optical and Quantum Electronics 53 (163) (2021).
[2] D. Abdel, P. Vágner, J. Fuhrmann and P. Farrell. Modelling charge transport in perovskite solar cells: Potential-based and limiting ion depletion. Electrochimica Acta 390 (2021).