Detailed balance approximation

This solver calculates the electrical properties of the junction by balancing the elementary processes taking place in the solar cell, carrier generation and radiative recombination, using the formalism described by Araújo and Martí (1996) ([1]). The method is widely used by the photovoltaic community to calculate the limiting conversion efficiencies of the different solar cell architectures or materials. The simplest DB formulation only needs an absorption edge energy and an absorptivity value above that edge. Out of this, the carrier generation and radiative recombination are calculated for different internal chemical potentials, equal to the external electrical bias, in the ideal case. Solcore includes this basic model, but also allows the user to provide a more complex absorption profile.

For a more detailed description of the implementation of the DB solver in Solcore, refer to the main Solcore paper (open access) and references therein.

Detailed balance functions

solcore.analytic_solar_cells.detailed_balance.iv_detailed_balance(junction, options)[source]

Calculates the IV curve of a junction of kind “DB”. This is a detailed balanced calculation of the IV curve of a PN junction characterized by a certain eqe, temperature and chemical potential (voltage). Normally, the eqe will be calculated based on a a given absorption edge and absorptance level resulting in a “top hat” type of eqe, but it can also be provided externally. By default, the solver uses the Boltzmann aproximation, although the full Planck equation might be used, also.

  • junction – A Junction object of kind “DB”
  • options – Other arguments for the calculation of the IV.

solcore.analytic_solar_cells.detailed_balance.qe_detailed_balance(junction, wl)[source]

Calculates the EQE and the IQE in the detailed balanced limit… which is equal to the absorptance and the absorbed fraction of the light since, by definition of detailed balanced, the carrier collection is perfect.

  • junction – Junction object of kind “DB”
  • wl – wavelength in m



Calculates the absorptance of the junction in the detailed balanced case. If it has not been calculated before, provided as input, it uses a “top hat” absorptance with the absorption edge at Eg and magnitude A.

Note that while the junction.absorptance represents the potential fraction of light that can be absorbed at a given energy, the junction.absorbed represents the actual fraction of input light that is absorbed. For detailed balanced calculations, these two are equivalent to the IQE and EQE respectively because carrier collection is perfect, but that will not be the case, in general.

Parameters:junction – Junction object of kind “DB”
solcore.analytic_solar_cells.detailed_balance.surface_integral(junction, wl)[source]

Calculates the surface integral of the absorptivity

  • junction
  • options


[1]Martí, A., Araújo, G.L.: Limiting efficiencies for photovoltaic energy conversion in multigap systems. Sol. Energy Mater. Sol. Cells 43(2), 203–222 (1996)