3.2 Generation profile
Light absorption in the layer can be uniform (i.e. constant versus position) or follow either an user-defined profile or a generated profile as described in section 2.4. Which profile is used, is set by the parameter \(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} genProfile}}\). If set to ‘none’, a uniform generation profile is used. If set to ‘calc’, the generation profile is calculated using the transfer matrices. In any other case, the value of \(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} genProfile}}\) is treated as a filename. Parameter \(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} layerGen}}\) can be used to indicate whether a layer absorbs / generates electron-hole pairs or not.
The case of an user-defined profile is specified by setting the parameter \(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} genProfile}}\) to the name of the file with the generation profile. The definition of the file format is pretty basic. There must be a header, but comments may be added before or after the header (or even by simply adding text at the end of the line that contains the header). The header must look as shown below, but it is not case-sensitive. Note: \(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} x}}\) need be in real units as the last x-coordinate is re-scaled to the full device thickness, i.e. the sum of each layer thickness \(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} L}}\). This means that the generation profile includes all layers that absorbs / generates electron-hole pairs. The generation rate \(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} G\_ ehp}}\), however must be absolute and in m\(^{-3}\) s\(^{-1}\). The actual magnitude of the profile is multiplied by \(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} G\_ frac}}\). An example:
* we can start with comments, but it's fully optional * there must be a line that starts with x G_ehp. x G_ehp * Note: G_ehp is in m-3 s-1. 0 1e27 2 1.1e27 3 1.5e27 4 2e27
This yields a profile that has its maximum absorption at the right electrode (x-coordinate 4 will be scaled to the total thickness of the device).
The case of a calculated profile is controlled by parameter \(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} genProfile}}\). In this case, the generation profile is calculated based on the device structure, which for example with three layers takes on the following structure, where layers with a \(^{\ast }\) must always be defined:
Substrate\(^{\ast }\)
ITO
Layer 1
Layer 2
Layer 3
Back layer\(^{\ast }\)
For each relevant layer there must be a thickness defined and a file containing the refractive index \(n\) and extinction coefficient \(k\) per wavelength \(\lambda \). 1 The shortest wavelength defined must be equal or smaller than \(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} lambda\_ min}}\) and similar, the longest wavelength defined must be equal or larger than \(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} lambda\_ max}}\). This can be extended with as many layers as needed.
An example of a file with \(n\), \(k\) values with the required header line:
lambda n k 300E-9 1.75 0.1888075 305E-9 1.75 0.176253 310E-9 1.73 0.16639
The substrate layer (e.g. glass or an anti reflective coating) is an exception to this, because it does not require the definition of a thickness, only a n,k file. The reason for this is that the substrate layer is only used to calculate the initial transmission/reflection at the first interface.
The solar spectrum used (e.g. AM1.5) is controlled by the parameter \(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} spectrum}}\). The same conditions on the wavelength range as for the n,k files apply here. An example of a spectrum file with the required header line:
lambda I 300.0E-9 1.0205E+06 305.0E-9 1.6463E+07 310.5E-9 6.5540E+07
The generated profile contains the actual magnitude of the generation rate, the value for \(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} G\_ ehp}}\) is ignored in this case. Please note, \(\lambda \) is in metres, \(I\) is in W/m\(^3\).
For both the spectrum and the files with n,k values the minimal required spacing between consecutive wavelengths is defined by \(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} minDeltaLambda}}\) in unit \(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} DDTypesAndConstants}}\). The maximum supported number of decimal digits of precision for the wavelength is 6, anything beyond this is ignored.