00001
00002
00003
00004 #include "cddefines.h"
00005 #include "dense.h"
00006 #include "ionbal.h"
00007
00008 void IonSilic(void)
00009 {
00010 const int NDIM = ipSILICON+1;
00011
00012 static const double dicoef[2][NDIM] = {
00013 {1.10e-3,5.87e-3,5.03e-3,5.43e-3,8.86e-3,1.68e-2,2.49e-2,3.13e-2,
00014 4.25e-2,6.18e-2,1.38e-2,.327,.189,0.},
00015 {0.,.753,.188,.450,0.,1.80,1.88,2.01,1.22,.303,1.42,.306,.286,0.}
00016 };
00017 static const double dite[2][NDIM] = {
00018 {7.70e4,9.63e4,8.75e4,1.05e6,1.14e6,4.85e5,4.15e5,3.66e5,3.63e5,
00019 3.88e5,2.51e5,1.88e7,1.99e7,0.},
00020 {0.,6.46e4,4.71e4,7.98e5,0.,1.03e6,1.91e6,2.11e6,2.14e6,1.12e6,
00021 3.93e6,3.60e6,4.14e6,0.}
00022 };
00023 static const double ditcrt[NDIM] = {1.1e4,1.1e4,1.1e4,1.7e5,9.5e4,8.0e4,
00024 7.4e4,6.8e4,6.6e4,6.5e4,4.5e4,3.7e6,6.3e6,1e20};
00025 static const double aa[NDIM] = {-0.0219,3.2163,0.1203,0.,0.,0.,0.,0.,
00026 0.,0.,0.,0.,0.,0.};
00027 static const double bb[NDIM] = {0.4364,-12.0571,-2.6900,0.,0.,0.,0.,
00028 0.,0.,0.,0.,0.,0.,0.};
00029 static const double cc[NDIM] = {0.0684,16.2118,19.1943,0.,0.,0.,0.,
00030 0.,0.,0.,0.,0.,0.,0.};
00031 static const double dd[NDIM] = {-0.0032,-0.5886,-0.1479,0.,0.,0.,0.,
00032 0.,0.,0.,0.,0.,0.,0.};
00033 static const double ff[NDIM] = {0.1342,0.5613,0.1118,0.1,0.,0.,0.,0.,
00034 0.,0.,0.,0.,0.,0.};
00035
00036 bool lgPrtDebug=false;
00037
00038 DEBUG_ENTRY( "IonSilic()" );
00039
00040
00041 if( !dense.lgElmtOn[ipSILICON] )
00042 return;
00043
00044 ion_zero(ipSILICON);
00045
00046 ion_photo(ipSILICON,false);
00047
00048
00049 ion_collis(ipSILICON);
00050
00051
00052
00053 ion_recomb(false,(const double*)dicoef,(const double*)dite,ditcrt,aa,bb,cc,dd,ff,ipSILICON);
00054
00055
00056
00057
00058 ion_solver(ipSILICON,lgPrtDebug);
00059
00060 return;
00061 }