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