00001 
00002 
00003 
00004 #include "cddefines.h"
00005 #include "trace.h"
00006 #include "dense.h"
00007 #include "ionbal.h"
00008 
00009 void IonAlumi(void)
00010 {
00011         const int NDIM = ipALUMINIUM+1;
00012 
00013         static const double dicoef[2][NDIM] = {
00014                 {5.5e-3,6.0e-3,7.5e-3,5.6e-3,1.2e-2,1.9e-2,1.6e-2,1.7e-2,4.4e-2,1.7e-2,3.0e-1,3.4e-0,0.},
00015                 {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}
00016         };
00017         static const double dite[2][NDIM] = {
00018                 {9.0e4,7.5e4,8.5e5,5.0e5,4.4e5,3.8e5,3.4e5,3.4e5,3.9e5,2.3e5,1.6e7,1.7e7,1e20},
00019                 {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}
00020         };
00021         static const double ditcrt[NDIM] = {8.0e3,7.0e3,1.2e5,7.0e4,6.5e4,5.5e4,
00022           5.5e4,5.5e4,5.8e4,4.0e4,2.9e6,5.5e6,1e20};
00023         static const double aa[NDIM] = {0.0219,0.7086,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00024         static const double bb[NDIM] = {-0.4528,-3.1083,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00025         static const double cc[NDIM] = {2.5427,7.0422,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00026         static const double dd[NDIM] = {-0.1678,0.5998,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00027         static const double ff[NDIM] = {0.2276,0.4194,0.1,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
00028 
00029         DEBUG_ENTRY( "IonAlumi()" );
00030 
00031         
00032 
00033         
00034 
00035 
00036         
00037         
00038 
00039 
00040         
00041 
00042         if( !dense.lgElmtOn[ipALUMINIUM] )
00043         {
00044                 return;
00045         }
00046 
00047         ion_zero(ipALUMINIUM);
00048 
00049         ion_photo(ipALUMINIUM,false);
00050 
00051         
00052         ion_collis(ipALUMINIUM);
00053 
00054         
00055         ion_recomb(false,(double*)dicoef,(double*)dite,ditcrt,aa,bb,cc,dd,ff,ipALUMINIUM);
00056 
00057         
00058         ion_solver(ipALUMINIUM,false);
00059 
00060         if( trace.lgTrace && trace.lgHeavyBug )
00061         {
00062                 fprintf( ioQQQ, "     IonAlumi returns; frac=" );
00063                 for( int i=0; i < 10; i++ )
00064                 {
00065                         fprintf( ioQQQ, "%10.3e", dense.xIonDense[ipALUMINIUM][i]/
00066                           dense.gas_phase[ipALUMINIUM] );
00067                 }
00068                 fprintf( ioQQQ, "\n" );
00069         }
00070         return;
00071 }