A drift-diffusion model for ion migration and charge carrier transport across a planar perovskite solar cell (PSC).
This code can be used to simulate the internal state of a PSC over time. The three core layers of a PSC, namely the electron transport layer, perovskite absorber layer and hole transport layer, are modelled explicitly in one spatial dimension. The model variables are the electric potential, halide ion vacancies (existing only within the perovskite layer), electrons (within the ETL and perovskite layers) and holes (within the perovskite and HTL). A variety of experimental protocols can be simulated, including changes in the applied voltage and/or illumination intensity that occur over timescales on the order of microseconds to hours and impedance spectroscopy. The code also outputs the current density and voltage which can be used to plot the current-voltage characteristics of a PSC, including current-voltage hysteresis due to the movement of halide ion vacancies. Please read the GUIDE to get started.
For details of changes to the code since the first release, see the Changelog on the IonMonger Wiki.
This code is intended for use by researchers in the field of perovskite solar cells. Example use cases include:
The authors of this code published an investigation into how material properties of the transport layers affect perovskite solar cell performance in Energy & Environmental Science, while working at the Universities of Southampton, Bath and Portsmouth.
Requirements: MATLAB (version R2021a).
If you encounter a problem or any unexpected results, please create an Issue on the GitHub website, add details of the problem (including the error message and MATLAB version number) and attach the parameters.m file in use when the problem occurred. For other enquiries, please contact N.E.Courtier(at)soton.ac.uk.
Some features of the code (for example, IS_solver.m and animate_sections.m) will make use of the Parallel Computing Toolbox and the Image Processing Toolbox for increased performance but can still run if the toolboxes are not installed.
This code is based on the finite element scheme first presented in our paper in Applied Mathematical Modelling and is performed on a non-uniform ("tanh") spatial grid.
Files in the main folder:
The Code/ folder contains all subfunctions, including
V) data as well as the recombination currents (
The solution is saved in dimensional form into one output file, which also contains the input data.
The Tests/ folder is for developers and contains a set of tests to check the consistency of future updates.