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 EmLine * t2s2p,
00012 EmLine * 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->nelem -1 ][ t2s2p->IonStg-1 ] == 0. )
00044 {
00045 *cs2s2p = 1.;
00046 *cs2s3p = 1.;
00047
00048 DEBUG_EXIT( "ligbar()" );
00049 return;
00050 }
00051
00052 if( ized < 3 )
00053 {
00054
00055 fprintf( ioQQQ, " LIGBAR called with insane charge, ized=%4ld\n",
00056 ized );
00057 ShowMe();
00058 puts( "[Stop in LIGBAR]" );
00059 cdEXIT(EXIT_FAILURE);
00060 }
00061
00062 else if( ized == 6 )
00063 {
00064
00065 a = 0.292;
00066 b = 0.289;
00067 c = 2.67;
00068 }
00069
00070 else if( ized == 7 )
00071 {
00072
00073 a = 0.387;
00074 b = 0.247;
00075 c = 3.93;
00076 }
00077
00078 else if( ized == 8 )
00079 {
00080
00081 a = 0.40;
00082 b = 0.256;
00083 c = 4.12;
00084 }
00085
00086 else if( ized == 10 )
00087 {
00088
00089 a = 0.426;
00090 b = 0.273;
00091 c = 4.50;
00092 }
00093
00094 else if( ized == 12 )
00095 {
00096
00097 a = 0.45;
00098 b = 0.27;
00099 c = 5.0;
00100 }
00101
00102 else if( ized == 18 )
00103 {
00104
00105 a = 0.311;
00106 b = 0.294;
00107 c = 6.65;
00108 }
00109
00110 else if( ized == 26 )
00111 {
00112
00113 a = 0.435;
00114 b = 0.314;
00115 c = 6.92;
00116 }
00117
00118 else
00119 {
00120
00121 a = 0.6 - 1.5/((float)(ized) - 2.);
00122 b = 0.27;
00123 c = 5.;
00124 }
00125
00126
00127
00128 excit = t2s2p->EnergyK/phycon.te;
00129
00130
00131 gbar = a + b*log(1./excit+c);
00132
00133
00134 *cs2s2p = gbar*197.47*EVDEGK*t2s2p->gf/t2s2p->EnergyK;
00135
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
00169 *cs2s3p = gbar*197.47*EVDEGK*t2s3p->gf/t2s3p->EnergyK;
00170
00171
00172
00173 DEBUG_EXIT( "ligbar()" );
00174 return;
00175 }
00176