00001
00002
00003
00004 #include "cddefines.h"
00005 #include "dense.h"
00006 #include "trace.h"
00007 #include "conv.h"
00008 #include "iso.h"
00009 #include "ionbal.h"
00010 #include "taulines.h"
00011
00012 void IonHelium( void )
00013 {
00014 bool lgDebugPrint=false;
00015
00016 DEBUG_ENTRY( "IonHelium()" );
00017
00018
00019 if( !dense.lgElmtOn[ipHELIUM] )
00020 {
00021 dense.xIonDense[ipHELIUM][0] = 0.;
00022 dense.xIonDense[ipHELIUM][1] = 0.;
00023 dense.xIonDense[ipHELIUM][2] = 0.;
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 return;
00035 }
00036
00037 lgDebugPrint = false;
00038 # if 0
00039 if( nzone > 197 )
00040 lgDebugPrint = true;
00041 # endif
00042
00043
00044 ion_solver( ipHELIUM , lgDebugPrint );
00045
00046 if( trace.lgHeBug )
00047 {
00048 fprintf( ioQQQ, " %li IonHelium returns; nzone %ld He0:%.4e He+:%.4e He+2:%.4e\n",
00049 conv.nTotalIoniz ,
00050 nzone,
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+ /He0:%s smp:%.4e rec:%.4e ion:%.4e rad rec:%.4e 1s Pop:%.4e\n",
00056 iso.chTypeAtomUsed[ipHE_LIKE][ipHELIUM],
00057 iso.xIonSimple[ipHE_LIKE][ipHELIUM],
00058 ionbal.RateRecomTot[ipHELIUM][0],
00059 ionbal.RateIonizTot(ipHELIUM,0),
00060 ionbal.RR_rate_coef_used[ipHELIUM][0],
00061 StatesElemNEW[ipHELIUM][ipHELIUM-ipHE_LIKE][0].Pop );
00062
00063 fprintf( ioQQQ, " He+2/He+:%s smp:%.4e rec:%.4e ion:%.4e rad rec:%.4e\n",
00064 iso.chTypeAtomUsed[ipH_LIKE][ipHELIUM],
00065 iso.xIonSimple[ipH_LIKE][ipHELIUM] ,
00066 ionbal.RateRecomTot[ipHELIUM][1],
00067 ionbal.RateIonizTot(ipHELIUM,1),
00068 ionbal.RR_rate_coef_used[ipHELIUM][1] );
00069
00070 fprintf( ioQQQ, "\n" );
00071 }
00072 return;
00073 }