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 atom_pop5(gAr4,exAr4,cs12,cs13,cs14,cs15,cs23,cs24,cs25,cs34,cs35,
00148 cs45,a12,a13,a14,a15,a23,a24,a25,a34,a35,a45,p,dense.xIonDense[ipARGON][3]);
00149 CoolHeavy.Ar4740 = p[1]*a12*4.20e-12;
00150 CoolHeavy.Ar4711 = p[2]*a13*4.20e-12;
00151 CoolHeavy.Ar2868 = p[3]*a14*6.94e-12;
00152 CoolHeavy.Ar2854 = p[4]*a15*6.94e-12;
00153 CoolHeavy.Ar7263 = p[3]*a24*2.74e-12;
00154 CoolHeavy.Ar7171 = p[4]*a25*2.74e-12;
00155 CoolHeavy.Ar7331 = p[3]*a34*2.74e-12;
00156 CoolHeavy.Ar7237 = p[4]*a35*2.74e-12;
00157 thermal.dCooldT += (CoolHeavy.Ar4740 + CoolHeavy.Ar4711)*(3.04e4*
00158 thermal.tsq1 - thermal.halfte);
00159 thermal.dCooldT += (CoolHeavy.Ar2868 + CoolHeavy.Ar2854 + CoolHeavy.Ar7263 +
00160 CoolHeavy.Ar7171 + CoolHeavy.Ar7331 + CoolHeavy.Ar7237)*(5.02e4*
00161 thermal.tsq1 - thermal.halfte);
00162 CoolAdd("Ar 4",7335,CoolHeavy.Ar7263+CoolHeavy.Ar7171+CoolHeavy.Ar7331+
00163 CoolHeavy.Ar7237);
00164 CoolAdd("Ar 4",4740,CoolHeavy.Ar4740+CoolHeavy.Ar4711);
00165 CoolAdd("Ar 4",2868,CoolHeavy.Ar2868+CoolHeavy.Ar2854);
00166
00167
00168
00169
00170
00171 if( phycon.te < 1e4 )
00172 {
00173 cs12 = 3.09f;
00174 }
00175 else
00176 {
00177 cs12 = (realnum)MIN2(4.454,0.634*phycon.te20/phycon.te03*phycon.te001*
00178 phycon.te001);
00179 }
00180 cs13 = 0.56f;
00181 cs23 = 1.65f;
00182 a12 = 0.68f;
00183 a13 = 6.55f;
00184 a23 = 3.35f;
00185
00186
00187 popn3 = (realnum)(atom_pop3(9.,5.,1.,cs12,cs13,cs23,a12,a13,a23,2.055e4,3.110e4,
00188 &pop2,dense.xIonDense[ipARGON][4],0.,0.,0.));
00189 CoolHeavy.c7007 = pop2*a12*2.84e-12;
00190 CoolHeavy.c4626 = popn3*a23*4.30e-12;
00191 CoolHeavy.c2691 = popn3*a13*7.39e-12;
00192
00193 CoolAdd("Ar 5",7007,CoolHeavy.c7007);
00194 CoolAdd("Ar 5",4626,CoolHeavy.c4626);
00195 CoolAdd("Ar 5",2691,CoolHeavy.c2691);
00196
00197
00198
00199 thermal.dCooldT += CoolHeavy.c7007*2.055e4*thermal.tsq1 +
00200 (CoolHeavy.c4626+CoolHeavy.c2691)*5.17e4*thermal.tsq1;
00201
00202
00203
00204
00205
00206 cs = MIN2(3.26,26.27/(phycon.te20*phycon.te03*phycon.te01*
00207 phycon.te003));
00208 PutCS(cs,&TauLines[ipTAr13]);
00209
00210 cs = MIN2(8.47,44.31/(phycon.te20/phycon.te003/phycon.te003));
00211 PutCS(cs,&TauLines[ipTAr8]);
00212
00213 cs = MIN2(1.95,7.280/(phycon.te10*phycon.te05*phycon.te005));
00214 PutCS(cs,&TauDummy);
00215
00216 atom_level3(&TauLines[ipTAr13],&TauLines[ipTAr8],&TauDummy);
00217
00218
00219
00220
00221 PutCS(6.33,&TauLines[ipAr06453]);
00222
00223 atom_level2(&TauLines[ipAr06453]);
00224
00225
00226
00227 cs = MIN2(0.573,20.05/(phycon.te30*phycon.te03*phycon.te005));
00228 PutCS(cs,&TauLines[ipAr1055]);
00229
00230 atom_level2(&TauLines[ipAr1055]);
00231
00232
00233 cs = MIN2(0.207,2.685e-3*phycon.te20*phycon.te20*
00234 phycon.te001*phycon.te001);
00235 cs = MAX2(0.09,cs);
00236 PutCS(cs,&TauLines[ipAr1126]);
00237
00238 cs = MIN2(0.64,0.0127*phycon.te30*phycon.te05*phycon.te001*
00239 phycon.te001);
00240 cs = MAX2(0.25,cs);
00241 PutCS(cs,&TauLines[ipAr1178]);
00242
00243 cs = MIN2(0.17,2.789e-3*phycon.te30*phycon.te05*
00244 phycon.te02/phycon.te003);
00245 cs = MAX2(0.06,cs);
00246 PutCS(cs,&TauDummy);
00247
00248 atom_level3(&TauLines[ipAr1126],&TauLines[ipAr1178],&TauDummy);
00249
00250
00251
00252
00253
00254
00255
00256 cs = 0.31;
00257
00258 if( phycon.te > 1e6 )
00259 cs = 1235.6 / ( phycon.sqrte*phycon.te10);
00260
00261 CoolHeavy.fs4413 = atom_pop2(cs,2.,4.,105.,3.259e4,dense.xIonDense[ipARGON][13])*
00262 4.51e-12;
00263 CoolAdd("Ar14",4413,CoolHeavy.fs4413);
00264
00265
00266 CoolHeavy.c409 = atom_pop2(0.1,1.,9.,1.1e6,3.52e5,dense.xIonDense[ipARGON][14])*
00267 4.86e-11;
00268 CoolAdd("Ar15",409,CoolHeavy.c409);
00269
00270
00271
00272 ligbar(18,&TauLines[ipT354],&TauLines[ipT25],&cs2s2p,&cs2s3p);
00273
00274 PutCS(cs2s2p,&TauLines[ipT354]);
00275 atom_level2(&TauLines[ipT354]);
00276
00277
00278 PutCS(cs2s2p*0.454,&TauLines[ipT389]);
00279 atom_level2(&TauLines[ipT389]);
00280
00281 PutCS(cs2s3p,&TauLines[ipT25]);
00282 atom_level2(&TauLines[ipT25]);
00283 return;
00284 }