00001 
00002 
00003 
00004 #include "cddefines.h"
00005 #include "physconst.h"
00006 #include "dense.h"
00007 #include "phycon.h"
00008 #include "ligbar.h"
00009 
00010 void ligbar(long int ized, 
00011   transition * t2s2p, 
00012   transition * t2s3p, 
00013   double *cs2s2p, 
00014   double *cs2s3p)
00015 {
00016         double a, 
00017           b, 
00018           c, 
00019           excit, 
00020           gbar;
00021 
00022         DEBUG_ENTRY( "ligbar()" );
00023 
00024         
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 
00039 
00040 
00041 
00042         
00043         if(dense.xIonDense[ t2s2p->Hi->nelem -1 ][ t2s2p->Hi->IonStg-1 ] == 0)
00044         {
00045                 *cs2s2p = 1.;
00046                 *cs2s3p = 1.;
00047                 return;
00048         }
00049 
00050         if( ized < 3 )
00051         {
00052                 
00053                 fprintf( ioQQQ, " LIGBAR called with insane charge, ized=%4ld\n", 
00054                   ized );
00055                 ShowMe();
00056                 cdEXIT(EXIT_FAILURE);
00057         }
00058 
00059         else if( ized == 6 )
00060         {
00061                 
00062                 a = 0.292;
00063                 b = 0.289;
00064                 c = 2.67;
00065         }
00066 
00067         else if( ized == 7 )
00068         {
00069                 
00070                 a = 0.387;
00071                 b = 0.247;
00072                 c = 3.93;
00073         }
00074 
00075         else if( ized == 8 )
00076         {
00077                 
00078                 a = 0.40;
00079                 b = 0.256;
00080                 c = 4.12;
00081         }
00082 
00083         else if( ized == 10 )
00084         {
00085                 
00086                 a = 0.426;
00087                 b = 0.273;
00088                 c = 4.50;
00089         }
00090 
00091         else if( ized == 12 )
00092         {
00093                 
00094                 a = 0.45;
00095                 b = 0.27;
00096                 c = 5.0;
00097         }
00098 
00099         else if( ized == 18 )
00100         {
00101                 
00102                 a = 0.311;
00103                 b = 0.294;
00104                 c = 6.65;
00105         }
00106 
00107         else if( ized == 26 )
00108         {
00109                 
00110                 a = 0.435;
00111                 b = 0.314;
00112                 c = 6.92;
00113         }
00114 
00115         else
00116         {
00117                 
00118                 a = 0.6 - 1.5/((realnum)(ized) - 2.);
00119                 b = 0.27;
00120                 c = 5.;
00121         }
00122 
00123         
00124 
00125         excit = t2s2p->EnergyK/phycon.te;
00126 
00127         
00128         gbar = a + b*log(1./excit+c);
00129 
00130         
00131         
00132 
00133 
00134          *cs2s2p = gbar*197.47*EVDEGK*t2s2p->Emis->gf/t2s2p->EnergyK;
00135         
00136 
00137 
00138 
00139 
00140 
00141 
00142 
00143         if( ized == 6 )
00144         {
00145                 *cs2s2p *= 1.08013;
00146         }
00147 
00148         else if( ized == 7 )
00149         {
00150                 *cs2s2p *= 1.00370;
00151         }
00152 
00153         else
00154         {
00155                 *cs2s2p *= 1.0357;
00156         }
00157 
00158 
00159         
00160         a = -0.244;
00161         b = 0.25;
00162         c = 4.;
00163 
00164         
00165         excit = t2s3p->EnergyK/phycon.te;
00166         gbar = a + b*log(1./excit+c);
00167         
00169      *cs2s3p = gbar*197.47*EVDEGK*t2s3p->Emis->gf/t2s3p->EnergyK;
00170         
00171 
00172         return;
00173 }