# 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, options)[source]

Calculates the reflection, transmission and absorption 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.

Parameters: solar_cell – options –
`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, options)[source]

Calculates the reflection, transmission and absorption of a solar cell from external data, preparing 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.

Parameters: solar_cell – options –
`solcore.optics.external_optics.``absorbed`(self, z)[source]