Solcore: a multiscale, Pythonbased library for modelling solar cells and semiconductor materials
Abstract
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 multijunction solar cells. The model is a multiscale 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.
Keywords
Solar cell modelling Quantum solvers Semiconductor properties Solar irradiance Optical modelling1 Introduction
Apart from a few exceptions, such as PVlib [12], all these solvers are highlevel, selfcontained applications. While users can provide their own inputs and, in some cases, access the source code of the programs and customize some aspects of them, they are not designed with that purpose in mind.
Solcore is a multiscale, modular simulation framework for solar energy research, written mostly in Python. Solcore evolved from SOL, a Fortranbased, quantum well solar cell solver developed by Nelson and Connelly [13], with the explicit purpose of simplifying its integration in other programs, its expansion with custom routines and algorithms, and being didactic and informative. It is a teaching and learning tool as much as a rigorous research tool. Solcore is also extremely flexible. It integrates several algorithms for the multiscale modelling of semiconductors and solar cells, allowing a user without access to other methods, but with some experience with Python, to solve many different problems out of the box. On the other hand, most of its functionality can be interfaced with external tools, optimized to solve a specific problem, which are more advanced and accurate or that use an approach not considered in Solcore. The most recent version has been released under the GNU Lesser General Public License (GNULGPL) and can be found on GitHub [14].
Solcore’s capabilities can be grouped into four categories: materials science (Sect. 2), light sources (Sect. 3), solar cells (Sects. 4–6) and largescale calculators (Sect. 7), each of them tackling a different area and scale relevant for research in solar energy. Figure 1 shows how these parts relate to each other and summarizes some of their content.
2 Materials science
The materials science modules in Solcore deal with the retrieval and calculation of material properties as well as those of quantum nanostructures, in particular quantum wells. They form the building blocks necessary to create the structures and calculate the performance of full solar cell devices. While focused on its application for solar cells, this part of Solcore is widely applicable to any research area related to semiconductor materials, as a way of managing the material properties, customizing them and using them in other calculations.
It should be noted that, in reality, electronic and optical properties are not independent but related to each other via the material band structure. As the case in most programs, Solcore uses a nonconsistent approach, with independent electronic and optical parameters obtained from different sources. The reader should consider full band structure methods, like pseudopotential or tightbinding, for a consistent set of electronic and optical properties.
2.1 Parameters database
The parameters database contains the basic properties of many semiconductor materials, including silicon, germanium and many III–V semiconductor binary and ternary alloys. Among other parameters, it includes the energy bandgap, the electron and hole effective masses, the lattice constants and the elastic constants.
The main sources of data are the article by Vurgaftman on Band parameters for III–V semiconductors [15] and the Handbook Series on Semiconductor Parameters by Levinshtein et al. [16]. The carrier mobility calculator is based on the empirical lowfield mobility model by Sotoodeh et al. [17], and it is available only for some materials where the inputs for the model are available.
Now, any parameter—including the custom ones—are attributes that can be easily accessed and used anywhere in the program. For example, GaAs.band_gap is the GaAs bandgap and AlGaAs.lattice_constant is the AlGaAs lattice constant, both at the composition and temperature chosen when creating the objects.
2.2 Optical properties database
In order to calculate and model the optical response of potential solar cell architectures and material systems, access to a library of accurate optical constant data is essential. Therefore, Solcore incorporates a resource of freely available optical constant data measured by Sopra S. A. and provided by Software Spectra Inc. [18]. The refractive index n and extinction coefficient k are provided for over 200 materials, including many III–V, II–VI and group IV compounds in addition to a range of common metals, glasses and dielectrics.
Figure 3 highlights example output from the Sopra materials library with Fig. 3a showing GaAs and Ge optical constant data and Fig. 3b showing interpolated AlGaAs extinction coefficients for a range of aluminium fractions.
2.3 Quantum solver
The electronic band structure of semiconductor materials is responsible for their light absorption and emission properties as well as for many of their transport properties, ultimately depending on the carriers’ effective masses. These properties are not intrinsic to the material, but depend on external factors, too, most notably the strain and the quantum confinement.
Given the crystalline nature of most semiconductor materials, there will be strain whenever two materials with different crystal lattice constants are grown on top of each other pseudomorphically. Even those with the same lattice constant might be under stress due to other effects such as the presence of impurities or if used at different temperatures having dissimilar thermal expansion coefficients. Quantum confinement, in turn, takes place when the size of the semiconductor material in one or more dimensions is reduced to a few nanometres. In that situation, the energy levels available to the carriers become quantized in the direction of confinement, also changing the density of states. Both conditions take place simultaneously when dealing with strainbalanced quantum wells (QW).
Quantum wells—and more recently quantum wires—have been employed to tune the absorption properties of high efficiency solar cells for the past two decades. The need for appropriate tools to study them in the context of photovoltaics led to the development of the simulation models that were the seed of Solcore [19, 20, 21, 22]. As strained materials with quantum confinement, special care must be taken to obtain a sensible set of parameters for the QW structures, including the band edges with confined energy levels, the effective masses and the absorption coefficient.
Solcore’s approach for evaluating the properties of QWs involves calculating first the effect of strain using a 8band Pikus–Bir Hamiltonian (Sect. 2.3.1), treating each material in the structure as bulk, and then using the shifted bands and effective masses to solve the 1D Schödinger equation, after a proper alignment between layers (Sect. 2.3.2) [23]. Finally, the absorption coefficient is calculated based on the 2D density of states, including the effect of excitons (Sect. 2.5).
2.3.1 Bulk 8band k\(\cdot \)p calculator
2.3.2 1D Schrödinger equation
Finally, Fig. 5e, f shows 1D the local density of states (LDOS) of a multiQW structure with thin barriers, including a Lorentzian broadening of 5 meV. For the electrons, there is strong coupling between the QWs, resulting in a range of energies for the ground state. The heavy hole ground states are too deep, resulting in lower coupling between wells. This figure also shows the artefacts in the LDOS of unbound states due to the use of closed boundary conditions rather than QTBM.
2.4 Criticalpoint parabolicband optical constant model
Figure 6 shows the real and imaginary components of the complex dielectric function of GaAs as calculated by the Custom_CPPB class. The model, using a set of parameters for GaAs similar to those specified in [28], shows excellent agreement with the experimental data taken from Palik [34]. For a recent demonstration of Solcore’s CPPB model, please refer to the discussion on Wilson et al. [35].
2.5 QW absorption calculator
Momentum matrix elements for transitions in QWs
TE  TM  

\(chh\)  \(3/2 M_b^2\)  0 
\(clh\)  \(1/2 M_b^2\)  \(2 M_b^2\) 
3 Light sources
Transforming sunlight into electricity is the final goal of any solar cell, and it is therefore necessary to have a convenient way of creating, manipulating, and modifying the properties of the spectrum of the light. Ideally, solar cells will be designed and evaluated under a standard solar spectrum—e.g. the air mass 1.5 direct solar spectrum, AM1.5D—but practical light sources are not standard. More often than not, we are interested in modelling the performance of a solar cell under the experimental spectrum of a solar simulator or lamp in a laboratory, simulated data calculated from atmospheric conditions (temperature, humidity, aerosol content, etc.) or even under real irradiance data measured at different locations worldwide. This can then be compared with the experimental performance or tailored to work best under certain conditions.

Gaussian emission, typical of lasers and lightemitting diodes.

Blackbody radiation, characteristic of halogen lamps defined by a temperature, but also used very often to simulate the spectrum of the Sun, very close to a black body source at 5800 K.

Standard solar spectra: the extraterrestial spectrum AM0 and the two terrestial ones, AM1.5D and AM1.5G as defined by the ASTM G17303(2008) standard.

Irradiance models, using location, time and atmospheric parameters to calculate a synthetic solar spectrum. Solcore includes two models: SPECTRAL2, fully implemented in Python, and an interface to SMARTS binaries (which need to be installed separately), which greatly simplifies its use in batch mode.

Userdefined irradiances, provided externally from a database or any other source, allowing for maximum flexibility.
Once created, specific parameters of the light sources can be easily modified without the need for creating the source from scratch. That is particularly useful for the irradiance models, where we might be interested in getting the spectrum as a function of a certain parameter (e.g. the hour of the day, or the humidity) without changing the others. For example, smarts.spectrum(HOUR=11) and smarts.spectrum(HOUR=17) will provide the spectrum of the SMART light source defined above calculated at 11 h and at 17 h, respectively; all additional parameters have the default values. This method has been used to model experimental solar irradiances measured by different spectroradiometers based on the local atmospheric conditions [39].
A final, very convenient feature of the LightSource class is the ability to request the spectrum in a range of different units. The default is power density per nanometre, but other common units are power density per eV or photon flux per nanometre, among others. While these unit conversions are straightforward, it is often an initial source of errors due to missing constants or incompatible magnitudes.
The light_source module has been described in the context of the solar spectrum, but it can be applied broadly where there is spectral data involved, such as the fitting of photoluminescence, electroluminescence, or Raman spectra.
4 Optical solvers
The purpose of the optical solvers is to obtain the fraction of incoming light reflected, absorbed, and transmitted in a solar cell as a function of the wavelength of the light and the position inside the structure. Solcore includes three models to tackle this problem: Beer–Lambert law (BL), transfer matrix method (TMM), and rigorous coupledwave analysis (RCWA). At the moment, Solcore does not have explicit support for light trapping effects using general textured surfaces, which are usually present in silicon solar cells. However, this can be implemented to a large extent using the RCWA method, although not very efficiently. Additionally, the reflected, absorbed, and transmitted light can be calculated externally and then provided as input to Solcore to obtain the electrical properties of a solar cell structure, giving it full flexibility.
All the optical solvers apply to the solar cell structure as a whole, providing as output the fraction of light reflected (\(R(\lambda )\)), transmitted (\(T(\lambda )\)), and absorbed per unit length at a depth z from the front surface (\(A(\lambda , z)\)).
4.1 Beer–Lambert law (BL)
4.2 Transfer matrix method (TMM)
Figure 10a depicts calculated reflection and transmission from the solutions to the characteristic TMM equation over a range of incident angles for an optimized triple layer ARC design reported in [41]. The solid lines indicate the optical reflection at the front surface, while the dashed lines correspond to the transmitted light into the substrate, in this case taken to be the optically thick top subcell material of GaInP.
4.3 Rigorous coupledwave analysis (RCWA)
Finally, Solcore includes an interface to the \(S^4\) solver (which must be installed separately), developed at Stanford University, in order to model solar cells with nanophotonic designs [45]. \(S^4\) is an implementation of RCWA, also sometimes referred to as the Fourier Model Method (FMM), which solves the linear Maxwell’s equations in structures containing 2D periodicity. Structures with 2D periodicity can be found in advanced solar cell designs aiming, for example, to reduce the solar cell thickness by scattering the incoming light using a periodic diffraction grating at the front or rear of the absorbing layer [46, 47].
5 Singlejunction solar cells
Solcore includes four solvers to calculate the electrical properties of a singlejunction device. In order of increasing accuracy, these are: detailed balance, 2diode equation, depletion approximation, and Poisson–drift–diffusion.
5.1 Detailed balance (DB)
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í [48]. 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.
5.2 2diode model (2D)
Despite the simplicity of the 2diode model, it is very useful to guide the design of new solar cells and explore the performance of new materials, such as dilute bismuth alloys [51], or to asses the performance of large arrays of solar cells, as will be shown in Sect. 7 [52].
5.3 Poisson–drift–diffusion (PDD)
Figure 12a shows the flow chart of Solcore’s PDD solver, which currently only solves the timeindependent PDD equations (steady state). Any simulation starts by calculating the band structure under equilibrium conditions (no illumination or bias). If the simulation includes illumination, the photogeneration as a function of the position in the structure is calculated externally to the PDD solver using any of the models described in Sect. 4. To aid convergence, the solution at short circuit conditions is calculated by increasing the light intensity from zero to the nominal value in small steps. Similarly, the solution at any bias is obtained by solving the problem first at zero bias and then increasing it in small steps, using the previous solution as the initial condition for the next one. Remeshing is performed several times during the simulation of the currentvoltage characteristics (see Sect. 5.3.3).
To calculate the internal quantum efficiency (IQE), a small differential increase is included in the photogeneration profile as a function of wavelength. The IQE is then calculated as the ratio between the resulting increase in the photocurrent and the increase in the photogeneration at that wavelength. This procedure is comparable to the actual experimental measurement of the quantum efficiency.
5.3.1 Solver assumptions and formulation

All carrier populations are in quasithermal equilibrium.

The mobility of carriers is independent of the electric field.

Temperature is uniform.

There are no magnetic fields.
At the moment, Solcore’s PDD solver cannot include interface charges or bandgap narrowing due to heavy doping and only implements Ohmic contacts. Additionally, it only includes local carrier recombination processes and therefore cannot deal with tunnel transport, which relates remote nodes.
This is the only part of Solcore implemented in Fortran using quadruple precision variables in order to increase the numerical accuracy and improve convergence.
5.3.2 QWs in the PDD solver
Quantum wells have been developed in the context of solar cells mainly to tailor the absorption edge of the subcells in multijunction devices to their optimum values [57]. Typically, achieving the proper performance requires a delicate tradeoff between carrier collection and light absorption [58, 59]. Solcore includes a simplified QW structure in the PDD solver in order to calculate the performance of solar cells containing them. Contrary to other programs like Nextnano, Solcore does not solve the Schrödinger equation and the PDD equations selfconsistently: first, the energy levels of the quantum wells are solved using a flatband condition, considering also the strain in the materials, and then an effective band structure is used to solve the transport equations in a bulklike fashion. This is illustrated in Fig. 12b.
From the perspective of the PDD solver, the actual bandgap and electron affinity of each layer in a quantum well depend on the energy levels, i.e. the minimum energy for electrons is not the band edge of the conduction band, but the ground confined level. The same applies to holes, with the actual band edge being the maximum between the ground states of light holes and heavy holes. The resulting band profiles used in the PDD solver are shown in the right picture of Fig. 12b.
To use QWs in the PDD solver, we create an effective electron affinity and bandgaps for all layers in the QW. For the barriers, the electron affinity and band gap are the same as they are in bulk, modified by the strain, if necessary. For interlayers, if present, it depends on what is higher, the band edges of the interlayer or the confined carrier levels.

Barriers have the bulk density of states and absorption profile.

Interlayers only have the bulk density of states above the barrier and the bulk absorption from the barrier energy and zero below that.

Wells have all the density of states associated with the confined states and the bulk density of states above the barrier, while they have the absorption of the confined levels below the barrier energy and of the bulk above it.
5.3.3 Mesh creation and dynamic meshing
The PDD solver discretizes the device into a finite number of mesh points at which to calculate the band structure, carrier densities, the generation and recombination. The mesh can be static and homogeneous, but the default configuration and the one that results in the least number of mesh points, most accurate result and best convergence uses an inhomogeneous mesh with dynamic remeshing.
There are two types of nodes in the mesh: masternodes and normal nodes. There are two masternodes at the ends of the device and two more at each side of an interface separated by 0.1 nm. These nodes are static and not affected by remeshing. The rest of the nodes are automatically distributed depending on the distance to the closest masternode, as illustrated in Fig. 12c. During remeshing, nodes can be added or removed according to the following rules:

The variation of the potentials or the carrier densities across the element is large.

The element is too close to the masternodes limiting the layer.

The element is too big for the region.

It is not a masternode.

The variation of the potentials or the carrier densities with respect the previous and next nodes is small.

It is not too close to the masternodes limiting the layer.

Removing it does not create an element too big for the region.
Using the inhomogeneous mesh in addition to the dynamic remeshing ensures that those regions where material properties change abruptly are modelled with more detail, aiding the convergence. It also allows the modelling of devices which have layers with very different thickness, such as QWs a few nanometres thick and bulk absorbers of several microns, without increasing the number of nodes significantly.
5.4 Depletion approximation
Solcore’s implementation of the depletion approximation includes two modifications to the basic equations. The first one is allowing for an intrinsic region to be included between the P and N regions to form a PIN junction. For low injection conditions (low illumination or low bias) this situation can be treated as described before, simply considering that the depletion region is now widened by the thickness of the intrinsic region. Correctly, no low doping level is allowed for this region.
The second modification is related to the generation profile, which in the equations provided by Nelson is given by the BL law (Eq. 20) which has an explicit dependence on z and results in analytic expressions for the current densities. In Solcore, we integrate the expressions for the drift–diffusion equations under the depletion approximation numerically to allow for an arbitrary generation profile calculated with any of the methods described in Sect. 4. It should be noted that although the equations are integrated numerically this will not be a selfconsistent solution of the Poisson–drift–diffusion equations, as is achieved by the PDD solver (Sect. 5.3).
6 Multijunction solar cells
A complete photovoltaic solar cell can include one or more junctions, metal contacts, optical layers (including antireflective coatings and nanophotonic structures) and tunnel junctions. The junctions, in turn, might range from simple PN homojunctions to complex heterojunctions, including multiquantum well structures. The solvers described in Sect. 5 only calculate the properties of single junction devices. To combine them into a multijunction device, it is necessary to consider that the individual junctions are electrically connected in series and the potential coupling of light emitted by the wider bandgap junctions into those with smaller bandgap. The Supplementary Information includes a full stepbystep example of the modelling of a dual junction solar cell with QWs, antireflecting coating and a tunnel junction, calculating the external quantum efficiency, the IV characteristics under illumination and the performance of the solar cell as a function of light concentration.
6.1 No radiative coupling
We first consider the case of no radiative coupling between junctions. This is a good approximation for materials which do not radiate efficiently or radiative materials working at low concentration, when the fraction of radiative recombination compared to nonradiative recombination is low. In this case, the IV curve of each junction can be calculated independently of each other and the current flowing through the MJ structure is limited by the junction with the lowest current at any given voltage. Series resistances defined for each junction are now added together and included as a single term. The operating voltage of each of the junctions is finally backcalculated and added together to get the voltage of the MJ device.
 1.
Calculate the \(I_j(V)\) of each junction j in the structure.
 2.
Find the current flowing through the MJ device as \(I_{\mathrm{MJ}}(V)\! =\! I_j(V)\), if \(I_j(V) \!=\! \min ([I_1(V)\ldots I_N(V)])\).
 3.
Calculate the voltage of each junction by interpolating its IV curve at the new current values, \(V_j(I_\mathrm{MJ})\), and the voltage dropped due to the series resistances, \(V_{Rs} = R_\mathrm{s} I_{\mathrm{MJ}}\).
 4.
Calculate the total voltage at a given current as \(V_{\mathrm{MJ}} = V_{Rs} + \sum _j V_j\).
 5.
Interpolate the \(I_{\mathrm{MJ}}(V_{\mathrm{MJ}})\) and the \(I_{\mathrm{MJ}}(V_j)\) to the desired output voltage values.
6.2 With radiative coupling
Radiative coupling takes place when the light produced by a high bandgap junction due to radiative recombination is absorbed by a lower bandgap junction, contributing to its photocurrent and changing the operating point. It has been identified in numerous highly radiative materials such as quantum well solar cells and III–V MJ solar cells [62, 63, 64]. It appears as an artefact during the QE measurements of MJ solar cells [65], but it is also an effect that can be exploited to increase the performance of MJ devices [57] and their tolerance to spectral changes, resulting in superior annual energy yield [66].
6.3 Restrictions in the junction definitions

When there is no radiative coupling and we are interested only in the dark IV characteristics, all junction models can be combined with each other. This allows a MJ device where the top junction is defined using the DB model, the middle junction is defined with the 2D model and the bottom junction uses a more accurate PDD model, for example.

The same applies for light IV and quantum efficiency simulations as long as the optical model chosen is the BL law. In this case, any junction defined using the 2D model needs to include an absorptivity value.

The TMM and RCWA optical models are supported only by the PDD and DA junction models.

In the presence of radiative coupling, the only junction models that can be used are DB and 2D, as long as the latter includes an absorptivity value.
6.4 Tunnel junctions
Solcore includes partial support for tunnel junctions. They represent an optical loss due to parasitic absorption in the layers, but also an electrical loss. At the moment, there are two models for tunnel junctions. The first one is a simple resistive model, where the tunnel junction is simply modelled as a series resistance. This approximation should be valid in most cases, but will break down if the current is close to or higher than the peak current density of the junction.
Solcore can also accept external IV data for the tunnel junctions and the implementation of the more rigorous, but still analytic model, described by Louarn et al. [67] is currently under way in order to relate the tunnel currents with the actual materials and layer structure used in the tunnel junction definition.
7 Large circuit solver
When the twodiode model is used to define the junctions in a MJ solar cell, then larger scale circuits can be constructed. Solcore includes two levels of largescale equivalent circuits: quasi3D solar cell modelling and solar array modelling. Both solvers are based on the interface between Solcore and SPICE, allowing for a fast calculation of complex structures with many elements.
7.1 Quasi3D solar cell model
The quasi3D solar cell model included in Solcore uses a SPICEbased electrical network to model the flow of injected current through the solar cell, as depicted in Fig. 16. The plane of the cell is discretized into many elements, each of them representing a small portion of the cell. Depending on the location of the element—exposed to the sunlight or underneath a metal finger—the IV curve of the cell will be the light IV or the dark IV. Each element is linked to their neighbours with resistors, representing the lateral current flow and dependent on the sheet resistance of the cells. This method can be applied to any number of junctions.
This type of formalism is widely used to simulate the performance of solar cells when the effect of a spatial variable needs to be incorporated in the model. This variable can be the design of the front metal grid, in order to minimize the effect of series resistances [68]; the inhomogeneous illumination profile in concentrator devices; the impact of such inhomogeneity on the transport through the tunnel junctions [69, 70]; or the distribution of defects or inhomogeneities [71, 72]. Recently, this formalism was used to model the photoluminescence and the electroluminescencebased IV curves of MJ devices, accounting for the limited lateral carrier transport [73].
Specifically for the modelling and optimization of the front grid of solar cells in order to minimize shading losses and series resistance, there are two packages already available: PVMOS, developed by Pieters in C and released as open source [74, 75], and Griddler, developed by Wong using Matlab and available at PV Lighthouse [11, 76].
7.1.1 Inplane discretization
As shown in Fig. 16, there are two regions in the plane: the metal and the aperture. These two are provided to Solcore as grey scale images that will work as masks. The resolution of the images, in pixels, will define the inplane discretization. By default, the aspect ratio of the pixels in the image will be 1:1, but this can be set to a different value in order to reduce the number of elements and improve speed. For example, the inplane discretization of Fig. 16a has an aspect ratio \(A_r=L_y/L_x = 4\), with \(L_x\) and \(L_y\) the pixel size in each direction. The values of the pixels in the metal mask are 0 where there is no metal (the aperture area), 255 where there is metal and the external electrical contacts (the boundaries with fixed, externally set voltage values) and any other value in between to represent regions with metal but not fixed voltage. The pixels of the illumination mask—which become the aperture mask after removing the areas shadowed by the metal—can have any value between 0 and 255. These values divided by 255 will indicate the intensity of the sunlight at that pixel relative to the maximum intensity. Figure 17 illustrates two examples of metal masks (a and b) and an illumination mask (c) with 120 \(\times \) 120 pixels. As it can be seen, while rectangular metal fingers are well reproduced, diagonal fingers are less accurate and could require a finer discretization. The illumination mask is mostly homogeneous except around the edges and in the corners, where intensity is much lower. This pattern could be produced, for example, by the secondary optics of a concentration system.
7.1.2 Vertical discretization
7.2 Solar array model
The diode and resistance values for the equivalent circuit are determined from solar cell testing, while the current source is evaluated by integrating the product of the spectral irradiance (estimated using an appropriate radiative transfer code, e.g. SPCTRL2 or SMARTS) and the quantum efficiency which in turn can be calculated dynamically as a function of temperature by Solcore [78].
Since the entire module (and subsequently the system) is assembled from individual solar cell components, it is possible (and indeed, necessary) to distribute the component values to accommodate for manufacturing tolerances. This enables a close match between the modelled output power and that measured experimentally and has been used to determine how both aerosols and precipitable water affect the electricity yield from concentrator PV systems [79, 80]. Where system IV data are available, the emergence of electrical faults, (e.g. shunts or shading) can also be accounted for [81].
8 Closing remarks

Flexibility Provides a variety of tools, rather than a single solution, for the study of traditional and novel semiconductor materials and devices.

Modularity Can be expanded with new capabilities, innovative solvers and tools.

Accessibility Not only is it open source, but it is also designed to be easy to learn and to use, serving as a teaching tool as much as a research tool.

Rigour The physics behind every functionality are well understood and supported by numerous references, as are the approximations made in order to simplify the implementation of the problem or the interpretation of the results.

Integrated All of Solcore’s features are designed to be compatible with one another to allow for truly multiscale modelling in an integrated way.
Footnotes
Notes
Acknowledgements
Solcore is not the creation of a single person but the combined effort of present and past members of the Quantum Photovoltaics Group at Imperial College London. Therefore, the authors would like to thank T. Thomas, N. L. A. Chan, J. Nelson and J. Connolly, who also contributed significantly to its development. The authors will also like to acknowledge the financial support of the Engineering and Physical Science Research council (EPSRC) through the research Grant EP/M025012/1.
Supplementary material
References
 1.Gueymard, C.: “SMARTS2” [Online] (1995). https://www.nrel.gov/rredc/smarts/
 2.Eisenlohr, J., Tucher, N., Höhn, O., Hauser, H., Peters, M., Kiefel, P., Goldschmidt, J.C., Bläsi, B.: Matrix formalism for light propagation and absorption in thick textured optical sheets. Opt. Express 23(11), A502–A518 (2015)CrossRefGoogle Scholar
 3.BakerFinch, S.C., McIntosh, K.R.: A freeware program for precise optical analysis of the front surface of a solar cell. In: 2014 IEEE 40th Photovoltaic Specialist Conference (PVSC), pp. 002 184–002 187. IEEE (2010)Google Scholar
 4.Basore, P.A.: PC1D version 3: improved speed and convergence. In IEEE 20nd Photovoltaic Specialists Conference, pp. 299–302 (1991)Google Scholar
 5.Burgelman, M., Nollet, P., Degrave, S.: Modelling polycrystalline semiconductor solar cells. Thin Solid Films 361–362, 527–532 (2000)CrossRefGoogle Scholar
 6.Fell, A.: A free and fast threedimensional/twodimensional solar cell simulator featuring conductive boundary and quasineutrality approximations. IEEE Trans. Electron Devices 60(2), 733–738 (2013)CrossRefGoogle Scholar
 7.Varache, R., Leendertz, C., GueunierFarret, M., Haschke, J., Muñoz, D., Korte, L.: Investigation of selective junctions using a newly developed tunnel current model for solar cell applications. Sol. Energy Mater. Sol. Cells 141(Supplement C), 14–23 (2015)CrossRefGoogle Scholar
 8.Birner, S., Zibold, T., Andlauer, T., Kubis, T., Sabathil, M., Trellakis, A., Vogl, P.: nextnano: general purpose 3D simulations. IEEE Trans. Electron Devices 54(9), 2137–2142 (2007)CrossRefGoogle Scholar
 9.Silvaco, “Atlas: Device Simulation Framework” (2017)Google Scholar
 10.Synopsis, “Sentaurus Device” (2017)Google Scholar
 11.P. L. team and contributors. PV Lightouse. [Online] (2018). http://www.pvlighthouse.com.au
 12.Andrews, R.W., Stein, J.S., Hansen, C.: Introduction to the open source PV LIB for python Photovoltaic system modelling package. In: 2016 IEEE 43rd Photovoltaic Specialists Conference (PVSC), pp. 0170–0174 (2014)Google Scholar
 13.Connolly, J.P.: Analytical models of bulk and quantum well solar cells and relevance of the radiative limit. In: Fara, L., Yamaguchi, M. (eds.) Advanced Solar Cell Materials, Technology, Modelling, and Simulation, chap. 5, pp. 59–77. IGI Global, Hershey, PA (2013). https://doi.org/10.4018/9781466619272
 14.AlonsoÁlvarez, D., Wilson, T., Pearce, P., Führer, M., Farrell, D., EkinsDaukes, N.J.: Solocre Code Repository. [Online] (2018). http://doi.org/10.5281/zenodo.1185316
 15.Vurgaftman, I., Meyer, J.R., RamMohan, L.R.: Band parameters for III–V compound semiconductors and their alloys. J. Appl. Phys. 89(11), 5815–5875 (2001)CrossRefGoogle Scholar
 16.Levinshtein, M., Rumyantsev, S., Shur, M., Levinshtein, M., Rumyantsev, S., Shur, M.: Handbook Series on Semiconductor Parameters, ser. Volume 2: Ternary and Quaternary IIIV Compounds, vol. 2. World Scientific, Singapore (2012)Google Scholar
 17.Sotoodeh, M., Khalid, A.H., Rezazadeh, A.A.: Empirical lowfield mobility model for III–V compounds applicable in device simulation codes. J. Appl. Phys. 87(6), 289012 (2000)CrossRefGoogle Scholar
 18.Software Spectra Inc., “Optical Data from Sopra S. A.” (2008)Google Scholar
 19.Paxman, M., Nelson, J., Braun, B., Connolly, J., Barnham, K.W.J., Foxon, C.T., Roberts, J.S.: Modeling the spectral response of the quantum well solar cell. J. Appl. Phys. 74(1), 614–621 (1993)CrossRefGoogle Scholar
 20.Nelson, J., Barnes, J., EkinsDaukes, N., Kluftinger, B., Tsui, E., Barnham, K., Foxon, C.T., Cheng, T., Roberts, J.S.: Observation of suppressed radiative recombination in single quantum well p–i–n photodiodes. J. Appl. Phys. 82(12), 6240–6246 (1997)CrossRefGoogle Scholar
 21.Nelson, J., Ballard, I., Barnham, K., Connolly, J.P., Roberts, J.S., Pate, M.: Effect of quantum well location on single quantum well p–i–n photodiode dark currents. J. Appl. Phys. 86(10), 5898–5905 (1999)CrossRefGoogle Scholar
 22.Fuhrer, M.F., Adams, J.G.J., Barnham, K.W.J., Browne, B.C., Chan, N.L.A., Farrell, D.J., Hirst, L., Lee, K.H., EkinsDaukes, N.J., Ogura, A., Yoshida, K., Okada, Y.: Extensible modelling framework for nanostructured III–V solar cells. In: 2011 37th IEEE Photovoltaic Specialists Conference (PVSC), pp. 002 615–002 618 (2011)Google Scholar
 23.Führer, M., Farrell, D., EkinsDaukes, N.: CPV modelling with Solcore: an extensible modelling framework for the rapid computational simulation and evaluation of solar cell designs and concepts. In: 9th International Conference on Concentrator Photovoltaic Systems: CPV9, pp. 34–37. AIP (2014)Google Scholar
 24.Tomić, S.: Electronic structure of InyGa1yAs1xNx/GaAs(N) quantum dots by tenband kp theory. Phys. Rev. B 73(12), 125348–8 (2006)CrossRefGoogle Scholar
 25.Volk, M., Lutgen, S., Marschner, T., Stolz, W., Göbel, E.O., Christianen, P.C.M., Maan, J.C.: Carrier effective masses in symmetrically strained (GaIn)As/Ga(PAs) multiplequantumwell structures. Phys. Rev. B 52(15), 11 096–11 104 (1995)CrossRefGoogle Scholar
 26.Frensley, W.R.: Numerical evaluation of resonant states. Superlattices Microstruct. 11(3), 347–350 (1992)CrossRefGoogle Scholar
 27.Adachi, S.: Model dielectric constants of GaP, GaAs, GaSb, InP, InAs, and InSb. Phys. Rev. B 35(14), 7454–7463 (1987)CrossRefGoogle Scholar
 28.Adachi, S.: Optical dispersion relations for GaP, GaAs, GaSb, InP, InAs, InSb, Al\(_x\)Ga\(_{1x}\)As, and In\(_{1x}\)Ga\(_x\)As\(_y\)P\(_{1y}\). J. Appl. Phys. 66(12), 6030–6040 (1989)CrossRefGoogle Scholar
 29.Adachi, S.: Optical dispersion relations for Si and Ge. J. Appl. Phys. 66(7), 3224–3231 (1989)CrossRefGoogle Scholar
 30.Rakić, A.D., Majewski, M.L.: Modeling the optical dielectric function of GaAs and AlAs: extension of Adachi’s model. J. Appl. Phys. 80(10), 5909–5914 (1996)CrossRefGoogle Scholar
 31.Kim, C.C., Garland, J.W., Abad, H., Raccah, P.M.: Modeling the optical dielectric function of semiconductors: extension of the criticalpoint parabolicband approximation. Phys. Rev. B 45(20), 11 749–11 767 (1992)CrossRefGoogle Scholar
 32.Kim, C.C., Garland, J.W., Raccah, P.M.: Modeling the optical dielectric function of the alloy system AlxGa1xAs. Phys. Rev. B 47(4), 1876–1888 (1993)CrossRefGoogle Scholar
 33.Woollam, J.A.: Guide to using WVASE 32: spectroscopic ellipsometry data acquisition and analysis software. J. A. Woollam Company (2008). https://books.google.co.uk/books?id=xOupYgEACAAJ
 34.Palik, E.D.: Gallium Arsenide (GaAs). In: Handbook of Optical Constants of Solids, pp. 429–443. Elsevier, Amsterdam (1997)Google Scholar
 35.Wilson, T., Mellor, A., Hylton, N.P., EkinsDaukes, N.J.: The effects of shortrange alloy disorder on the potential voltage performance in GaAsBi based solar cells. In: Proceedings of the 33rd European Photovoltaic Solar Energy Conference and Exhibition (2017)Google Scholar
 36.Chuang, S.L.: Physics of Optoelectronic Devices. WileyInterscience, New York (1995)Google Scholar
 37.Barnham, K., Vvedensky, D. (eds.): LowDimensional Semiconductor Structures: Fundamentals and Device Applications. Cambridge University Press, Cambridge (2001)Google Scholar
 38.Klipstein, P.C., Apsley, N.: A theory for the electroreflectance spectra of quantum well structures. J. Phys. C Solid State Phys. 19(32), 6461–6478 (2000)CrossRefGoogle Scholar
 39.Galleano, R., Zaaiman, W., AlonsoÁlvarez, D., Minuto, A., Ferretti, N., Fucci, R., Pravettoni, M., Halwachs, M., Friederichs, M., Plag, F., Friedrich, D., Haverkamp, E.: Results of the fifth international spectroradiometer comparison for improved solar spectral irradiance measurements and related impact on reference solar cell calibration. IEEE J. Photovolt. 6(6), 1587–1597 (2016)CrossRefGoogle Scholar
 40.AlonsoÁlvarez, D., Wilsond, D., Pearce, P., Führer, M., Farrell, D., EkinsDaukes, N.J.: Supplementary Information—Solcore: a multiscale, Pythonbased library for modelling solar cells and semiconductor materials. J. Comput. Electron., vol. Supplementary Information (2018)Google Scholar
 41.Wilson, T., Thomas, T., Führer, M., EkinsDaukes, N.J.: Addressing reflectivity losses in multijunction solar cells to achieve 50 conversion efficiency. Mater. Res. Innov. 19(7), 503–507 (2016)CrossRefGoogle Scholar
 42.AlonsoÁlvarez, D., Ferre Llin, L., Mellor, A., Paul, D.J., EkinsDaukes, N.J.: ITO and AZO films for low emissivity coatings in hybrid photovoltaicthermal applications. Sol. Energy 155, 82–92 (2017)CrossRefGoogle Scholar
 43.Macleod, H.A.: ThinFilm Optical Filters. Institute of Physics Publishing, Bristol (2001)CrossRefGoogle Scholar
 44.Byrnes, S.J.: Multilayer Optical Calculations. https://arxiv.org/abs/1603.02720v2 (2016)
 45.Liu, V., Fan, S.: S4: a free electromagnetic solver for layered periodic structures. Comput. Phys. Commun. 183(10), 2233–2244 (2012)MathSciNetCrossRefzbMATHGoogle Scholar
 46.Hylton, N.P., Li, X.F., Giannini, V., Lee, K.H., EkinsDaukes, N.J., Loo, J., Vercruysse, D., Van Dorpe, P., Sodabanlu, H., Sugiyama, M., Maier, S.A.: Loss mitigation in plasmonic solar cells: aluminium nanoparticles for broadband photocurrent enhancements in GaAs photodiodes. Sci. Rep. 3(1), 2874–6 (2013)CrossRefGoogle Scholar
 47.Mellor, A., Hylton, N.P., Maier, S.A., EkinsDaukes, N.: Interstitial lighttrapping design for multijunction solar cells. Sol. Energy Mater. Solar Cells 159, 212–218 (2017). https://doi.org/10.1016/j.solmat.2016.09.005 CrossRefGoogle Scholar
 48.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)CrossRefGoogle Scholar
 49.Chan, N.L.A., EkinsDaukes, N.J., Adams, J.G.J., Lumb, M.P., Gonzalez, M., Jenkins, P.P., Vurgaftman, I., Meyer, J.R., Walters, R.J.: Optimal bandgap combinations—does material quality matter? IEEE J. Photovolt. 2(2), 202–208 (2012)CrossRefGoogle Scholar
 50.Green, M.A.: Radiative efficiency of stateoftheart photovoltaic cells. Prog. Photovolt. Res. Appl. 20(4), 472–476 (2011)CrossRefGoogle Scholar
 51.Thomas, T., Mellor, A., Hylton, N.P., Führer, M., AlonsoÁlvarez, D., Braun, A., EkinsDaukes, N.J., David, J.P.R., Sweeney, S.J.: Requirements for a GaAsBi 1 eV subcell in a GaAsbased multijunction solar cell. Semicond. Sci. Technol. 30(9), 0940106 (2015)CrossRefGoogle Scholar
 52.EkinsDaukes, N.J., Kemmoku, Y., Araki, K., Betts, T.R., Gottschalg, R., Infield, D.G., Yamaguchi, M.: The design specification for Syracuse; a multijunction concentrator system computer model. In: Proceedings of the 19th European Photovoltaic Solar Energy Conference, pp. 1–4 (2004)Google Scholar
 53.Sze, S.M.: Physics of Semiconductor Devices, 2nd edn. Wiley, New York, NY (1981)Google Scholar
 54.Nelson, J.: The Physics of Solar Cells. Imperial College Press, London; River Edge, NJ: Distributed by World Scientific Pub. Co, (2003)Google Scholar
 55.Basore, P.A.: PC1D Installation Manual and User’s Guide Version 3.1, pp. 1–96 (2009)Google Scholar
 56.Farrell, P.A., Gartland, E.C.: On the Sharfetter–Gummer discretization for drift–diffusion continuity equations. In: Miller, J.J.H. (ed.) Computational Methods for Boundary and Interior Layers in Several Dimensions, pp. 51–79 (1991)Google Scholar
 57.Thomas, T., Wilson, T., Führer, M., AlonsoÁlvarez, D., EkinsDaukes, N.J., Lackner, D., Kailuweit, P., Philipps, S.P., Bett, A.W., Toprasertpong, K., Sugiyama, M., Okada, Y.: Potential for reaching 50% power conversion efficiency using quantum heterostructures. In: 6th World Conference on Photovoltaic Energy Conversion, pp. 1–2 (2014)Google Scholar
 58.AlonsoÁlvarez, D., Führer, M., Thomas, T., EkinsDaukes, N.: Elements of modelling and design of multiquantum well solar cells. In: 2014 IEEE 40th Photovoltaic Specialists Conference (PVSC), pp. 2865–2870 (2014)Google Scholar
 59.AlonsoÁlvarez, D., EkinsDaukes, N.J.: Quantum wells for highefficiency photovoltaics. In: Freundlich, A., Lombez, L., Sugiyama, M. (eds.) Physics, Simulation, and Photonic Engineering of Photovoltaic Devices V, vol. 9743, p. 974311. SPIE OPTO, San Francisco, CA (2016). https://doi.org/10.1117/12.2217590
 60.Cabrera, C.I., Rimada, J.C., Connolly, J.P., Hernandez, L.: Modelling of GaAsP/InGaAs/GaAs strainbalanced multiplequantum well solar cells. J. Appl. Phys. 113(2), 0245127 (2013)CrossRefGoogle Scholar
 61.Aeberhard, U.: Quantumkinetic perspective on photovoltaic device operation in nanostructurebased solar cells. J. Mater. Res. 33, 373–386 (2018)CrossRefGoogle Scholar
 62.Lee, K.H., Barnham, K.W.J., Connolly, J.P., Browne, B.C., Airey, R.J., Roberts, J.S., Führer, M., Tibbits, T.N.D., EkinsDaukes, N.J.: Demonstration of photon coupling in dual multiplequantumwell solar cells. IEEE J. Photovolt. 2(1), 68–74 (2012)CrossRefGoogle Scholar
 63.Steiner, M.A., Geisz, J.F., Moriarty, T.E., France, R.M., McMahon, W.E., Olson, J.M., Kurtz, S.R., Friedman, D.J.: Measuring IV curves and subcell photocurrents in the presence of luminescent coupling. IEEE J. Photovolt. 3(2), 879–887 (2013)CrossRefGoogle Scholar
 64.Steiner, M.A., Geisz, J.F.: Nonlinear luminescent coupling in seriesconnected multijunction solar cells. Appl. Phys. Lett. 100(25), 2511065 (2012)CrossRefGoogle Scholar
 65.Steiner, M.A., Kurtz, S.R., Geisz, J.F., McMahon, W.E., Olson, J.M.: Using phase effects to understand measurements of the quantum efficiency and related luminescent coupling in a multijunction solar cell. IEEE J. Photovolt. 2(4), 424–433 (2012)CrossRefGoogle Scholar
 66.Chan, N.L.A., Thomas, T., Führer, M., EkinsDaukes, N.J.: Practical limits of multijunction solar cell performance enhancement from radiative coupling considering realistic spectral conditions. IEEE J. Photovolt. 4(5), 1306–1313 (2014)CrossRefGoogle Scholar
 67.Louarn, K., Fontaine, C., Arnoult, A., Olivié, F., Lacoste, G., Piquemal, F., Bounouh, A., Almuneau, G.: Modelling of interband transitions in GaAs tunnel diode. Semicond. Sci. Technol. 31(6), 06LT016 (2016)CrossRefGoogle Scholar
 68.Steiner, M., Philipps, S.P., Hermle, M., Bett, A.W., Dimroth, F.: Validated front contact grid simulation for GaAs solar cells under concentrated sunlight. Prog. Photovolt. Res. Appl. 19(1), 73–83 (2010)CrossRefGoogle Scholar
 69.Nishioka, K., Takamoto, T., Agui, T., Kaneiwa, M., Uraoka, Y., Fuyuki, T.: Evaluation of InGaP/InGaAs/Ge triplejunction solar cell under concentrated light by simulation program with integrated circuit emphasis. Jpn. J. Appl. Phys. 43(3), 882–889 (2004)CrossRefGoogle Scholar
 70.Steiner, M., Guter, W., Peharz, G., Philipps, S.P., Dimroth, F., Bett, A.W.: A validated SPICE network simulation study on improving tunnel diodes by introducing lateral conduction layers. Prog. Photovolt. Res. Appl. 20(3), 274–283 (2011)CrossRefGoogle Scholar
 71.Jürgens, T., Gütay, L., Bauer, G.H.: Photoluminescence, open circuit voltage, and photocurrents in Cu(In, Ga)Se2 solar cells with lateral submicron resolution. Thin Solid Films 511–512, 678–683 (2006)CrossRefGoogle Scholar
 72.Paire, M., Lombez, L., Guillemoles, J.F., Lincot, D.: Measuring sheet resistance of CIGS solar cell’s window layer by spatially resolved electroluminescence imaging. Thin Solid Films 519(21), 7493–7496 (2011)CrossRefGoogle Scholar
 73.AlonsoÁlvarez, D., EkinsDaukes, N.: SPICE modelling of photoluminescence and electroluminescence based currentvoltage curves of solar cells for concentration applications. J. Green Eng. 5(4), 33–48 (2016)CrossRefGoogle Scholar
 74.Pieters, B.E.: A free and open source finitedifference simulation tool for solar modules. In: 2014 IEEE 40th Photovoltaic Specialist Conference. PVSC 2014, pp. 1370–1375 (2014)Google Scholar
 75.Pieters, B.E.: PVMOS Code Repository. [Online] (2018). https://github.com/IEK5/PVMOS
 76.Wong, J.: Griddler: intelligent computer aided design of complex solar cell metallization patterns. In: 2013 IEEE 39th Photovoltaic Specialists Conference (PVSC), pp. 0933–0938 (2013)Google Scholar
 77.Castaner, L., Silvestre, S.: Modelling PVSystems Using PSPice. Wiley, New York (2002)CrossRefGoogle Scholar
 78.EkinsDaukes, N.J., Betts, T.R., Kemmoku, Y., Araki, K., Lee, H.S., Gottschalg, R., Boreland, M.B., Infield, D.G., Yamaguchi, M.: Syracuse—a multijunction concentrator system computer model. In: Proceedings of the 31st IEEE Photovoltaic Specialists Conference, pp. 651–654 (2005)Google Scholar
 79.Chan, N.L.A., Young, T.B., Brindley, H.E., EkinsDaukes, N.J., Araki, K., Kemmoku, Y., Yamaguchi, M.: Validation of energy prediction method for a concentrator photovoltaic module in Toyohashi Japan. Prog. Photovolt. Res. Appl. 21(8), 1598–1610 (2012)CrossRefGoogle Scholar
 80.Chan, N.L.A., Brindley, H.E., EkinsDaukes, N.J.: Impact of individual atmospheric parameters on CPV system power, energy yield and cost of energy. Prog. Photovolt. Res. Appl. 22(10), 1080–1095 (2014)CrossRefGoogle Scholar
 81.Kamath, H.G., Araki, K., EkinsDaukes, N.J., Ramasesha, S.K.: Performance analysis and fault detection method for concentrator photovoltaic modules. Submitted to Journal of Photovoltaics (2018)Google Scholar
Copyright information
Open AccessThis article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.