Published May 28, 2021 | Version v1.0
Software Open

EYcalc - Energy yield calculator for multi-junction solar modules with realistic irradiance data and textured interfaces


This software aims to simulate the energy yield of single-junction and multi-junction solar cells. In contrast to the power conversion efficiency (PCE), the energy yield (EY) accounts for environmental conditions, such as constantly changing irradiation conditions or the ambient temperature.

This software allows a rapid simulation of complex architectures and was developed with the aim to handle textured perovskite-based multi-junction devices. However, it is possible to simulate any combination of thin-film architecture with incoherent photovoltaic materials (e.g., crystalline silicon).

By making use of pre-simulated textures (e.g., inverted pyramids, regular upright pyramids, random pyramids) by geometrical ray tracing, any incoherent interface within the architecture can also be textured.

The software is available as source code and as a simple to use graphical user interface (GUI), which requires either a MATLAB (>R2017a and >R2020b, respectively) installation or the MATLAB runtime.

Basic Features

The basic features of the EYcalc are:

  • Spectral and angular-resolved realistic irradiance data (from 1020 locations in the USA) is used
  • A simple cloud model is used to adjust the diffuse irradiation
  • Fast optical simulations, by combining the transfer matrix method and geometric ray tracing
  • Optics can handle arbitrary combinations of thin (coherent) and thick (incoherent) layers, which also can be textured
  • Single- and multi-junction solar cells can be simulated
  • No limitation on the number of absorbers
  • Energy yield is computed for different electrical interconnection schemes (e.g., 2T, 3T, 4T)
  • Energy yield can be derived for constant tilt (and constant rotation) angle
  • Energy yield can be derived for various tracking algorithms (e.g., 1-axis, 2-axis)
  • Bifacial solar cells can be simulated
  • Albedo can be considered by choosing one out of 3400 spectra of natural and man-made materials from the ECOSTRESS spectral library

Modular framework

The software is divided into individual modules, which handle the irradiation, optics, electrics and energy yield simulations. Those modules can also be operated independently (e.g., calculate the reflectance, transmittance, absorptance of a solar cell architecture).

  • The Irradiation Module calculates the spectral and angular-resolved irradiance over the course of one year with a temporal resolution of one hour by applying SMARTS to typical meteorological year (TMY3) data of locations in various climatic zones. A simple model is employed to account for cloud coverage such that realistic direct and diffuse irradiance are derived.
  • The Optics Module rapidly calculates the spectral and angular-resolved absorptance of the non-simplified architecture of multi-junction solar cells. It is able to handle multiple planar and textured interfaces with coherent and incoherent light propagation by combining transfer matrix method (TMM) and geometrical ray-tracing.
  • The Electrical Module determines the temperature-dependent current density-voltage (J-V) characteristics accounting for series and shunt resistances for a given short-circuit current density (JSC) of the sub-cells forming the multi-junction in either a 2T-, 3T- or 4T-configuration. Furthermore, the maximum power point is determined to calculate the power output of the multi-junction solar module.
  • The Energy Yield Core Module calculates the EY over the course of one year of the sub-cells depending on their orientation (rotation and/or tilt of the module) and location. The EY is computed by combining the spectral and angular resolved solar irradiation (with or without albedo), the absorptance of the multi-junction solar cell and the electrical properties.


This software project was initiated by Ulrich W. Paetzold. The code development was driven by:

  • Raphael Schmager (energy yield core, irradiance module, optics module, electrics module, GUI)
  • Malte Langenhorst (optics module, irradiance module)
  • Jonathan Lehr (electrics module, albedo)
  • Fabrizio Gota (numerical modelling on 3T interconnection, optics module)

The financial support by the following projects and grants is gratefully acknowledged:

This software uses codes and data from other programmers and resources:

Getting started

To use all features of the EYcalc software, you need to download and add some external files, like the SMARTS code and the TMY3 data. Please see our setup guide for help in setting up the required external files! On our wiki page you can also find a detailed description for each of the modules as well as a quick start guide.


If you want to contribute to this project and make it better, your help is very welcome!


For any questions regarding the software, please contact Ulrich W. Paetzold.


If you use our software or parts of it in the current or a modified version, you are obliged to provide proper attribution. This can be to our paper describing the software:

  • R. Schmager and M. Langenhorst et al., Methodology of energy yield modelling of perovskite-based multi-junction photovoltaics, Opt. Express. (2019). doi:10.1364/oe.27.00a507.

or to this code directly:

  • EYcalc - Energy yield calculator for multi-junction solar modules with realistic irradiance data and textured interfaces. (2021).


This software is licensed under the GPLv3 license. © 2021 EYcalc - Ulrich W. Paetzold, Raphael Schmager, Malte Langenhorst, Jonathan Lehr, Fabrizio Gota

Interested in a sublicense agreement to use EYcalc in a non-free/restrictive environment? Contact Ulrich W. Paetzold!

Further reading

This energy yield software has been used in the following publications:

  • M. De Bastiani et al., Efficient bifacial monolithic perovskite/silicon tandem solar cells via bandgap engineering, Nature Energy. (2021).
  • J. Lehr et al., Numerical study on the angular light trapping of the energy yield of organic solar cells with an optical cavity, Opt. Express. (2020)
  • J. Lehr et al., Energy yield of bifacial textured perovskite/silicon tandem photovoltaic modules, Sol. Energy Mater. Sol. Cells. (2020). doi:10.1016/j.solmat.2019.110367.
  • R. Schmager et al., Methodology of energy yield modelling of perovskite-based multi-junction photovoltaics, Opt. Express. (2019). doi:10.1364/oe.27.00a507.
  • M. Langenhorst et al., Energy yield of all thin-film perovskite/CIGS tandem solar modules, Prog. Photovoltaics Res. Appl. (2019). doi:10.1002/pip.3091.
  • J. Lehr et al., Energy yield modelling of perovskite/silicon two-terminal tandem PV modules with flat and textured interfaces, Sustain. Energy Fuels. (2018). doi:10.1039/c8se00465j.


Grants: - PERCISTAND (funding code: 850937), European Union's Horizon 2020 research and innovation programme - Helmholtz Young Investigator Group of U. Paetzold (funding code: VH-NG-1148), Helmholtz Association - PEROSEED (funding code: ZT-0024), Helmholtz Association - CAPITANO (funding code: 03EE1038B), Federal Ministry for Economic Affairs and Energy - 27Plus6 (funding code: 03EE1056B), Federal Ministry for Economic Affairs and Energy


Files (300.1 MB)

Name Size Download all
891.5 kB Preview Download
897.1 kB Preview Download
298.3 MB Preview Download

Additional details


PERCISTAND – Development of all thin-film PERovskite on CIS TANDem photovoltaics 850937
European Commission