00001
00002
00003
00004 #include "cddefines.h"
00005 #include "dense.h"
00006 #include "trace.h"
00007 #include "iso.h"
00008 #include "ionbal.h"
00009
00010 void IonHelium( void )
00011 {
00012 bool lgDebugPrint=false;
00013
00014 DEBUG_ENTRY( "IonHelium()" );
00015
00016
00017 if( !dense.lgElmtOn[ipHELIUM] )
00018 {
00019 dense.xIonDense[ipHELIUM][0] = 0.;
00020 dense.xIonDense[ipHELIUM][1] = 0.;
00021 dense.xIonDense[ipHELIUM][2] = 0.;
00022
00023 DEBUG_EXIT( "IonHelium()" );
00024 return;
00025 }
00026
00027
00028
00029 if( dense.lgSetIoniz[ipHELIUM] )
00030 {
00031 dense.xIonDense[ipHELIUM][2] = dense.SetIoniz[ipHELIUM][2]*dense.gas_phase[ipHELIUM];
00032 dense.xIonDense[ipHELIUM][1] = dense.SetIoniz[ipHELIUM][1]*dense.gas_phase[ipHELIUM];
00033 dense.xIonDense[ipHELIUM][0] = dense.SetIoniz[ipHELIUM][0]*dense.gas_phase[ipHELIUM];
00034
00035 DEBUG_EXIT( "IonHelium()" );
00036 return;
00037 }
00038
00039 lgDebugPrint = false;
00040 # if 0
00041 if( nzone > 197 )
00042 lgDebugPrint = true;
00043 # endif
00044
00045
00046 ion_solver( ipHELIUM , lgDebugPrint );
00047
00048 if( trace.lgHeBug )
00049 {
00050 fprintf( ioQQQ, " IonHelium returns; He0:%.4e He+:%.4e He+2:%.4e",
00051 dense.xIonDense[ipHELIUM][0]/dense.gas_phase[ipHELIUM] ,
00052 dense.xIonDense[ipHELIUM][1]/dense.gas_phase[ipHELIUM] ,
00053 dense.xIonDense[ipHELIUM][2]/dense.gas_phase[ipHELIUM] );
00054
00055 fprintf( ioQQQ, " He+/0:%s %.2e smp:%.2e rec:%.2e ion:%.2e ",
00056 iso.chTypeAtomUsed[ipHE_LIKE][ipHELIUM],
00057 iso.pop_ion_ov_neut[ipHE_LIKE][ipHELIUM] ,
00058 iso.xIonSimple[ipHE_LIKE][ipHELIUM],
00059 ionbal.RateRecomTot[ipHELIUM][0],
00060 iso.RateLevel2Cont[ipHE_LIKE][ipHELIUM][ipH1s] );
00061
00062 fprintf( ioQQQ, " He+/+2:%s %.4e smp:%.4e rec:%.4e ion:%.4e rad rec:%.4e",
00063 iso.chTypeAtomUsed[ipH_LIKE][ipHELIUM],
00064 iso.pop_ion_ov_neut[ipH_LIKE][ipHELIUM] ,
00065 iso.xIonSimple[ipH_LIKE][ipHELIUM] ,
00066 ionbal.RateRecomTot[ipHELIUM][1],
00067 iso.RateLevel2Cont[ipH_LIKE][ipHELIUM][ipH1s] ,
00068 ionbal.RR_rate_coef_used[ipHELIUM][1] );
00069
00070 fprintf( ioQQQ, "\n" );
00071 }
00072
00073 DEBUG_EXIT( "IonHelium()" );
00074 return;
00075 }