• Tidak ada hasil yang ditemukan

Champion Heterojunction Device 1-Sun Light IV

A.2 Oxide in PL5

The capability to deposit SiOxusing NO2 and 5 % SiH4in Ar was added not long before my arrival to the group, and very little process development had been done. Here you will find some working recipes, approaching the silicon rich suboxide regime. Recipes and growth rates are shown in table A.1 and optical data in figure A.4. Note that a heater temperature of 500C corresponds to a substrate temperature of approximately 350C.

Table A.1: Oxide/Suboxide Depositions from PL5

Heater SiH4 N2O Growth

Growth Pressure Temperature RF Power Flow Rate Flow Rate

Number (mTorr) (C) (Watts) (sccm) (sccm) (nm/min)

143 750 500 3 50 50 28

145 750 500 3 50 25 26.8

146 750 500 3 50 10 19.3

0 0.005 0.01 0.015 0.02

1.45 1.5 1.55 1.6 1.65 1.7 1.75 1.8

300 400 500 600 700 800 900

k

n

Wavelength (nm)

Optical Constants for Three SiOx Films Deposited by PECVD in PL5

143 n 145 n 146 n 143 k 145 k 146 k

Figure A.4: Optical Constants of Oxides Deposited in PL5

Appendix B

Transient Simulations using Sentaurus TCAD

Synopsys Sentaurus TCAD was used to interpret the results of photoconductivity decay experiments.

While relatively simple analytical solutions relating the effective lifetime to the surface recombination velocity, bulk lifetime, and thickness exist for wafer geometries, these same expressions only exist for certain limited conditions in cylindrical geometries, and are not solved for tapered structures.

Therefore, we turn to simulations to fit likely material parameters given an effective lifetime for these geometries.

The following code was built off, and borrowed sections from the wire simulations developed by Michael Kelzenberg and adaptions made by Michael Deceglie. The general workflow follows the typical method of device simuation: first, the structure is defined and meshed in the structure editor.

Next, Sentaurus Device is run once to calculate the illumination, and the illumination information is imported into the next Device simulation which calculates the carrier density. Finally Matlab is used to fit either a single or double exponential to the extracted data. An example of the output data and fit are shown in figure B.1

Listing B.1: Sentaurus Device Editor Code

##########################################################################################################

# R a d i a l p−n j u n c t i o n s o l a r c e l l s t r u c t u r e f o r c o r e d e p l e t i o n s t u d i e s

# S e n t a u r u s S t r u c t u r e E d i t o r command f i l e ( a b r i d g e d f o r i n c l u s i o n i n PhD t h e s i s )

#

# M i c h a e l K e l z e n b e r g , C a l i f o r n i a I n s t i t u t e o f T e c h n o l o g y , 2 0 1 0

# M o d i f i e d f o r p h o t o c o n d u c t i v i t y d e c a y s i m u l a t i o n s by H a l Emmer , 2 0 1 5

##########################################################################################################

#

#G l o b a l s e t t i n g s ( p r o j e c t v a r i a b l e s ) :

# @R@ w i r e r a d i u s , m i c r o n s

# @L@ l e n g t h o f ’ ’ a b o v e s u b s t r a t e ’ ’ w i r e ( n o t e t h a t t h e a c t u a l s t r u c t u r e i s 1 um l o n g e r )

# @subsdoping@ d o p i n g o f t h e s u b s t r a t e , c o n t r o l s l i f e t i m e on t h e bottom s u r f a c e

#

#L o c a l s e t t i n g s :

#

#d e f i n e B a s e D o p i n g 1E+16

# [ cm−3 ]

#d e f i n e t n i t r i d e 0 . 1 5

0 1 2 3 4 5 x 10-5 0

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Time (s)

Normalized Electron Density

signal vs. time Exponential Fit

Figure B.1: Example output of a transient simulation, and exponential fit generated by Matlab.

# [ m i c r o n s ] ( o x i d e s h e l l u s e d t o s e t s i d e w a l l SRV v a l u e )

#d e f i n e EMinGrid 0 . 0 1

# [ um ] min. r e f i n e m e n t mesh s i z e i n e m i t t e r r e g i o n

#d e f i n e EMaxGrid 0 . 2

# [ um ] max. r e f i n e m e n t mesh s i z e i n e m i t t e r r e g i o n

#d e f i n e E R a t i o 1 . 5

# g r i d r e l a x a t i o n r a t i o f o r e m i t t e r r e g i o n

#d e f i n e BMinGrid 0 . 0 1

# [ um ] min. r e f i n e m e n t mesh s i z e i n b a s e r e g i o n

#d e f i n e BMaxGrid 0 . 2

# [ um ] max. r e f i n e m e n t mesh s i z e i n b a s e r e g i o n

#d e f i n e B R a t i o 1 . 2

# g r i d r e l a x a t i o n r a t i o f o r b a s e r e g i o n

#

##########################################################################################################

#

# C r o s s s e c t i o n o f w i r e m a t e r i a l f o r c y l i n d r i c a l p h o t o c o n d u c t i v i t y d e c a y s i m u l a t i o n s

#

##########################################################################################################

#MATERIAL

( s d e g e o : c r e a t e−r e c t a n g l e (p o s i t i o n 0 −t n i t r i d e 0 )

(p o s i t i o n (+ @R@ t n i t r i d e ) @L@ 0 ) ” N i t r i d e ” ” N i t r i d e r e g i o n ” )

( s d e g e o : c r e a t e−r e c t a n g l e (p o s i t i o n 0 0 0 ) (p o s i t i o n @R@ @L@ 0 ) ” S i l i c o n ” ” B a s e r e g i o n ” )

( s d e g e o : c r e a t e−r e c t a n g l e (p o s i t i o n 0 @L@ 0 ) (p o s i t i o n@R@ (+ @L@ 1 . 0 ) 0 ) ” S i l i c o n ” ” S u b s r e g i o n ” )

#PROFILES

( s d e d r : d e f i n e−c o n s t a n t−p r o f i l e ” C o n s t a n t P r o f i l e D e f i n i t i o n f o r B a s e ” ” B o r o n A c t i v e C o n c e n t r a t i o n ” B a s e D o p i n g ) ( s d e d r : d e f i n e−c o n s t a n t−p r o f i l e−r e g i o n ” C o n s t a n t P r o f i l e P l a c e m e n t f o r B a s e ”

” C o n s t a n t P r o f i l e D e f i n i t i o n f o r B a s e ” ” B a s e r e g i o n ” )

( s d e d r : d e f i n e−c o n s t a n t−p r o f i l e ” C o n s t a n t P r o f i l e D e f i n i t i o n f o r S u b s ” ” B o r o n A c t i v e C o n c e n t r a t i o n ” @subsdoping@ ) ( s d e d r : d e f i n e−c o n s t a n t−p r o f i l e−r e g i o n ” C o n s t a n t P r o f i l e P l a c e m e n t f o r S u b s ”

” C o n s t a n t P r o f i l e D e f i n i t i o n f o r S u b s ” ” S u b s r e g i o n ” )

#REFINEMENTS FOR MATERIAL

( s d e d r : d e f i n e−r e f i n e m e n t−s i z e ” R e f i n e m e n t D e f i n i t i o n f o r S i l i c o n ” BMaxGrid BMaxGrid EMinGrid EMinGrid )

( s d e d r : d e f i n e−r e f i n e m e n t−m a t e r i a l ” R e f i n e m e n t P l a c e m e n t f o r S i l i c o n ”

” R e f i n e m e n t D e f i n i t i o n f o r S i l i c o n ” ” S i l i c o n ” )

#REMAINING REFINEMENTS

#POSITION

( s d e d r : d e f i n e−r e f e v a l−w i n d o w ” R e f E v a l W i n B U p p e r ” ” R e c t a n g l e ” (p o s i t i o n 0 0 0 ) (p o s i t i o n @R@ (∗ @L@ 0 . 5 ) 0 ) )

( s d e d r : d e f i n e−r e f e v a l−w i n d o w ” R e f E v a l W i n B L o w e r ” ” R e c t a n g l e ” (p o s i t i o n 0 @L@ 0 ) (p o s i t i o n @R@ (∗ @L@ 0 . 5 ) 0 ) )

#REFINEMENT PITCH

( s d e d r : d e f i n e−m u l t i b o x−s i z e ” M u l t i b o x D e f i n i t i o n B U p p e r ” BMaxGrid BMaxGrid BMinGrid BMinGrid −B R a t i o B R a t i o ) ( s d e d r : d e f i n e−m u l t i b o x−s i z e ” M u l t i b o x D e f i n i t i o n B L o w e r ”

BMaxGrid BMaxGrid BMinGrid BMinGrid −B R a t i o −B R a t i o )

#PLACEMENTS

( s d e d r : d e f i n e−m u l t i b o x−p l a c e m e n t ” M u l t i b o x P l a c e m e n t B U p p e r ”

” M u l t i b o x D e f i n i t i o n B U p p e r ” ” R e f E v a l W i n B U p p e r ” ) ( s d e d r : d e f i n e−m u l t i b o x−p l a c e m e n t ” M u l t i b o x P l a c e m e n t B L o w e r ”

” M u l t i b o x D e f i n i t i o n B L o w e r ” ” R e f E v a l W i n B L o w e r ” )

# NITRIDE SIDEWALL

( s d e d r : d e f i n e−r e f e v a l−w i n d o w ” R e f E v a l W i n N i t r i d e ”

” R e c t a n g l e ” (p o s i t i o n 0 0 0 ) (p o s i t i o n (+ @R@ t n i t r i d e ) @L@ 0 ) ) ( s d e d r : d e f i n e−m u l t i b o x−s i z e ” M u l t i b o x D e f i n i t i o n f o r N i t r i d e ”

BMaxGrid BMaxGrid EMinGrid EMinGrid E R a t i o −E R a t i o ) ( s d e d r : d e f i n e−m u l t i b o x−p l a c e m e n t ” M u l t i b o x P l a c e m e n t f o r N i t r i d e ”

” M u l t i b o x D e f i n i t i o n f o r N i t r i d e ” ” R e f E v a l W i n N i t r i d e ” )

# NITRIDE TOP

( s d e d r : d e f i n e−r e f e v a l−w i n d o w ” R e f E v a l W i n T o p N i t r i d e ”

” R e c t a n g l e ” (p o s i t i o n 0 0 0 ) (p o s i t i o n (+ @R@ t n i t r i d e ) −t n i t r i d e 0 ) ) ( s d e d r : d e f i n e−m u l t i b o x−s i z e ” M u l t i b o x D e f i n i t i o n f o r T o p N i t r i d e ”

BMaxGrid BMaxGrid EMinGrid EMinGrid E R a t i o −E R a t i o ) ( s d e d r : d e f i n e−m u l t i b o x−p l a c e m e n t ” M u l t i b o x P l a c e m e n t f o r T o p N i t r i d e ”

” M u l t i b o x D e f i n i t i o n f o r T o p N i t r i d e ” ” R e f E v a l W i n T o p N i t r i d e ” )

# DONE. GENERATE MESH .

( s d e : s a v e−m o d e l ”n@node@” )

( s d e : b u i l d−m e s h ” snmesh ” ”−y 1 e 5 −numThreads 8 ” ”n@node@” )

Listing B.2: Sentaurus Device illumination code for uniform monochromatic illumination

# O p t i c a l G e n e r a t i o n w i t h T r a n s f e r M a t r i x Method

#s e t d e p @node| −1 : a l l @

#s e t t a u p 1

#s e t S0 1

# R e q u i r e d t o read t h e p a r a m e t e r f i l e . T h e s e w i l l b e m o d i f i e d i n t h e d e v i c e s i m u l a t i o n

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

FILE

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

F i l e {

G r i d = ” n@node|−1@ msh . t d r ”

P a r a m e t e r s = ” @parameter@ ”

p l o t = ” @tdrdat@ ”

c u r r e n t = ” @plot@ ”

O p t i c a l G e n e r a t i o n O u t p u t = ” optgen des R@R@ L@L@ I@Power@ . t d r ” }

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

ELECTRODES

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

PLOT

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

P l o t {

e C u r r e n t / V e c t o r h C u r r e n t / V e c t o r c u r r e n t /v e c t o r

S p a c e C h a r g e e D e n s i t y h D e n s i t y P o t e n t i a l E l e c t r i c F i e l d

SRH Auger T o t a l R e c o m b i n a t i o n S u r f a c e R e c o m b i n a t i o n C o n d u c t i o n B a n d V a l e n c e B a n d D o p i n g C o n c e n t r a t i o n e Q u a s i F e r m i h Q u a s i F e r m i

E f f e c t i v e I n t r i n s i c D e n s i t y I n t r i n s i c D e n s i t y O p t i c a l G e n e r a t i o n R a y T r a c e I n t e n s i t y R a y T r e e s }

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

PHYSICS

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

P h y s i c s { O p t i c s (

C o m p l e x R e f r a c t i v e I n d e x ( WavelengthDep ( r e a l imag ) ) O p t i c a l G e n e r a t i o n (

C o m p u t e F r o m M o n o c h r o m a t i c S o u r c e ) end O p t i c a l G e n e r a t i o n

E x c i t a t i o n ( Window ( ” L1 ” ) (

O r i g i n = ( 0 , 0 ) L i n e ( Dx = @<2∗@R@>@) )∗End Window

W a v e l e n g t h = 1 . 0 6 4 um , Nd :YAG l a s e r o u t p u t I n t e n s i t y = @Power@ W/cmˆ 2

T h e t a = 0 . d e g r e e s P h i = 3 0 . d e g r e e s )∗End E x c i t a t i o n

O p t i c a l S o l v e r ( TMM (

L a y e r S t a c k E x t r a c t i o n ( WindowName = ” L1 ” ) end L a y e r S t a c k

) end TMM

) end O p t i c a l S o l v e r ) ∗end O p t i c s

} ∗ end p h y s i c s

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

MATH

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

Math{

E x t r a p o l a t e D e r i v a t i v e s A v a l D e r i v a t i v e s R e l E r r C o n t r o l D i g i t s =18 RhsMin=1E−15 E x t e n d e d P r e c i s i o n I t e r a t i o n s =300 Notdamped =300 E x i t O n F a i l u r e S t a c k S i z e =20000000 C y l i n d r i c a l ( 0 . 0 )

}

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

SOLVE

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

S o l v e {

O p t i c s }

Listing B.3: Sentaurus Device code for transient photoconductivity decay

#s e t d e p @node| −1 : a l l @

# s e t Nto @<@Nt@/100>@

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

FILE

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

F i l e {

G r i d = ” n@node|−2@ msh . t d r ”

P a r a m e t e r s = ” @parameter@ ”

p l o t = ” @tdrdat@ ”

c u r r e n t = ” @plot@ ”

O p t i c a l G e n e r a t i o n I n p u t = ” optgen des R@R@ L@L@ I@Power@ . t d r ” }

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

ELECTRODES

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

No e l e c t r o d e s a r e u s e d i n t h e c o n t a c t l e s s p h o t o c o n d u c t i v i t y e x p e r i m e n t

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

PLOT

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

P l o t {

e C u r r e n t / V e c t o r h C u r r e n t / V e c t o r c u r r e n t /v e c t o r

E l e c t r i c F i e l d / V e c t o r e D r i f t V e l o c i t y / V e c t o r h D r i f t V e l o c i t y / V e c t o r S p a c e C h a r g e e D e n s i t y h D e n s i t y

P o t e n t i a l C o n d u c t i o n B a n d E n e r g y V a l e n c e B a n d E n e r g y

SRH Auger T o t a l R e c o m b i n a t i o n S u r f a c e R e c o m b i n a t i o n / R e g i o n I n t e r f a c e e G a p S t a t e s R e c o m b i n a t i o n h G a p S t a t e s R e c o m b i n a t i o n

D o p i n g C o n c e n t r a t i o n O p t i c a l G e n e r a t i o n C u r r e n t P o t e n t i a l B e a m G e n e r a t i o n OptBeam N o n L o c a l h B a r r i e r T u n n e l i n g e B a r r i e r T u n n e l i n g }

C u r r e n t P l o t {

S u r f a c e R e c o m b i n a t i o n ( I n t e g r a t e ( R e g i o n I n t e r f a c e=” B a s e r e g i o n / N i t r i d e r e g i o n ” ) ) O p t i c a l G e n e r a t i o n ( ( 0 , @<@L@ @samplespot@>@) ) ,

e D e n s i t y ( A v e r a g e ( R e g i o n=” B a s e r e g i o n ” ) ) #p l o t t h e a v e r a g e e l e c t r o n d e n s i t y i n t h e b a s e

# e D e n s i t y ( ( 0 , @<@L@ @samplespot@>@) ) #or p l o t i t a t a s p e c i f i c p o i n t }

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

PHYSICS

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

P h y s i c s {

E f f e c t i v e I n t r i n s i c D e n s i t y ( NoBandGapNarrowing ) F e r m i

A r e a=@<1e 8 / ( 2∗@R@)>@

O p t i c s (

O p t i c a l G e n e r a t i o n (

R e a d F r o m F i l e ( S c a l i n g = 0 )

TimeDependence (

WaveTime= ( 0 e−4 @ t l i g h t o f f @ ) WaveTsigma= 1e−6

S c a l i n g= 1 . 0 T r a n s i e n t S c a l i n g

) ∗end TimeDependence

) ) }

P h y s i c s ( M a t e r i a l=” S i l i c o n ” ) { R e c o m b i n a t i o n (

SRH Auger Band2Band (

Model=S c h e n k )

)∗end R e c o m b i n a t i o n M o b i l i t y ( DopingDep ) }

P h y s i c s ( R e g i o n I n t e r f a c e=” B a s e r e g i o n / N i t r i d e r e g i o n ” ){

R e c o m b i n a t i o n ( S u r f a c e S R H ) #u s e a s u r f a c e r e c o m b i n a t i o n v e l o c i t y d e f i n e d i n t h e

} #p a r a m e t e r f i l e t o b e t a k e n f r o m t h e w o r k b e n c h

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

MATH

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

Math{

Method = P a r D i S o T r a n s i e n t = Be

N u m b e r o f T h r e a d s = maximum E x t r a p o l a t e

D e r i v a t i v e s A v a l D e r i v a t i v e s R e l E r r C o n t r o l D i g i t s =6 RhsMin=1E−15 E x t e n d e d P r e c i s i o n I t e r a t i o n s =300 Notdamped =300 E x i t O n F a i l u r e S t a c k S i z e =4000000 C y l i n d r i c a l ( 0 . 0 )

C u r r e n t P l o t ( I n t e g r a t i o n U n i t= cm )

}

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

SOLVE

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

S o l v e {

∗−−F i r s t s o l v e t h e d a r k , V=0 c a s e ( s h o r t c i c u i t c o n d i t i o n ) C o u p l e d { p o i s s o n }

C o u p l e d { p o i s s o n e l e c t r o n } C o u p l e d { p o i s s o n e l e c t r o n h o l e }

P l o t ( F i l e P r e f i x = ” n @ n o d e @ d a r k ” )

N e w C u r r e n t P r e f i x=” l i g h t

Q u a s i s t a t i o n a r y ( I n i t i a l S t e p = 0 . 1 M i n S t e p = 0 . 0 0 1 MaxStep = 0 . 5

G o a l{ M o d e l P a r a m e t e r = ” O p t i c s / O p t i c a l G e n e r a t i o n / R e a d F r o m F i l e / S c a l i n g ” V a l u e = 1 } ) { C o u p l e d { p o i s s o n e l e c t r o n h o l e } }

P l o t ( F i l e P r e f i x = ” n @ n o d e @ l i g h t ” )

N e w C u r r e n t P r e f i x= ” S w i t c h ”

##−f r o m 0 t o T1 T r a n s i e n t (

I n i t i a l t i m e = 0 F i n a l t i m e= 5e−4

I n i t i a l s t e p = 1e−7 I n c r e m e n t= 1 . 5 D e c r e m e n t= 4 M i n s t e p= 1 e−11 Maxstep= 1e−4

){ C o u p l e d{ P o i s s o n E l e c t r o n H o l e }

C u r r e n t P l o t ( Time= ( #g e n e r a t e more d a t a a r o u n d t h e d e c a y

Range= ( 0 . 0 e−4 2 . 0 e−4 ) i n t e r v a l s = 2 0; Range= ( 2 . 0 e−4 2 . 5 e−4 ) i n t e r v a l s = 2 0; Range= ( 2 . 5 e−4 3 . 0 e−4 ) i n t e r v a l s = 3 0; Range= ( 3 . 0 e−4 3 . 5 e−4 ) i n t e r v a l s = 2 5;

Range= ( 3 . 5 e−4 4 . 0 e−4 ) i n t e r v a l s = 2 0; Range= ( 4 . 0 e−4 5 . 0 e−4 ) i n t e r v a l s = 1 5 ) ) }

}

Listing B.4: Matlab code for fitting transient photoconductivity simulations

#s e t d e p @node| −1 : a l l @

%% I n i t i a l i z e v a r i a b l e s .

s t a r t t i m e = @ t l i g h t o f f @ ;

f i l e n a m e = ’ . / S w i t c h n @ n o d e|−1 @ d e s . p l t ’ s t a r t R o w = 1 1 ;

%% R e a d c o l u m n s o f d a t a a s s t r i n g s :

% F o r m o r e i n f o r m a t i o n , s e e t h e TEXTSCAN d o c u m e n t a t i o n . f o r m a t S p e c = ’ %26 s %23 s %23 s %23 s%s %[ˆ\n\r ] ’ ;

%% O p e n t h e t e x t f i l e . f i l e I D = fopen( f i l e n a m e , ’ r ’ ) ;

%% R e a d c o l u m n s o f d a t a a c c o r d i n g t o f o r m a t s t r i n g .

% T h i s c a l l i s b a s e d o n t h e s t r u c t u r e o f t h e f i l e u s e d t o g e n e r a t e t h i s

% c o d e . I f a n e r r o r o c c u r s f o r a d i f f e r e n t f i l e , t r y r e g e n e r a t i n g t h e c o d e

% f r o m t h e I m p o r t T o o l .

t e x t s c a n ( f i l e I D , ’ %[ˆ\n\r ] ’ , s t a r t R o w−1 , ’ R e t u r n O n E r r o r ’ , f a l s e ) ;

d a t a A r r a y = t e x t s c a n ( f i l e I D , f o r m a t S p e c , ’ D e l i m i t e r ’ , ’ ’ , ’ W h i t e S p a c e ’ , ’ ’ , ’ R e t u r n O n E r r o r ’ , f a l s e ) ;

%% C l o s e t h e t e x t f i l e . f c l o s e( f i l e I D ) ;

%% C o n v e r t t h e c o n t e n t s o f c o l u m n s c o n t a i n i n g n u m e r i c s t r i n g s t o n u m b e r s .

% R e p l a c e n o n−n u m e r i c s t r i n g s w i t h NaN .

raw = r e p m a t ({’ ’},l e n g t h( d a t a A r r a y{1}) ,l e n g t h( d a t a A r r a y )−1 ) ; f o r c o l =1:l e n g t h( d a t a A r r a y )−1

raw ( 1 :l e n g t h( d a t a A r r a y{c o l}) , c o l ) = d a t a A r r a y{c o l};

end

n u m e r i c D a t a =NaN(s i z e( d a t a A r r a y{1}, 1 ) ,s i z e( d a t a A r r a y , 2 ) ) ;

f o r c o l = [ 1 , 2 , 3 , 4 , 5 ]

% C o n v e r t s s t r i n g s i n t h e i n p u t c e l l a r r a y t o n u m b e r s . R e p l a c e d n o n−n u m e r i c

% s t r i n g s w i t h NaN . rawData = d a t a A r r a y{c o l};

f o r row =1:s i z e( rawData , 1 ) ;

% C r e a t e a r e g u l a r e x p r e s s i o n t o d e t e c t a n d r e m o v e n o n−n u m e r i c p r e f i x e s a n d

% s u f f i x e s .

r e g e x s t r = ’ (?<p r e f i x>.∗?)(?<numbers>( [−]∗(\d + [\, ]∗) + [\. ]{0 , 1} \d∗[ eEdD ]{0 , 1}[−+ ]∗ \d∗[ i ]{0 , 1})|( [−]

∗(\d + [\, ]∗)∗[\. ]{1 , 1} \d +[eEdD ]{0 , 1}[−+ ]∗ \d∗[ i ]{0 , 1}) ) ( ?<s u f f i x>.∗) ’ ; t r y

r e s u l t = r e g e x p ( rawData{row}, r e g e x s t r , ’ names ’ ) ; numbers = r e s u l t . numbers ;

% D e t e c t e d c o m m a s i n n o n−t h o u s a n d l o c a t i o n s . i n v a l i d T h o u s a n d s S e p a r a t o r = f a l s e ;

i f any( numbers== ’ , ’ ) ;

t h o u s a n d s R e g E x p = ’ ˆ\d + ? (\,\d{3})∗ \.{0 , 1} \d∗$ ’ ; i f isempty( r e g e x p ( t h o u s a n d s R e g E x p , ’ , ’ , ’ o n c e ’ ) ) ;

numbers =NaN;

i n v a l i d T h o u s a n d s S e p a r a t o r = t r u e ; end

end

% C o n v e r t n u m e r i c s t r i n g s t o n u m b e r s . i f ˜ i n v a l i d T h o u s a n d s S e p a r a t o r ;

numbers = t e x t s c a n (s t r r e p( numbers , ’ , ’ , ’ ’ ) , ’%f ’ ) ; n u m e r i c D a t a ( row , c o l ) = numbers{1};

raw{row , c o l}= numbers{1};

end

c a t c h me end end end

%% R e p l a c e n o n−n u m e r i c c e l l s w i t h NaN

R = c e l l f u n (@( x ) ˜ i s n u m e r i c ( x ) && ˜ i s l o g i c a l ( x ) , raw ) ; % F i n d n o n−n u m e r i c c e l l s raw (R) ={NaN}; % R e p l a c e n o n−n u m e r i c c e l l s

%% A l l o c a t e i m p o r t e d a r r a y t o c o l u m n v a r i a b l e n a m e s Time = c e l l 2 m a t ( raw ( : , 1 ) ) ;

VarName2 = c e l l 2 m a t ( raw ( : , 2 ) ) ; VarName3 = c e l l 2 m a t ( raw ( : , 3 ) ) ; VarName4 = c e l l 2 m a t ( raw ( : , 4 ) ) ; S i g n a l = c e l l 2 m a t ( raw ( : , 5 ) ) ;

f o r c o l =1:l e n g t h( Time)−1

i f Time ( c o l )>= s t a r t t i m e s t a r t i n d e x = c o l ; break;

end end

%% A l l o c a t e i m p o r t e d a r r a y t o c o l u m n v a r i a b l e n a m e s

Time = Time s t a r t t i m e ; S i g n a l = S i g n a l / max( S i g n a l ) ;

%% F i t : ’ D o u b l e E x p o n e n t i a l ’ .

[ xData , yData ] = p r e p a r e C u r v e D a t a ( Time ( s t a r t i n d e x :end) , S i g n a l ( s t a r t i n d e x :end) ) ;

% S e t u p f i t t y p e a n d o p t i o n s . f t d o u b l e = f i t t y p e ( ’ e x p 2 ’ ) ; o p t s 2 = f i t o p t i o n s ( f t d o u b l e ) ; o p t s 2 . D i s p l a y = ’ O f f ’ ;

o p t s 2 . Lower = [−I n f −I n f −I n f −I n f] ; o p t s 2 . Upper = [I n f I n f I n f I n f] ;

% S e t u p f i t t y p e a n d o p t i o n s . f t s i n g l e = f i t t y p e ( ’ e x p 1 ’ ) ;

o p t s 1 = f i t o p t i o n s ( ’ Method ’ , ’ N o n l i n e a r L e a s t S q u a r e s ’ ) ; o p t s 1 . D i s p l a y = ’ O f f ’ ;

[ f i t r e s u l t 1 , g o f 1 ] = f i t ( xData , yData , f t s i n g l e , o p t s 1 ) ; f i t r e s u l t 1

g o f 1

% F i t m o d e l t o d a t a .

[ f i t r e s u l t 2 , g o f 2 ] = f i t ( xData , yData , f t d o u b l e , o p t s 2 ) ; f i t r e s u l t 2

g o f 2

i f ( g o f 1 . r s q u a r e < . 9 ) % i f w e d i d n ’ t g e t a g o o d f i t , t r y r e m o v i n g a l l t h e z e r o e s

f o r c o l =1:l e n g t h( yData )−1

i f yData ( c o l ) <= . 0 0 0 1 s t a r t i n d e x = c o l ; break;

end end

xData = xData ( 1 : s t a r t i n d e x ) ; yData = yData ( 1 : s t a r t i n d e x ) ;

o p t s 1 = f i t o p t i o n s ( f t s i n g l e ) ; o p t s 1 . D i s p l a y = ’ O f f ’ ;

[ f i t r e s u l t 1 , g o f 1 ] = f i t ( xData , yData , f t s i n g l e , o p t s 1 ) ; f i t r e s u l t 1

g o f 1

end

i f ( g o f 1 . r s q u a r e < . 9 ) % i f t h e s i n g l e e x p o n e n t i a l f i t i s g o o d , o u t p u t t h a t .

f p r i n t f( ’\nDOE : R2 %.3 f \nDOE : t a u 1 %.2 f u s \nDOE : t a u 2 %.2 f u s \nDOE : a %.2 f \nDOE : b %.2 f\n ’ , g o f 2 . r s q u a r e , −1/ f i t r e s u l t 2 . b 1 0 ˆ 6 , −1/ f i t r e s u l t 2 . d 1 0 ˆ 6 , f i t r e s u l t 2 . a , f i t r e s u l t 2 . c ) ; e l s e % O t h e r w i s e , o u t p u t t h e d o u b l e e x p o n e n t i a l f i t

f p r i n t f( ’\nDOE : R2 %.3 f \nDOE : t a u 1 %.2 f u s \nDOE : t a u 2 %.2 f u s \nDOE : a %.2 f \nDOE : b %.2 f\n ’ , g o f 1 . r s q u a r e , −1/ f i t r e s u l t 1 . b 1 0 ˆ 6 , 0 , f i t r e s u l t 1 . a , 2 7 ) ;

end

% P l o t f i t w i t h d a t a .

f i g u r e( ’ Name ’ , ’ u n t i t l e d f i t 1 ’ ) ; h = p l o t( f i t r e s u l t 1 , xData , yData ) ;

l e g e n d( h , ’ s i g n a l v s . t i m e ’ , ’ u n t i t l e d f i t 1 ’ , ’ L o c a t i o n ’ , ’ N o r t h E a s t ’ ) ;

% L a b e l a x e s x l a b e l( ’ t i m e ’ ) ; y l a b e l( ’ s i g n a l ’ ) ; g r i d on

Appendix C

Excel VBA Code for Limiting Efficiency Calculations

Listing C.1: Excel VBA Solver Code

Dim count Dim m i n e r r o r Dim m i n e r r o r r o w Dim s t a r t c o u n t Dim s t e p

S h e e t 6 .A c t i v a t e

m i n e r r o r = 5 s t a r t c o u n t = 3

For count= s t a r t c o u n t To s t a r t c o u n t + 5 ’ g e n e r a t e i n i t i a l s e e d g u e s s e s o v e r 5 o r d e r s o f m a g n i t u d e S h e e t 6 . Range ( ”E” & count) . V a l u e = 0 . 0 0 0 0 0 0 1 1 0 ˆ (count s t a r t c o u n t )

I f S h e e t 6 . Range ( ”N” &count) . V a l u e < m i n e r r o r Then ’ k e e p t r a c k o f t h e c l o s e s t s o l u t i o n m i n e r r o r = S h e e t 6 . Range ( ”N” &count) . V a l u e

m i n e r r o r r o w = count End I f

Next count

s t e p = 1 0

Do While ( m i n e r r o r > 0 . 0 0 1 ) ’ k e e p g e n e r a t i n g n e w g u e s s e s u n t i l e r r o r < 0 . 0 0 1

s t a r t c o u n t =count

For count = s t a r t c o u n t To s t a r t c o u n t + 2 0

S h e e t 6 . Range ( ”E” &count) . V a l u e = S h e e t 6 . Range ( ”E” & m i n e r r o r r o w ) . V a l u e 1 0 ˆ ( (count s t a r t c o u n t 1 0 ) / s t e p )

I f S h e e t 6 . Range ( ”N” & count) . V a l u e < m i n e r r o r Then ’ k e e p t r a c k o f t h e c l o s e s t s o l u t i o n m i n e r r o r = S h e e t 6 . Range ( ”N” & count) . V a l u e

m i n e r r o r r o w = count End I f

Next count s t e p = s t e p 1 0 Loop

’ c o p y s o l u t i o n s t o t h e r i g h t c e l l s

S h e e t 6 . Range ( ” C22 ” ) . V a l u e = S h e e t 6 . Range ( ”E” & m i n e r r o r r o w ) S h e e t 6 . Range ( ” C23 ” ) . V a l u e = S h e e t 6 . Range ( ”F” & m i n e r r o r r o w )

S h e e t 6 . Range ( ”E1 : N1” ) . V a l u e = S h e e t 6 . Range ( ”E” & m i n e r r o r r o w & ” : N” & m i n e r r o r r o w ) . V a l u e S h e e t 6 . Range ( ” B29 ” ) . V a l u e = S h e e t 6 . Range ( ” C24 ” ) . V a l u e / 1 0 0 0

’ i f w a n t e d , s o l v e f o r l i f e t i m e a n d v o l t a g e a t max p o w e r p o i n t .

’ T h i s s l o w s d o w n t h e c a l c u l a t i o n s f a i r l y s i g n i f i c a n t l y , t h o u g h .

’ S o l v e r O k S e t C e l l : = ”$C$2 9 ” , M a x M i n V a l : = 3 , V a l u e O f : = 0 ,

’ B y C h a n g e : = ”$B$2 9 ” , E n g i n e : = 1 , E n g i n e D e s c : = ” GRG N o n l i n e a r ”

’ S o l v e r S o l v e T r u e

’ A c t i v e S h e e t . R a n g e ( ” E ” & c o u n t + 1 ) . V a l u e = m i n e r r o r r o w

’ A c t i v e S h e e t . R a n g e ( ” E ” & c o u n t + 1 ) . N u m b e r F o r m a t = ” G e n e r a l ”

Listing C.2: VBA Code to Generate Sweeps

Sub Sweep ( )

’ S w e e p s t h i c k n e s s , a n d r e f i n e s t h e c a l c u l a t i o n a r o u n d t h e maximum e f f i c i e n c y t h i c k n e s s

Dim t h i c k n e s s Dim m a x e f f i c i e n c y

m a x e f f i c i e n c y = 0 t h i c k n e s s = 1 . 5 I n d e x = 3

Do While ( t h i c k n e s s < 1 0 0 0 )

S h e e t 1 . Range ( ”B” & I n d e x ) . V a l u e = t h i c k n e s s

S h e e t 6 . Range ( ” C10 ” ) . V a l u e = S h e e t 1 . Range ( ”B” & I n d e x ) . V a l u e Module1 . S o l v e r

S h e e t 1 . Range ( ”C” & I n d e x ) . V a l u e = S h e e t 6 . Range ( ” C27 ” ) . V a l u e ’ e f f i c i e n c y I f S h e e t 1 . Range ( ”C” & I n d e x ) . V a l u e > m a x e f f i c i e n c y Then

m a x e f f i c i e n c y = S h e e t 1 . Range ( ”C” & I n d e x ) . V a l u e m a x e f f i c i e n c y c e l l = I n d e x

m a x e f f i c i e n c y t h i c k n e s s = t h i c k n e s s End I f

S h e e t 1 . Range ( ”D” & I n d e x ) . V a l u e = S h e e t 6 . Range ( ” C24 ” ) . V a l u e ’ v o c S h e e t 1 . Range ( ”E” & I n d e x ) . V a l u e = S h e e t 6 . Range ( ” C17 ” ) . V a l u e ’ C u r r e n t

S h e e t 1 . Range ( ”F” & I n d e x ) . V a l u e = S h e e t 6 . Range ( ” C22 ” ) . V a l u e ’ E f f e c t i v e L i f e t m e S h e e t 1 . Range ( ”G” & I n d e x ) . V a l u e = S h e e t 6 . Range ( ” C23 ” ) . V a l u e ’ C a r r i e r C o n c e n t r a t i o n S h e e t 1 . Range ( ”H” & I n d e x ) . V a l u e = S h e e t 6 . Range ( ” B29 ” ) . V a l u e ’ V o l t a g e a t MPP

S h e e t 1 . Range ( ” I ” & I n d e x ) . V a l u e = S h e e t 6 . Range ( ” B30 ” ) . V a l u e ’ C a r r i e r C o n c e n t r a t i o n a t MPP t h i c k n e s s = Round ( t h i c k n e s s 1 . 1 , 1 )

I n d e x = I n d e x + 1 Loop

For t h i c k n e s s = Round ( m a x e f f i c i e n c y t h i c k n e s s , 0 ) 1 0 To Round ( m a x e f f i c i e n c y t h i c k n e s s , 0 ) + 1 0 S h e e t 1 . Range ( ”B” & I n d e x ) . V a l u e = t h i c k n e s s

S h e e t 6 . Range ( ” C10 ” ) . V a l u e = S h e e t 1 . Range ( ”B” & I n d e x ) . V a l u e Module1 . S o l v e r

S h e e t 1 . Range ( ”C” & I n d e x ) . V a l u e = S h e e t 6 . Range ( ” C27 ” ) . V a l u e ’ e f f i c i e n c y I f S h e e t 1 . Range ( ”C” & I n d e x ) . V a l u e > m a x e f f i c i e n c y Then

m a x e f f i c i e n c y = S h e e t 1 . Range ( ”C” & I n d e x ) . V a l u e m a x e f f i c i e n c y c e l l = I n d e x

m a x e f f i c i e n c y t h i c k n e s s = t h i c k n e s s End I f

S h e e t 1 . Range ( ”D” & I n d e x ) . V a l u e = S h e e t 6 . Range ( ” C24 ” ) . V a l u e ’ v o c S h e e t 1 . Range ( ”E” & I n d e x ) . V a l u e = S h e e t 6 . Range ( ” C17 ” ) . V a l u e ’ C u r r e n t

S h e e t 1 . Range ( ”F” & I n d e x ) . V a l u e = S h e e t 6 . Range ( ” C22 ” ) . V a l u e ’ E f f e c t i v e L i f e t m e S h e e t 1 . Range ( ”G” & I n d e x ) . V a l u e = S h e e t 6 . Range ( ” C23 ” ) . V a l u e ’ C a r r i e r C o n c e n t r a t i o n S h e e t 1 . Range ( ”H” & I n d e x ) . V a l u e = S h e e t 6 . Range ( ” B29 ” ) . V a l u e ’ V o l t a g e a t MPP

S h e e t 1 . Range ( ” I ” & I n d e x ) . V a l u e = S h e e t 6 . Range ( ” B30 ” ) . V a l u e ’ C a r r i e r C o n c e n t r a t i o n a t MPP

I n d e x = I n d e x + 1 Next t h i c k n e s s

S h e e t 1 . Range ( ”B1” ) . V a l u e = m a x e f f i c i e n c y t h i c k n e s s S h e e t 1 . Range ( ”C1” ) . V a l u e = m a x e f f i c i e n c y

S h e e t 1 .A c t i v a t e

End Sub

Sub SweepSRV ( )

DimSRV

SRV = 1 . 5 I n d e x = 3

Do While (SRV< 1 0 0 )

S h e e t 2 . Range ( ”B” & I n d e x ) . V a l u e = SRV

S h e e t 6 . Range ( ” C11 ” ) . V a l u e = S h e e t 2 . Range ( ”B” & I n d e x ) . V a l u e Module1 . S o l v e r

S h e e t 2 . Range ( ”C” & I n d e x ) . V a l u e = S h e e t 6 . Range ( ” C27 ” ) . V a l u e ’ e f f i c i e n c y

S h e e t 2 . Range ( ”D” & I n d e x ) . V a l u e = S h e e t 6 . Range ( ” C24 ” ) . V a l u e ’ v o c S h e e t 2 . Range ( ”E” & I n d e x ) . V a l u e = S h e e t 6 . Range ( ” C17 ” ) . V a l u e ’ C u r r e n t SRV = Round (SRV 1 . 1 , 1 )

I n d e x = I n d e x + 1 Loop

S h e e t 2 .A c t i v a t e

End Sub

Sub SweepParams ( )

’ g e n e r a t e s w e e p s f o r a n y p a r a m e t e r s , a s e n t e r e d i n t h e w o r k s h e e t

Dim RowIndex , ColumnIndex

Dim P a r a m e t e r s ( 1 To 5 ) As S t r i n g

For ColumnIndex = 1 To 5

I f ( S h e e t 3 . C e l l s ( 2 , ColumnIndex )<> ” ” ) Then S e l e c t Case S h e e t 3 . C e l l s ( 2 , ColumnIndex ) . V a l u e

Case ”SRH Tau”

P a r a m e t e r s ( ColumnIndex ) = ”C7”

Case ”Na”

P a r a m e t e r s ( ColumnIndex ) = ”C9”

Case ” T h i c k n e s s ”

P a r a m e t e r s ( ColumnIndex ) = ” C10 ”

Case ”SRV”

P a r a m e t e r s ( ColumnIndex ) = ” C11 ” Case ” I n t e r n a l C o n c e n t r a t i o n ”

P a r a m e t e r s ( ColumnIndex ) = ” C14 ” End S e l e c t

End I f

Next ColumnIndex

RowIndex = 3

Do While ( S h e e t 3 . Range ( ”B” & RowIndex ) )

For ColumnIndex = 1 To 5 ’ l e n g t h o f p a r a m e t e r s

S h e e t 6 . Range ( P a r a m e t e r s ( ColumnIndex ) ) . V a l u e = S h e e t 3 . C e l l s ( RowIndex , ColumnIndex ) . V a l u e

Next ColumnIndex

Module1 . S o l v e r

S h e e t 3 . C e l l s ( RowIndex , ColumnIndex + 1 ) . V a l u e = S h e e t 6 . Range ( ” C27 ” ) . V a l u e ’ e f f i c i e n c y S h e e t 3 . C e l l s ( RowIndex , ColumnIndex + 2 ) . V a l u e = S h e e t 6 . Range ( ” C24 ” ) . V a l u e ’ v o c S h e e t 3 . C e l l s ( RowIndex , ColumnIndex + 3 ) . V a l u e = S h e e t 6 . Range ( ” C17 ” ) . V a l u e ’ C u r r e n t

RowIndex = RowIndex + 1 Loop

S h e e t 3 .A c t i v a t e

End Sub

Sub SweepTwoParams ( )

’ g e n e r a t e s w e e p s f o r a n y t w o p a r a m e t e r s , a s e n t e r e d i n t h e w o r k s h e e t