00001
00002
00003
00004 #include "cddefines.h"
00005 #include "taulines.h"
00006 #include "coolheavy.h"
00007 #include "dense.h"
00008 #include "phycon.h"
00009 #include "thermal.h"
00010 #include "lines_service.h"
00011 #include "atoms.h"
00012 #include "cooling.h"
00013
00014 void CoolChlo(void)
00015 {
00016 double a21,
00017 a31,
00018 a32,
00019 a41,
00020 a42,
00021 a43,
00022 a51,
00023 a52,
00024 a53,
00025 a54,
00026 cs,
00027 cs01,
00028 cs02,
00029 cs12,
00030 cs13,
00031 cs14,
00032 cs15,
00033 cs23,
00034 cs24,
00035 cs25,
00036 cs34,
00037 cs35,
00038 cs45,
00039 p[5],
00040 p3,
00041 tused;
00042 realnum
00043 p2,
00044 pop2,
00045 rate;
00046 static double gcl3[5]={4.,4.,6.,2.,4.};
00047 static double excl3[4]={18053.,66.,11693.,95.};
00048
00049 DEBUG_ENTRY( "CoolChlo()" );
00050
00051
00052
00053
00054 tused = MAX2( 30. , phycon.te );
00055 tused = MIN2( 3000. , phycon.te );
00056 tused /= 100.;
00057
00058
00059
00060
00061 rate = (realnum)( 4.7e-8 * dense.eden +
00062
00063
00064 8.3e-10*pow( tused , 0.17 ) * dense.xIonDense[ipHYDROGEN][0] );
00065
00066
00067 LineConvRate2CS( TauLines[ipCl1_11m] , SDIV(rate) );
00068 atom_level2(TauLines[ipCl1_11m]);
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079 cs12 = 17.5 / (phycon.te10*phycon.te04 );
00080
00081 PutCS( cs12 , TauLines[ipfsCl214] );
00082
00083
00084 cs01 = 4.85 / (phycon.te10*phycon.te02 );
00085 PutCS( cs01 , TauLines[ipfsCl233] );
00086
00087
00088
00089 cs02 = 4.51 / (phycon.te10*phycon.te04 );
00090 PutCS( cs02 , *TauDummy );
00091
00092
00093
00094 atom_level3(TauLines[ipfsCl214],TauLines[ipfsCl233],*TauDummy);
00095
00096
00097
00098
00099 a21 = 0.133;
00100 a31 = 1.33;
00101 a32 = 2.06;
00102 cs13 = 1.01;
00103
00104
00105
00106 cs23 = 1.49;
00107 cs12 = 8.389;
00108
00109 p3 = atom_pop3(9.,5.,1.,cs12,cs13,cs23,a21,a31,a32,1.576e4,23344.,
00110 &p2,dense.xIonDense[ipCHLORINE][1],0.,0.,0.);
00111
00112
00113
00114
00115 CoolHeavy.c8579 = p2*a21*2.32e-12;
00116 CoolAdd("Cl 2",8579,CoolHeavy.c8579);
00117
00118
00119 CoolHeavy.c6164 = p3*a32*3.23e-12;
00120 CoolAdd("Cl 2",6164,CoolHeavy.c6164);
00121
00122
00123 CoolHeavy.c3679 = p3*a31*5.41e-12;
00124 CoolAdd("Cl 2",3679,CoolHeavy.c3679);
00125
00126
00127
00128
00129
00130 cs12 = 1.26;
00131 a21 = 4.83e-3;
00132
00133 cs13 = 1.88;
00134 a31 = 7.04e-4;
00135
00136 cs14 = 0.627;
00137 a41 = 0.305;
00138
00139 cs15 = 1.26;
00140 a51 = 0.754;
00141
00142 cs23 = 3.19;
00143 a32 = 3.22e-6;
00144
00145 cs24 = 1.24;
00146 a42 = 0.303;
00147
00148 cs25 = 1.91;
00149 a52 = 0.323;
00150
00151 cs34 = 1.38;
00152 a43 = 0.100;
00153
00154 cs35 = 3.33;
00155 a53 = 0.316;
00156
00157 cs45 = 1.34;
00158 a54 = 7.65e-6;
00159
00160 double Cooling , CoolingDeriv;
00161 atom_pop5(gcl3,excl3,cs12,cs13,cs14,cs15,cs23,cs24,cs25,cs34,cs35,
00162 cs45,a21,a31,a41,a51,a32,a42,a52,a43,a53,a54,p,
00163 dense.xIonDense[ipCHLORINE][2] , &Cooling , &CoolingDeriv, 0.,0.,0.,0.);
00164
00165 CoolHeavy.Cl5539 = p[1]*a21*3.59e-12;
00166 CoolHeavy.Cl5519 = p[2]*a31*3.61e-12;
00167 CoolHeavy.Cl3354 = p[3]*a41*5.93e-12;
00168 CoolHeavy.Cl3344 = p[4]*a51*5.95e-12;
00169 CoolHeavy.Cl8504 = p[3]*a42*2.34e-12;
00170 CoolHeavy.Cl8436 = p[4]*a42*2.36e-12;
00171 CoolHeavy.Cl8552 = p[3]*a43*2.33e-12;
00172 CoolHeavy.Cl8483 = p[4]*a53*2.35e-12;
00173
00174
00175 CoolHeavy.c5525 = CoolHeavy.Cl5539 + CoolHeavy.Cl5519;
00176 CoolHeavy.c3350 = CoolHeavy.Cl3354 + CoolHeavy.Cl3344;
00177 CoolHeavy.c8494 = CoolHeavy.Cl8504 + CoolHeavy.Cl8436 + CoolHeavy.Cl8552 +
00178 CoolHeavy.Cl8483;
00179
00180
00181 CoolAdd("Cl 3",5525,Cooling);
00182 thermal.dCooldT += CoolingDeriv;
00183
00184
00185
00186
00187 a21 = 0.251;
00188 cs12 = 6.437;
00189 a32 = 2.80;
00190 cs23 = MIN2(2.1,0.0450*phycon.te30*phycon.te03*phycon.te03);
00191 a31 = 2.50;
00192 cs13 = 1.922;
00193
00194 p3 = atom_pop3(9.,5.,1.,cs12,cs13,cs23,a21,a31,a32,2.24e4,3.11e4,&pop2,
00195 dense.xIonDense[ipCHLORINE][2],0.,0.,0.);
00196
00197 CoolHeavy.c8047 = pop2*a21*2.48e-12;
00198 CoolAdd("Cl 4",8047,CoolHeavy.c8047);
00199 thermal.dCooldT += CoolHeavy.c8047*(2.24e4*thermal.tsq1 - thermal.halfte);
00200
00201 CoolHeavy.c3119 = p3*a31*6.38e-12;
00202 CoolAdd("Cl 4",3119,CoolHeavy.c3119);
00203
00204 CoolHeavy.c5324 = p3*a32*3.74e-12;
00205 CoolAdd("Cl 4",5324,CoolHeavy.c5324);
00206
00207
00208 cs = MIN2(2.7,6.637/(phycon.te10*phycon.te03*phycon.te01));
00209 cs = MAX2(1.6,cs);
00210 PutCS(cs,TauLines[ipCl04203]);
00211
00212 cs = MIN2(8.0,15.65/phycon.te10);
00213 PutCS(cs,TauLines[ipCl04117]);
00214
00215 cs = MIN2(2.0,5.805/(phycon.te10*phycon.te03));
00216 PutCS(cs,*TauDummy);
00217
00218
00219 atom_level3(TauLines[ipCl04203],TauLines[ipCl04117],*TauDummy);
00220
00221
00222
00223
00224
00225
00226
00227
00228 if(phycon.te < 2.03E5)
00229 {
00230 cs = (realnum)(0.1175*phycon.te07*phycon.te004*phycon.te0001);
00231 }
00232 else if(phycon.te < 5.11E5)
00233 {
00234 cs = (realnum)((60.7989E-02)/(phycon.te05*phycon.te01*phycon.te0004));
00235 }
00236 else if(phycon.te < 1.284E6)
00237 {
00238 cs = (realnum)(0.274857);
00239 }
00240 else
00241 {
00242 cs = (realnum)(27.327963/(phycon.te30*phycon.te02*phycon.te007));
00243 }
00244
00245 PutCS(cs,TauLines[ipCl973]);
00246 atom_level2(TauLines[ipCl973]);
00247
00248 return;
00249 }