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 atom_pop5(gcl3,excl3,cs12,cs13,cs14,cs15,cs23,cs24,cs25,cs34,cs35,
00161 cs45,a21,a31,a41,a51,a32,a42,a52,a43,a53,a54,p,dense.xIonDense[ipCHLORINE][2]);
00162
00163 CoolHeavy.Cl5539 = p[1]*a21*3.59e-12;
00164 CoolHeavy.Cl5519 = p[2]*a31*3.61e-12;
00165 CoolHeavy.Cl3354 = p[3]*a41*5.93e-12;
00166 CoolHeavy.Cl3344 = p[4]*a51*5.95e-12;
00167 CoolHeavy.Cl8504 = p[3]*a42*2.34e-12;
00168 CoolHeavy.Cl8436 = p[4]*a42*2.36e-12;
00169 CoolHeavy.Cl8552 = p[3]*a43*2.33e-12;
00170 CoolHeavy.Cl8483 = p[4]*a53*2.35e-12;
00171
00172
00173 CoolHeavy.c5525 = CoolHeavy.Cl5539 + CoolHeavy.Cl5519;
00174 CoolHeavy.c3350 = CoolHeavy.Cl3354 + CoolHeavy.Cl3344;
00175 CoolHeavy.c8494 = CoolHeavy.Cl8504 + CoolHeavy.Cl8436 + CoolHeavy.Cl8552 +
00176 CoolHeavy.Cl8483;
00177 thermal.dCooldT += CoolHeavy.c5525*(2.14e4*thermal.tsq1 - thermal.halfte);
00178 CoolAdd("Cl 3",5525,CoolHeavy.c5525);
00179 CoolAdd("Cl 3",3354,CoolHeavy.c3350);
00180 CoolAdd("Cl 3",8494,CoolHeavy.c8494);
00181
00182
00183
00184
00185 a21 = 0.251;
00186 cs12 = 6.437;
00187 a32 = 2.80;
00188 cs23 = MIN2(2.1,0.0450*phycon.te30*phycon.te03*phycon.te03);
00189 a31 = 2.50;
00190 cs13 = 1.922;
00191
00192 p3 = atom_pop3(9.,5.,1.,cs12,cs13,cs23,a21,a31,a32,2.24e4,3.11e4,&pop2,
00193 dense.xIonDense[ipCHLORINE][2],0.,0.,0.);
00194
00195 CoolHeavy.c8047 = pop2*a21*2.48e-12;
00196 CoolAdd("Cl 4",8047,CoolHeavy.c8047);
00197 thermal.dCooldT += CoolHeavy.c8047*(2.24e4*thermal.tsq1 - thermal.halfte);
00198
00199 CoolHeavy.c3119 = p3*a31*6.38e-12;
00200 CoolAdd("Cl 4",3119,CoolHeavy.c3119);
00201
00202 CoolHeavy.c5324 = p3*a32*3.74e-12;
00203 CoolAdd("Cl 4",5324,CoolHeavy.c5324);
00204
00205
00206 cs = MIN2(2.7,6.637/(phycon.te10*phycon.te03*phycon.te01));
00207 cs = MAX2(1.6,cs);
00208 PutCS(cs,&TauLines[ipCl04203]);
00209
00210 cs = MIN2(8.0,15.65/phycon.te10);
00211 PutCS(cs,&TauLines[ipCl04117]);
00212
00213 cs = MIN2(2.0,5.805/(phycon.te10*phycon.te03));
00214 PutCS(cs,&TauDummy);
00215
00216
00217 atom_level3(&TauLines[ipCl04203],&TauLines[ipCl04117],&TauDummy);
00218
00219
00220
00221
00222
00223
00224
00225
00226 if(phycon.te < 2.03E5)
00227 {
00228 cs = (realnum)(0.1175*phycon.te07*phycon.te004*phycon.te0001);
00229 }
00230 else if(phycon.te < 5.11E5)
00231 {
00232 cs = (realnum)((60.7989E-02)/(phycon.te05*phycon.te01*phycon.te0004));
00233 }
00234 else if(phycon.te < 1.284E6)
00235 {
00236 cs = (realnum)(0.274857);
00237 }
00238 else
00239 {
00240 cs = (realnum)(27.327963/(phycon.te30*phycon.te02*phycon.te007));
00241 }
00242
00243 PutCS(cs,&TauLines[ipCl973]);
00244 atom_level2(&TauLines[ipCl973]);
00245
00246
00247 cs = MIN2(0.187,6.686e-3*phycon.te30/phycon.te001);
00248 cs = MAX2(0.096,cs);
00249 PutCS(cs,&TauLines[ipCl1030]);
00250
00251 cs = MIN2(0.568,9.432e-3*phycon.te30*phycon.te03*
00252 phycon.te03/phycon.te003/phycon.te001);
00253 cs = MAX2(0.229,cs);
00254 PutCS(cs,&TauLines[ipCl1092]);
00255
00256 cs = MIN2(0.148,7.088e-4*phycon.sqrte/phycon.te03/
00257 phycon.te003/phycon.te003);
00258 cs = MAX2(0.048,cs);
00259 PutCS(cs,&TauDummy);
00260
00261 atom_level3(&TauLines[ipCl1092],&TauLines[ipCl1030],&TauDummy);
00262 return;
00263 }