1 /*****************************************************************************/
3 /* 8888888 88888888 88888888 */
6 /* 8 88888888 88888888 */
9 /* 888888 888888888 888888888 */
11 /* A Two-Dimensional General Purpose Semiconductor Simulator. */
13 /* GSS material database Version 0.4 */
14 /* Last update: Feb 17, 2006 */
18 /* NINT, No.69 P.O.Box, Xi'an City, China */
20 /*****************************************************************************/
22 // Material Type: TiSi2
24 // We do not have the real data for TiSi2, use parameters for Al instead
30 PetscScalar wavelength
;
31 PetscScalar RefractionIndexRe
;
32 PetscScalar RefractionIndexIm
;
37 {0.0165, 1.010, 0.024},
38 {0.0172, 1.020, 0.0035},
39 {0.0376, 0.902, 0.0102},
40 {0.0620, 0.668, 0.0268},
41 {0.0800, 0.258, 0.0777},
42 {0.1033, 0.0328, 0.791},
43 {0.1600, 0.0765, 1.740},
44 {0.2066, 0.130, 2.39},
45 {0.3000, 0.276, 3.61},
46 {0.4000, 0.490, 4.86},
47 {0.5000, 0.769, 6.08},
60 class GSS_TiSi2_Optical
: public PMIC_Optical
65 complex<PetscScalar
> RefractionIndex(PetscScalar lamda
, PetscScalar Eg
=0.0, PetscScalar Tl
=1.0) const
67 complex<PetscScalar
> n(1.0,0.0);
68 if(lamda
<Al
[0].wavelength
)
69 return complex<PetscScalar
> (Al
[0].RefractionIndexRe
,Al
[0].RefractionIndexIm
);
70 if(lamda
>Al
[table_size
-1].wavelength
)
71 return complex<PetscScalar
> (Al
[table_size
-1].RefractionIndexRe
,Al
[table_size
-1].RefractionIndexIm
);
72 for(int i
=0;i
<table_size
-1;i
++)
74 if(lamda
>=Al
[i
].wavelength
&& lamda
<=Al
[i
+1].wavelength
)
76 complex<PetscScalar
> n1(Al
[i
].RefractionIndexRe
,Al
[i
].RefractionIndexIm
);
77 complex<PetscScalar
> n2(Al
[i
+1].RefractionIndexRe
,Al
[i
+1].RefractionIndexIm
);
78 PetscScalar d1
= lamda
-Al
[i
].wavelength
;
79 PetscScalar d2
= Al
[i
+1].wavelength
-lamda
;
80 n
= (n1
*d2
+ n2
*d1
)/(d1
+d2
);
89 GSS_TiSi2_Optical(const PMIC_Environment
&env
):PMIC_Optical(env
)
91 table_size
= sizeof(Al
)/sizeof(table
);
92 //the wave length should be scaled
93 for(int i
=0;i
<table_size
;i
++)
99 ~GSS_TiSi2_Optical(){}
105 PMIC_Optical
* PMIC_TiSi2_Optical_Default (const PMIC_Environment
& env
)
107 return new GSS_TiSi2_Optical(env
);