00001
00002
00003
00004 #include "cddefines.h"
00005 #include "coolheavy.h"
00006 #include "phycon.h"
00007 #include "ligbar.h"
00008 #include "taulines.h"
00009 #include "dense.h"
00010 #include "thermal.h"
00011 #include "lines_service.h"
00012 #include "atoms.h"
00013 #include "cooling.h"
00014
00015 void CoolArgo(void)
00016 {
00017 realnum a12,
00018 a13,
00019 a14,
00020 a15,
00021 a23,
00022 a24,
00023 a25,
00024 a34,
00025 a35,
00026 a45,
00027 cs12,
00028 cs13,
00029 cs14,
00030 cs15,
00031 cs23,
00032 cs24,
00033 cs25,
00034 cs34,
00035 cs35,
00036 cs45,
00037 pop2,
00038 popn3;
00039 double cs2s2p,
00040 cs,
00041 cs2s3p,
00042 p[5];
00043 static double gAr4[5]={4.,4.,6.,2.,4.};
00044 static double exAr4[4]={21090.4,128.9,13636.2,177.1};
00045
00046 DEBUG_ENTRY( "CoolArgo()" );
00047
00048
00049
00050
00051
00052
00053 PutCS(3.1,&TauLines[ipTAr7]);
00054 atom_level2(&TauLines[ipTAr7]);
00055
00056
00057
00058
00059 cs12 = 4.825f;
00060 cs13 = 0.841f;
00061 cs23 = (realnum)MIN2(1.30,3.296/(phycon.te10*phycon.te01/phycon.te001/
00062 phycon.te001));
00063 a12 = 0.3963f;
00064 a23 = 2.59f;
00065 a13 = 3.952f;
00066
00067 popn3 = (realnum)(atom_pop3(9.,5.,1.,cs12,cs13,cs23,a12,a13,a23,1.955e4,2.770e4,
00068 &pop2,dense.xIonDense[ipARGON][2],0.,0.,0.));
00069 CoolHeavy.c7136 = pop2*a12*2.7e-12;
00070 CoolHeavy.c5192 = popn3*a23*3.83e-12;
00071 CoolHeavy.c3109 = popn3*a13*6.40e-12;
00072 CoolAdd("Ar 3",7136,CoolHeavy.c7136);
00073 CoolAdd("Ar 3",5192,CoolHeavy.c5192);
00074 CoolAdd("Ar 3",3109,CoolHeavy.c3109);
00075
00076
00077 thermal.dCooldT += CoolHeavy.c7136*1.955e4*thermal.tsq1 +
00078 (CoolHeavy.c5192+CoolHeavy.c3109)*4.73e4*thermal.tsq1;
00079
00080
00081
00082 PutCS(3.1,&TauLines[ipTAr9]);
00083 cs = MIN2(1.384,3.110/(phycon.te10/phycon.te001*phycon.te001));
00084 PutCS(cs,&TauLines[ipTAr22]);
00085 if( phycon.te < 1e4 )
00086 {
00087 cs = 0.671;
00088 }
00089 else
00090 {
00091 cs = MIN2(0.906,0.150*phycon.te20/phycon.te02/phycon.te02*
00092 phycon.te003);
00093 }
00094 PutCS(cs,&TauDummy);
00095 atom_level3(&TauLines[ipTAr9],&TauLines[ipTAr22],&TauDummy);
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107 cs12 = (realnum)MAX2(0.761,0.481*phycon.te05);
00108 cs12 = (realnum)MIN2(0.853,cs12);
00109 a12 = 2.23e-2f;
00110
00111 cs13 = (realnum)MAX2(1.14,0.719*phycon.te05);
00112 cs13 = (realnum)MIN2(1.3,cs13);
00113 a13 = 1.77e-3f;
00114
00115 cs14 = (realnum)MAX2(0.39,0.108*phycon.te10*phycon.te02*phycon.te02);
00116 cs14 = (realnum)MIN2(0.5,cs14);
00117 a14 = 0.862f;
00118
00119 cs15 = (realnum)MAX2(0.78,0.216*phycon.te10*phycon.te02*phycon.te02);
00120 cs15 = (realnum)MIN2(1.0,cs15);
00121 a15 = 2.11f;
00122
00123 cs23 = 7.06f;
00124 a23 = 2.30e-5f;
00125
00126 cs24 = (realnum)MAX2(1.53,0.346*phycon.te10*phycon.te05);
00127 cs24 = (realnum)MIN2(1.96,cs24);
00128 a24 = 0.603f;
00129
00130 cs25 = (realnum)MAX2(2.18,0.664*phycon.te10*phycon.te02);
00131 cs25 = (realnum)MIN2(2.65,cs25);
00132 a25 = 0.789f;
00133
00134 cs34 = (realnum)MAX2(1.56,0.475*phycon.te10*phycon.te02);
00135 cs34 = (realnum)MIN2(1.89,cs34);
00136 a34 = 0.119f;
00137
00138 cs35 = (realnum)MAX2(4.01,1.00*phycon.te10*phycon.te02*phycon.te02);
00139 cs35 = (realnum)MIN2(5.03,cs35);
00140 a35 = 0.598f;
00141
00142 cs45 = (realnum)(0.0359*phycon.te20*phycon.te20*phycon.te02*phycon.te02);
00143 a45 = 4.94e-5f;
00144
00145
00146
00147 double Cooling;
00148 double CoolingDeriv;
00149 atom_pop5(gAr4,exAr4,cs12,cs13,cs14,cs15,cs23,cs24,cs25,cs34,cs35,
00150 cs45,a12,a13,a14,a15,a23,a24,a25,a34,a35,a45,p,
00151 dense.xIonDense[ipARGON][3],&Cooling , &CoolingDeriv, 0.,0.,0.,0.);
00152 CoolHeavy.Ar4740 = p[1]*a12*4.20e-12;
00153 CoolHeavy.Ar4711 = p[2]*a13*4.20e-12;
00154 CoolHeavy.Ar2868 = p[3]*a14*6.94e-12;
00155 CoolHeavy.Ar2854 = p[4]*a15*6.94e-12;
00156 CoolHeavy.Ar7263 = p[3]*a24*2.74e-12;
00157 CoolHeavy.Ar7171 = p[4]*a25*2.74e-12;
00158 CoolHeavy.Ar7331 = p[3]*a34*2.74e-12;
00159 CoolHeavy.Ar7237 = p[4]*a35*2.74e-12;
00160
00161
00162 CoolAdd("Ar 4",4740,Cooling);
00163 thermal.dCooldT += CoolingDeriv;
00164
00165
00166
00167
00168
00169 if( phycon.te < 1e4 )
00170 {
00171 cs12 = 3.09f;
00172 }
00173 else
00174 {
00175 cs12 = (realnum)MIN2(4.454,0.634*phycon.te20/phycon.te03*phycon.te001*
00176 phycon.te001);
00177 }
00178 cs13 = 0.56f;
00179 cs23 = 1.65f;
00180 a12 = 0.68f;
00181 a13 = 6.55f;
00182 a23 = 3.35f;
00183
00184
00185 popn3 = (realnum)(atom_pop3(9.,5.,1.,cs12,cs13,cs23,a12,a13,a23,2.055e4,3.110e4,
00186 &pop2,dense.xIonDense[ipARGON][4],0.,0.,0.));
00187 CoolHeavy.c7007 = pop2*a12*2.84e-12;
00188 CoolHeavy.c4626 = popn3*a23*4.30e-12;
00189 CoolHeavy.c2691 = popn3*a13*7.39e-12;
00190
00191 CoolAdd("Ar 5",7007,CoolHeavy.c7007);
00192 CoolAdd("Ar 5",4626,CoolHeavy.c4626);
00193 CoolAdd("Ar 5",2691,CoolHeavy.c2691);
00194
00195
00196
00197 thermal.dCooldT += CoolHeavy.c7007*2.055e4*thermal.tsq1 +
00198 (CoolHeavy.c4626+CoolHeavy.c2691)*5.17e4*thermal.tsq1;
00199
00200
00201
00202
00203
00204 cs = MIN2(3.26,26.27/(phycon.te20*phycon.te03*phycon.te01*
00205 phycon.te003));
00206 PutCS(cs,&TauLines[ipTAr13]);
00207
00208 cs = MIN2(8.47,44.31/(phycon.te20/phycon.te003/phycon.te003));
00209 PutCS(cs,&TauLines[ipTAr8]);
00210
00211 cs = MIN2(1.95,7.280/(phycon.te10*phycon.te05*phycon.te005));
00212 PutCS(cs,&TauDummy);
00213
00214 atom_level3(&TauLines[ipTAr13],&TauLines[ipTAr8],&TauDummy);
00215
00216
00217
00218
00219 PutCS(6.33,&TauLines[ipAr06453]);
00220
00221 atom_level2(&TauLines[ipAr06453]);
00222
00223
00224
00225 cs = MIN2(0.573,20.05/(phycon.te30*phycon.te03*phycon.te005));
00226 PutCS(cs,&TauLines[ipAr1055]);
00227
00228 atom_level2(&TauLines[ipAr1055]);
00229
00230
00231 cs = MIN2(0.207,2.685e-3*phycon.te20*phycon.te20*
00232 phycon.te001*phycon.te001);
00233 cs = MAX2(0.09,cs);
00234 PutCS(cs,&TauLines[ipAr1126]);
00235
00236 cs = MIN2(0.64,0.0127*phycon.te30*phycon.te05*phycon.te001*
00237 phycon.te001);
00238 cs = MAX2(0.25,cs);
00239 PutCS(cs,&TauLines[ipAr1178]);
00240
00241 cs = MIN2(0.17,2.789e-3*phycon.te30*phycon.te05*
00242 phycon.te02/phycon.te003);
00243 cs = MAX2(0.06,cs);
00244 PutCS(cs,&TauDummy);
00245
00246 atom_level3(&TauLines[ipAr1126],&TauLines[ipAr1178],&TauDummy);
00247
00248
00249
00250
00251
00252
00253
00254 cs = 0.31;
00255
00256 if( phycon.te > 1e6 )
00257 cs = 1235.6 / ( phycon.sqrte*phycon.te10);
00258
00259 CoolHeavy.fs4413 = atom_pop2(cs,2.,4.,105.,3.259e4,dense.xIonDense[ipARGON][13])*
00260 4.51e-12;
00261 CoolAdd("Ar14",4413,CoolHeavy.fs4413);
00262
00263
00264 CoolHeavy.c409 = atom_pop2(0.1,1.,9.,1.1e6,3.52e5,dense.xIonDense[ipARGON][14])*
00265 4.86e-11;
00266 CoolAdd("Ar15",409,CoolHeavy.c409);
00267
00268
00269
00270 ligbar(18,&TauLines[ipT354],&TauLines[ipT25],&cs2s2p,&cs2s3p);
00271
00272 PutCS(cs2s2p,&TauLines[ipT354]);
00273 atom_level2(&TauLines[ipT354]);
00274
00275
00276 PutCS(cs2s2p*0.454,&TauLines[ipT389]);
00277 atom_level2(&TauLines[ipT389]);
00278
00279 PutCS(cs2s3p,&TauLines[ipT25]);
00280 atom_level2(&TauLines[ipT25]);
00281 return;
00282 }