Other optical methods

Finally, the optical properties of the solar cell can be defined with a simple Beer-Lambert formalism and also provided externally by the user. These section describe the methods that are called internally by the solar cell solver in these two cases.

Beer-Lambert law

solcore.optics.beer_lambert.solve_beer_lambert(solar_cell: solcore.solar_cell.SolarCell, wavelength: numpy.ndarray[Any, numpy.dtype[ScalarType]], **kwargs) → None[source]

Calculates RAT of a solar cell object using the Beer-Lambert law.

Reflection is not really calculated and needs to be provided externally, otherwise it is assumed to be zero.

Args:
  • solar_cell: A solar_cell object
  • wavelength: Array of wavelegth at which the optics are calculated.
Return:
None
solcore.optics.beer_lambert.absorbed(self, z)[source]
solcore.optics.beer_lambert.calculate_absorption_beer_lambert(widths, alphas, fraction)[source]
solcore.optics.beer_lambert.calculate_absorptance_PDD_and_DA(junction, wl, fraction)[source]
solcore.optics.beer_lambert.calculate_absorptance_DB(junction, wl, fraction)[source]

External optics

solcore.optics.external_optics.solve_external_optics(solar_cell: solcore.solar_cell.SolarCell, wavelength: numpy.ndarray[Any, numpy.dtype[ScalarType]], position: numpy.ndarray[Any, numpy.dtype[ScalarType]], **kwargs) → None[source]

Calculates RAT of a solar cell from external data

It also prepares the structure for further calculations. The external data that must be provided in the solar cell definition is:

  • external_reflected: a function that provides the fraction of reflected light at the specified wavelengths (in m).
  • external_absorbed: a function that provides an array with the differential absorption at a depth Z (in m) at the specified wavelengths.

Note that both are functions of a single variable - wavelength in the first case and position in the second - and that the latter provides as output an array at the wavelengths indicated in the options.

Args:
  • solar_cell: A solar_cell object
  • wavelength: Array of wavelegth at which the optics are calculated.
  • position: Array of positions in the z direction to calculate the absorption vs depth.
Return:
None
solcore.optics.external_optics.absorbed(self, z)[source]