gpvdm core code documentation
gpvdm - Simulate Organic Solar Cells, Inorganic solar cells, OLEDs and OFETs for free

Gpvdm is a free organic solar cells model. It is specifically designed to simulate bulk-heterojuncton organic solar cells, such as those based on the P3HT:PCBM material system. The model contains both an electrical and an optical solver, enabling both current/voltage characteristics to be simulated as well as the optical modal profile within the device. The model and it's easy to use graphical interface is available for both Linux and Windows. The model can simulate:

-Dark JV curves
-Light JV curves
-Dark CELIV transients
-Light CELIV transients
-Voltage transients of an arbitrary shape
-Full optical model taking into account reflection at interfaces and absorption.
-Calculation of reflection profile
-Ability to simulate OLEDs

The physical model solves both electron and hole drift-diffusion, and carrier continuity equations in position space to describe the movement of charge within the device. The model also solves Poisson's equation to calculate the internal electrostatic potential. Recombination and carrier trapping are described within the model using a Shockley-Read-Hall (SRH) formalism, the distribution of trap sates can be arbitrarily defined. A fuller description of the model can be found in the at, in the associated publications and in the manual. Example simulations

The model makes it easy to study the influence of material parameters such as mobility, energetic disorder, doping and recombination cross-sections on device performance. All internal device parameters such as current density, charge density, distribution of trapped carriers in position and energy space are accessible either through the graphical interface or directly through output files.

Installing/building gpvdm

1. Windows

I would recommend downloading the binary from the gpvdm web page. Double click on the installer and follow the instructions.

2. Linux

For Linux you can either download an rpm/deb from the web page or compile from source. I don't update the packages as often as I would like to so they often lag behind the windows version. For this reason I recommend you install from source on Linux..

2.1 Linux from source the easy way

Make sure you have python3-dialog installed on your system. The issue the command ./build in the root directory of gpvdm. Firstly select (packages) and let the installer install the packages needed to compile gpvdm. Then select build and let the installer build gpvdm. You can then exit the installer and run ./gpvdm. Or if you wish to install gpvdm on your system, chooses install from the menu.

2.2 Linux from source the hard way

On Fedora install the following pacakges: dnf install zlib-devel libzip-devel libmatheval-devel suitesparse-devel openssl-devel gsl-devel libcurl-devel blas-devel librsvg2-tools texlive ghostscript ImageMagick mencoder valgrind -tools fedora-packager mingw32-gcc python-crypto python-awake python3-qt5-devel python3-crypto python3-matplotlib-qt5 python3-openpyxl python3-pyopengl numpy notify-python python-inotify.noarch python-matplotlib python-inotify python-matplotlib indent unifdef indent libcurl-devel poedit ElectricFence kcachegrind help2man

Then configure the build the build system aclocal automake –add-missing automake autoconf

Then configure the build system: ./configure CPPFLAGS="-I/usr/include/suitesparse/"

Then make the binary make

Help using gpvdm

I'm very happy to provide help in using gpvdm, or if you wold prefer I am equally happy to collaborate and model your data for you. See the contact page.

History of gpvdm

I wrote the original version of gpvdm during the very exciting time I spent working at Imperial College for Jenny Nelson - see the publication list. Since that time, I have rewritten the model to make the code base more sane/accessible/useful to others.

More information

More information can be found on the home page