• Keine Ergebnisse gefunden

2EMHFW RULHQWHG SURJUDPPLQJ ZLWK DSSOLFDWLRQ WR VRODU FHOO VLPXODWLRQ

In the following, the basic principles of object oriented programming are outlined with application to the analytical and numerical modelling of silicon homo-junction solar cells.

Object oriented programs can be seen as a collection of largely autonomous agents, called REMHFWV[62]. These objects encapsulate both the data values and the operation information.

Operations that an object can perform are called PHWKRGV. Writing an object oriented program means first of all defining the REMHFW FODVVHV. The object classes determine the object’s behaviour; that is, the data structure and the methods are defined in the classes. Every object is an LQVWDQFH of a class. To illustrate the meaning of class and object think of the class "solar car" and of the object "Dream" as an instance (or one realisation with this name) of the class solar cars.

392EMHFWV was implemented in the scientific software tool 0DWKHPDWLFD[63] using an object oriented extension [64]. 392EMHFWV is designed according to the way we think when analysing solar cells: there are specialists involved in the characterisation process. The main

QPJOU

NBUFSJBM

JOUFSGBDF

EPQJOH SFHJPO

QSPGJMF

TJMJDPO SFHJPO%

SFHJPO%

SFHJPO%

JTPMBUPS

TFNJDPOEVDUPS

DPOUBDU

WBSJBCMF1SPGJMF DPOTUBOU1SPGJMF

DPOTUBOU%PQJOH

EPQJOH1SPGJMF

SFDUBOHVMBS3FHJPO%

QPMZHPO3FHJPO%

NFBTVSFE1SPGJMF BOBMZUJDBM1SPGJMF

FSSPS'VODUJPO1SPGJMF HBVTTJBO1SPGJMF PCKFDU

PYJEF

QIPTQIPSVT%PQFE4JMJDPO CPSPO%PQFE4JMJDPO DVCPJE3FHJPO%

QPMZIFESPO3FHJPO%

Fig. 4.1: The object tree called SemiconductorPhysicist‘Material is shown. The degree of specialisation increases to the right in the tree. The concept of inheritance can be illustrated with the class semiconductor, which represents an abstract base class. The more specialised class silicon inherits attributes of the class semiconductor.

specialists are the 2SWLF6SHFLDOLVW, the 6HPLFRQGXFWRU3K\VLFLVW and the 6RODU&HOO5HVHDUFKHU. Each object tree, to be described in the following, belongs to one of these three specialists.

$EVWUDFWLRQDQGLQKHULWDQFH

$EVWUDFWLRQ is a mechanism to control complexity: if a number of related data types share some common characteristics, they are isolated and encapsulated in an abstract object class.

Specialisations of the abstract class are implemented as subclasses LQKHULWLQJ the characteristics of the superclass. Only the aspects in which a class differs from its superclass, have to be implemented. Therefore much of the program code needs to be written only once.

This ensures consistency and reduces development time. Constructing object trees using the mechanisms of abstraction and inheritance allows us to create categories of object classes that reflect the structure of terms in our natural human language. This can be illustrated by the object tree shown in Fig. 4.1 including material objects needed for the simulation of silicon solar cells.

Isolators, semiconductors and contacts are implemented as subclasses of the abstract class material. For instance, an abstract class VHPLFRQGXFWRU provides the material features common to all semiconductors; it contains methods for the definition of a band gap model, a model for the charge carrier mobility, and so on.

3RO\PRUSKLVPDQGUHXVDEOHFRGH

When simulating solar cells, a basic consideration is how to represent their physical dependencies in a computer model. Often one has to compare the influence of different physical models on the cell’s characteristics. Consider different models for the minority carrier mobility, HJ the model of Masetti [65] and that one of Cuevas [66]. The temperature dependency of the mobility is included in Masetti's model, whereas Cuevas’ parameterisation is given for a fixed temperature only. Therefore, in a functional implementation one has to deal with different numbers of arguments for the calculation of the mobility. As a consequence, the code for the calculation of the mobility as a function of doping density has to be written twice. This leads to a tight interconnectedness of the software, which was a major problem in past implementations, insofar as the extraction of elements of the software from one project to another, unrelated project was difficult.

One tool for writing "reusable" software is SRO\PRUSKLVP. It permits a code to be written once, at a high level of abstraction, and to be tailored as required to fit a variety of situations.

An example of the calculation of the minority carrier mobility with a reusable code is given in Fig. 4.2. The function FDOFXODWH0RELOLW\ accepts an object of type PRELOLW\0RGHO, regardless of the detailed dependency hidden in the model. Applying the polymorphic method HOHFWURQ0LQRULW\3DU to the mobility, the mobility parameters are switched to a parameter set describing electrons as minority charge carriers. This parameter set is hidden in the object; in other words, the data defining the model’s dependency on electrons as minority carriers are part of the object.

(PEHGGLQJRIREMHFWVDQGDXWRQRPRXVREMHFWV

Instances of object classes HPEHGGLQJ in other objects are a powerful tool for structuring object oriented programs. Fig. 4.3 shows part of the structure of the abstract base class VHPLFRQGXFWRU with an embedded model for the density of states in the conduction band.

Furthermore, the model for the density of states contains an embedded class for the calculation of the silicon band gap.

Each embedded object can be used autonomously. This allows us to immediately focus on specific physical dependencies, without any further programming effort. An example is given in Fig. 4.4. The effective intrinsic carrier density of silicon is calculated depending on the donor density for two different models of the effective intrinsic density. The object GHO$ODPR shows a constant effective intrinsic density value for donor densities lower than 7û1017 cm-3 whereas the object VFKHQN shows a smooth curve (Fig. 4.4a). The shape of the two effective

1HHGV@392EMHFWVC6HPLFRQGXFWRU3K\VLFLVWC&DUULHU0RELOLW\CD PDVHWWL = QHZ@PDVHWWL0RELOLW\0RGHOD HOHFWURQ0LQRULW\3DU @PDVHWWLD VHW'RQRU'HQVLW\ @PDVHWWL D

PRELOLW\ @PDVHWWLD 1429.68

SFG = QHZ@SFGY0RELOLW\0RGHOD HOHFWURQ0LQRULW\3DU @SFGD VHW'RQRU'HQVLW\ @SFG D

PRELOLW\ @SFGD 1417.

FDOFXODWH0RELOLW\@PRGHOB GRSLQJBD =

HHOHFWURQ0LQRULW\3DU @PRGHOD VHW'RQRU'HQVLW\ @PRGHO GRSLQJD PRELOLW\ @PRGHODL FDOFXODWH0RELOLW\@PDVHWWL D

1429.68

FDOFXODWH0RELOLW\@SFG D 1417.

a)

b)

c)

Fig. 4.2: An example of the calculation of the minority carrier mobility of phosphorous-doped silicon using the polymorphic methods HOHFWURQ0LQRULW\3DU, VHW'RQRU'HQVLW\ and PRELOLW\: (a) Masetti’s model is used; (b) using the model implemented in PC1D [67]; (c) polymorphic methods allow us to write a reusable code without the need for modification even if the dependencies of the models on the physical entities are changed.

TFNJDPOEVDUPS

DPOEVDUJPO#BOE%FOTJUZ0G4UBUFT

CBOE(BQ.PEFM

Fig. 4.3: Schematic diagram of the embedding of object classes for physical models. Arrows indicate embedding of classes: the class semiconductor embeds a model for the density of states, which itself embeds a band gap model.

intrinsic density curves can be understood by looking at the embedded band gap narrowing models. As each model for the effective intrinsic density embeds a band gap narrowing model it is easy to investigation this. The method JLYH%DQG*DS1DUURZLQJ0RGHO in Fig. 4.4b extracts the objects for the band gap narrowing. Plotting the band gap narrowing model depending on the donor density yields the curves shown in Fig. 4.4b which explains the effective intrinsic density curves. The band gap narrowing model of Schenk [68] is derived from quantum mechanics, leading to a smooth curve; whereas del Alamo [69] gave an empirical fit expression, leading to the dash-dotted curve with the kink in Fig. 4.4b.

The object oriented approach is superior to functional programming, where complex functions are behaving like a black box: as explained in the introduction, due to the high level of interconnectedness in functional software, specific physical dependencies cannot easily be accessed.

1HHGV@392EMHFWVC6HPLFRQGXFWRU3K\VLFLVWC%DQG*DSCD VFKHQN=QHZ@VFKHQN(II,QWULQVLF'HQVLW\0RGHOD

GHO$ODPR=QHZ@GHO$ODPR(II,QWULQVLF'HQVLW\0RGHOD PDNH'DWD/LVW@JBD =0DS@J ORJ7DE)NW@ DD QL(II@PRGHOBD =)XQFWLRQ@GRSLQJ

HVHW(OHFWURQ&RQFHQWUDWLRQ@PRGHO GRSLQJD VHW'RQRU'HQVLW\@PRGHO GRSLQJD 8GRSLQJ HIIHFWLYH,QWULQVLF'HQVLW\@PRGHOD<LD

GDWD@IBSBGBD =0DS@PDNH'DWD/LVW 8I@SD I@GD<D PXOWLSOH/RJ/LVW3ORW@86FKHQN GHO $ODPR<

GDWD@QL(II VFKHQN GHO$ODPRD <JUDSKLFV RSWLRQV GLVFDUGHG>D

™ ™ ™ ™ ™ ™'RQRU GHQVLW\ FP - ™™

™

™

™

™

™™ ™QLHII@FP-D

GHO $ODPR 6FKHQN

EJQ6FKHQN = JLYH%DQG*DS1DUURZLQJ0RGHO @VFKHQND EJQ'HO$ODPR = JLYH%DQG*DS1DUURZLQJ0RGHO @GHO$ODPR D EJQ@PRGHOBD =)XQFWLRQ@GRSLQJ

HVHW(OHFWURQ&RQFHQWUDWLRQ@PRGHO GRSLQJD VHW'RQRU'HQVLW\@PRGHO GRSLQJD 8GRSLQJ EDQG*DS1DUURZLQJ@PRGHOD<LD

PXOWLSOH/RJ/LVW3ORW@86FKHQN GHO $ODPR<

GDWD@EJQ EJQ6FKHQN EJQ'HO$ODPRD <JUDSKLFV RSWLRQV GLVFDUGHG>D

™ ™ ™ ™ ™ ™'RQRU GHQVLW\ FP -

D(JDS@H9D

GHO $ODPR 6FKHQN

Fig. 4.4: Focusing on model dependencies is easy because each object can be used autonomously: (a) Effective intrinsic density QLHII of silicon as a function of doping for two different models; (b) focusing on band gap narrowing models to explain differences in QLHII.

$QREMHFWFODVVIRUWKHVLPXODWLRQRIRSWLFDOSURSHUWLHV

This section describes optical models for silicon solar cells. From an abstract point of view, the most important spectrally dependent properties of any silicon solar cell structure are the external reflection and the light trapping quality; that is, the fraction of incident light absorbed in the electrically active part of the solar cell. Moreover, it is important to calculate the charge carrier generation profile in the solar cell structure to realistically simulate the short circuit current density using an electrical device simulation program.

Fig. 4.5 shows an object tree for the optical simulation of silicon solar cells. Methods for the above-mentioned optical properties are implemented in the object class RSWLFDO*HQHUDWLRQ. The optical properties can be calculated analytically in the case of a planar front and rear surface of a silicon wafer (Section 2.3.8). This model is implemented in the object class DQDO\WLFDO2SWLFDO*HQHUDWLRQ.

A numerical approach to the simulation of textured silicon solar cells is achieved by interfacing with the ray tracing program 5$<1 which is described in detail in Section 3.4.

/LJKWWUDSSLQJJHRPHWULHV

Models for the most important light trapping geometries realised at Fraunhofer ISE are implemented in 392EMHFWV as subclasses of the object class RSWLFDO*HQHUDWLRQ6WDFN(Fig. 4.5).

This class represents optical symmetry elements with stacked optical boundaries. An optical boundary consists of optical surfaces, which are shown in Fig. 3.8.

Three examples of optical symmetry elements are shown in Fig. 4.5a - d.

Optical properties of regular inverted pyramids etched in monocrystalline silicon are modelled with the object class LQYHUWHG3\UDPLG*HQHUDWLRQ [27]. It embeds the optical symmetry element shown in Fig. 4.5a, b. The inverted pyramid on the front side is composed of four triangular-shaped multi-layered surfaces. Therefore, antireflection coatings on textured surfaces can be simulated as well.

Optical properties of random upright pyramids can be approximated by an optical symmetry element composed of one upright pyramid [70]. This optical symmetry element is embedded in the object class XSULJKW3\UDPLG*HQHUDWLRQ shown in Fig. 4.5c.

Light trapping in thin film silicon solar cells can be simulated with the object classes SODQDU7KLQ)LOP*HQHUDWLRQ and LQYHUWHG7KLQ)LOP*HQHUDWLRQ. The optical symmetry element shown in Fig. 4.5d describes a thin-film layer deposited on a substrate. Light trapping in the thin silicon layer is achieved using inverted pyramids on the front side and an intermediate oxide layer, which acts as a backside reflector. The intermediate oxide is modelled by a multi-layered surface [71].

]

]

q N

]

q N

a) b) c) d)

PCKFDU

SBZ5SBDJOH1BSBNFUFST TJNVMBUJPO5PPM

PQUJDBM(FOFSBUJPO5BCMF PQUJDBM(FOFSBUJPO

PQUJDBM(FOFSBUJPO4UBDL BOBMZUJDBM0QUJDBM(FOFSBUJPO

JOWFSUFE5IJO'JMN(FOFSBUJPO

QMBOBS5IJO'JMN(FOFSBUJPO VQSJHIU6QSJHIU1ZSBNJE(FOFSBUJPO JOWFSUFE6QSJHIU1ZSBNJE(FOFSBUJPO

VQSJHIU1ZSBNJE(FOFSBUJPO

JOWFSUFE1ZSBNJE(FOFSBUJPO

QMBOBS(FOFSBUJPO

Fig. 4.5: The graph shows objects of the package 2SWLF6SHFLDOLVWC2SWLFDO*HQHUDWLRQ describing the optical properties of textured monocrystalline silicon solar cells: (a) The optical symmetry elements are implemented in three dimensions, graphs b - d are 2D-cuts through the respective 3D-symmetry element; (b) front texture with inverted pyramids; (c) upright pyramid; (d) inverted pyramid texture of a thin film cell on an insulating substrate.

([DPSOH2SWLFDOFKDUDFWHULVDWLRQRIWKLQVLOLFRQVRODUFHOOV

This section presents an example ray tracing calculation of the optical properties of a planar silicon on insulator (62,) solar cell [72]. The modelling was performed with the object SODQDU7KLQ)LOP*HQHUDWLRQ. The complete code for the simulation and graphical output is shown in Fig. 4.6.

The external reflection of the SOI cell is plotted as a solid line in Fig. 4.6a. In the example the object of class SODQDU7KLQ)LOP*HQHUDWLRQ assumes a default thickness of the surface passivation oxide of 105 nm. The external quantum efficiency of a solar cell with these optical features cannot exceed the upper limit plotted as a dash-dotted line in Fig. 4.6a (active absorption). Maximum transmission of light through the intermediate oxide layer occurs at 1050 nm: 40 % of light at this wavelength is transmitted through the intermediate oxide layer and absorbed mostly in the supporting substrate (dotted line in Fig. 4.6a).

Another interesting feature of the class RSWLFDO*HQHUDWLRQ is its ability to simulate mixtures of white light illumination and additional monochromatic illumination. Different mixtures can be simulated where the ray tracing procedure is invoked only once. An example calculation is shown in Fig. 4.6b. The incident light intensity is varied from 0.001 suns to 10 suns.

Additional monochromatic illumination with 1100 nm wavelength and an intensity of 10 W/m2 was set. The curves in Fig. 4.6b show depth-dependent optical generation profiles. A discontinuity of the generation profile is found at a depth of 30 µm. This is due to reflection of light at the intermediate oxide layer.

The example discussed above illustrates the autonomous use of complex objects in 392EMHFWV. Only a few parameters have to be specified, differing from default settings to obtain reasonable results. This ensures a short and clear code. Data generated by the objects can immediately be displayed with 0DWKHPDWLFD, as demonstrated in Fig. 4.6.

1HHGV@392EMHFWVC2SWLF6SHFLDOLVWC2SWLFDO*HQHUDWLRQCD

* = QHZ@SODQDU7KLQ)LOP*HQHUDWLRQD

VHW2SWLFDO7KLFNQHVV@* H*mP*LD VHW5HDU3KRQJ([SRQHQW@* D VHW,QWHUPHGLDWH2[LGH7KLFNQHVV@* H*QP*LD

UHTXHVW@*D

GDWD =8H[WHUQDO5HIOHFWLRQ@*D IURQW6XUIDFH%DODQFH@*D FXPXODWLYH$EVRUSWLRQ@*D DFWLYH$EVRUSWLRQ@*D LQWHUPHGLDWH2[LGH%DODQFH@*D<

GHVFULSWRU =8H[WHUQDO5HIOHFWLRQ IURQW6XUIDFH%DODQFH FXPXODWLYH$EVRUSWLRQ DFWLYH$EVRUSWLRQ LQWHUPHGLDWH2[LGH<

PXOWLSOH/RJ/LVW3ORW@GHVFULSWRU GDWD < JUDSKLFV RSWLRQV GLVFDUGHG >D

400 600 800 1000 1200

wavelength @nmD 0.2

0.4 0.6 0.8 1

@

.01.

D

aL

intermediateOxide activeAbsorption cumulativeAbsorption frontSurfaceBalance externalReflection

VHW0HDV/LJKW:DYHOHQJWK@* H*QP*LD VHW0HDV/LJKW,QWHQVLW\@* H*:ƒP*LD JHQHUDWLRQ)RU*LYHQ6XQV@VXQVBD = HVHW6XQV@* VXQVD JLYH*HQHUDWLRQ/LVW@*DL GDWD = JHQHUDWLRQ)RU*LYHQ6XQVƒë 8 <

GHVFULSWRU = 7R6WULQJđ 8 <

PXOWLSOH/RJ/LVW3ORW@GHVFULSWRU GDWD < JUDSKLFV RSWLRQV GLVFDUGHG >D

0.01 0.1 10 100

depth @mmD 1.™1018

1.™1020 1.™1022

bL generation rate @cm-3s-1D

10 1 0.1 0.01 0.001

a)

b)

Fig. 4.6: 0DWKHPDWLFD input and output for the simulation of the optical properties of a 30 µm thick planar SOI solar cell on a 200 nm thick insulating intermediate oxide layer. The intermediate oxide layer is assumed to be rough.

6RODUFHOOPRGHOV

This section presents an object oriented implementation of models describing solar cells. A solar cell is represented by an object of class VRODU&HOO0RGHO. The object class VRODU&HOO0RGHO can be associated with the prototype of a solar cell: if no further details of the term solar cell are explained, the author thinks of a homo-junction silicon solar cell with a boron-doped base and a phosphorous-doped emitter. Therefore, the abstract base class VRODU&HOO0RGHO collects material properties of this solar cell prototype by means of embedded material objects which are independent of the device geometry. The definition of subclasses is based on the distinction between analytical solar cell models and numerical solar cell models.

$QDEVWUDFWFODVVIRUWKHVLPXODWLRQRIVLOLFRQVRODUFHOOV

A SQ junction silicon solar cell consists of a base, an emitter and two contact types.

Therefore, these shared characteristics are isolated in an abstract class - the object class called VRODU&HOO0RGHO. The objects for the base and emitter are embedded in the solar cell model, and are sub-objects of the VLOLFRQ class including the doping type (Fig. 4.1). It provides methods of calculating all important semiconductor properties such as the effective intrinsic density, doping dependent mobility, charge carrier dependent recombination rates etc.

Another feature common to all solar cells is that they are illuminated with light, causing charge carriers generated in the base and emitter. To subsume the optical properties of the device, the solar cell model embeds an object RSWLFDO*HQHUDWLRQdescribing the optical charge carrier generation as explained above.

1XPHULFDOGHYLFHVLPXODWLRQWRROV

For exact solar cell simulations, numerical device simulation programs have to be involved. The most important steps for the device simulation are ray tracing simulation, construction of a discretisation mesh, and numerical device simulation, performed with the programs 5$<1 (Section 3.4.2), 0(6+ and '(66,6[41], respectively. The objects involved in the numerical simulation process are shown in the object tree of Fig. 4.7. The 0DWKHPDWLFD objects PHVK and '(66,6 provide interface methods for the programs 0(6+ and '(66,6. The operating system-specific code is collected in the class FRPSXWHU, which is embedded in the class VLPXODWLRQ7RRO. Objects of the class FRPSXWHU for the operating systems Linux and HP-Unix have been implemented so far.

The device simulation program '(66,6 allows us to use different solution algorithms. The selection of the solution algorithm and details concerning the order of solving the Poisson equation and the electron and hole continuity equations are embedded in subclasses of GHVVLV6ROYH6FKHPH (Fig. 4.7).

An object of type GHVVLV6ROYH6WUDWHJ\ provides interface methods specifying the voltage applied to the solar cell device within '(66,6. For example, an instance of GHVVLV6ROYH6WUDWHJ\4XDVLVWDWLRQDU\ can be used to ramp the voltage applied to the solar cell contacts to a given level assuming quasistationary conditions in the device.

Finally, the optical generation rates at the nodes of a discretisation mesh have to be specified. This is achieved by using an object of type LOOXPLQDWLRQ$VVLVWDQW. Files specifying optical generation rates can be generated with this object for white light illumination and for added monochromatic light (see Fig. 4.6b). The last case is important for the simulation of the spectral response of a solar cell.

The class QXPHULFDO6RODU&HOO0RGHO embeds all simulation tools shown in Fig. 4.7. Details concerning the device geometry are specified in subclasses of the class QXPHULFDO6RODU&HOO0RGHO; this will be discussed in the following section.

7ZRDQGWKUHHGLPHQVLRQDOVRODUFHOOJHRPHWULHV

In order to numerically simulate the electrical characteristics of a solar cell with a device simulation program, a geometrically irreducible symmetry element of the cell has to be constructed.

In 392EMHFWV all physical dimensions and doping profiles are encapsulated in a subclass of HOHFWULFDO6\PPHWU\(OHPHQW Fig. 4.8 shows two examples of geometrically irreducible symmetry elements with reflecting boundary conditions: (a) two-dimensional symmetry element of a silicon on insulator thin film cell with both contacts on the front side; (b) three-dimensional symmetry element of an emitter wrap-through cell. The front and rear emitters are connected by a diffusion through holes (called hole emitter). Due to the current collecting

PCKFDU

Fig. 4.7: Object tree 6RODU&HOO5HVHDUFKHUC,VH7FDG7RROV for interfacing with numerical device simulation tools.

activity of the hole emitter, the current flow patterns found in an emitter wrap-through cell cannot accurately be described by a two-dimensional model.

The conception of the object class HOHFWULFDO6\PPHWU\(OHPHQW minimises the implementation effort for the simulation of a new solar cell geometry: the coordinates of all

The conception of the object class HOHFWULFDO6\PPHWU\(OHPHQW minimises the implementation effort for the simulation of a new solar cell geometry: the coordinates of all