Shockley-Queisser limit Calculator. The Shockley-Queisser limit is the maximum photovoltaic efficiency obtained for a solar cell with respect to the absorber bandgap
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
COPYRIGHT
README.html
README.md
README.pdf
ShockleyQueisser.py
ShockleyQueisserCore.py
ShockleyQueisserCurve.pdf
ShockleyQueisserCurve.png
ShockleyQueisserCurve.py
ShockleyQueisserCurve.txt
ShockleyQueisserDJ.py
ShockleyQueisserTJ.py
SolarSpectrum_AM15G.txt
iconmain.gif
iconmain.ico
screenshot1.png
screenshot2.png
screenshot3.png
screenshot4.png
screenshot5.png

README.md

Solar Cell Shockley-Queisser Limit Calculator

Code written by:
Sidi Hamady
Dr. habil. Eng., Associate professor
Université de Lorraine, France
sidi.hamady@univ-lorraine.fr

See Copyright Notice in COPYRIGHT

Presentation and Requirements

The Shockley-Queisser limit is the maximum photovoltaic efficiency obtained for a solar cell with respect to the absorber bandgap.
The theory is described by W. Shockley and H. J. Queisser in Journal of Applied Physics 32 (1961).

To install the Shockley-Queisser limit calculator:
just download it:
from github: https://github.com/sidihamady/Shockley-Queisser
or from my website: http://www.hamady.org/photovoltaics/ShockleyQueisser.zip
unzip and use.

The distribution mainly includes:

Two main Python files:

Two text files:

Two figures:

  • ShockleyQueisserCurve.pdf containing the Shockley-Queisser Efficiency vs Bandgap curve in PDF format (to integrate for example in a LaTeX document).
  • ShockleyQueisserCurve.png containing the Shockley-Queisser Efficiency vs Bandgap curve in PNG format.

Three examples:

It is not necessary to know the Python language to use the program.

The basic requirements are found in any Linux distribution (and easily installed for Windows):

  • Python version 2.7.x or later
  • numpy version 1.5 or later
  • scipy version 0.13.1 or later
  • matplotlib version 1.3.x or later
  • tkinter 8.5 or later

PS: for Windows, you can download a complete Python distribution from https://www.anaconda.com/distribution/

HowTo

Start ShockleyQueisser.py interface:

from the command line prompt:
under Linux:

cd /path/to/ShockleyQueisser/  
python -u ShockleyQueisser.py  

under Windows (in the command prompt):

cd C:\path\to\ShockleyQueisser\  
python.exe -u ShockleyQueisser.py  

You have to add python to your PATH.

You can also execute ShockleyQueisser.py by double clicking on it (depending on the operating system settings), or from within your editor, if possible.

In the graphical interface, change the parameters you want (solar concentration, temperature and target bandgap) and press 'Calculate'.

Screenshot under Windows:
Screenshot under Windows

Screenshot under Linux:
Screenshot under Linux

HowTo: Multijunction solar cell

The program calculates the efficiency for a single junction solar cell but takes into account the part of solar spectrum already absorbed (for example in a top cell) through the Target top bandgap parameter.
This is useful to calculate the overall efficiency in a multijunction solar cell.
For example for double junction solar cell, follow the steps below:

  1. set TargetBandgap to 1.65 eV and the TargetBandgapTop to 0, and calculate the corresponding efficiency and current-voltage characteristic.
  2. set TargetBandgap to 0.95 eV and the TargetBandgapTop to 1.65, and calculate the corresponding efficiency and current-voltage characteristic.
    Deduce from the previous data the overall double junction solar cell efficiency.

Two examples are given below (for double and triple junction solar cells).

HowTo: Command-line only mode

The calculator can be used in graphical (GUI) mode or command-line only mode. In command-line mode the results are printed out and saved in text files.

The command-line mode is useful to perform specific calculations such as multijunction solar cell efficiency.

Two multijunction solar cell examples are given in the included ShockleyQueisserTJ.py and ShockleyQueisserDJ.py files.
The execution of ShockleyQueisserTJ.py gives the following output:

ShockleyQueisserTJ.py text output

ShockleyQueisserTJ.py plot output

The execution of ShockleyQueisserDJ.py gives the following output (Efficiency of a double junction solar cell with respect to the top and bottom bandgap):

ShockleyQueisserDJ.py plot output