  Computational models can provide significant insight into the operation
mechanisms and deficiencies of photovoltaic solar cells. Solcore is a modular
set of computational tools, written in Python 3, for the design and simulation
of photovoltaic solar cells. Calculations can be performed on ideal,
thermodynamic limiting behaviour, through to fitting experimentally accessible
parameters such as dark and light IV curves and luminescence. Uniquely, it
combines a complete semiconductor solver capable of modelling the optical and
electrical properties of a wide range of solar cells, from quantum well devices
to multi-junction solar cells. The model is a multi-scale simulation accounting
for nanoscale phenomena such as the quantum confinement effects of
semiconductor nanostructures, to micron level propagation of light through to
the overall performance of solar arrays, including the modelling of the
spectral irradiance based on atmospheric conditions. In this article we
summarize the capabilities in addition to providing the physical insight and
mathematical formulation behind the software with the purpose of serving as
both a research and teaching tool.
