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 cs, p[5];
00040 static double gAr4[5]={4.,4.,6.,2.,4.};
00041 static double exAr4[4]={21090.4,128.9,13636.2,177.1};
00042
00043 DEBUG_ENTRY( "CoolArgo()" );
00044
00045
00046
00047
00048
00049
00050 PutCS(3.1,TauLines[ipTAr7]);
00051 atom_level2(TauLines[ipTAr7]);
00052
00053
00054
00055
00056 cs12 = 4.825f;
00057 cs13 = 0.841f;
00058 cs23 = (realnum)MIN2(1.30,3.296/(phycon.te10*phycon.te01/phycon.te001/
00059 phycon.te001));
00060 a12 = 0.3963f;
00061 a23 = 2.59f;
00062 a13 = 3.952f;
00063
00064 popn3 = (realnum)(atom_pop3(9.,5.,1.,cs12,cs13,cs23,a12,a13,a23,1.955e4,2.770e4,
00065 &pop2,dense.xIonDense[ipARGON][2],0.,0.,0.));
00066 CoolHeavy.c7136 = pop2*a12*2.7e-12;
00067 CoolHeavy.c5192 = popn3*a23*3.83e-12;
00068 CoolHeavy.c3109 = popn3*a13*6.40e-12;
00069 CoolAdd("Ar 3",7136,CoolHeavy.c7136);
00070 CoolAdd("Ar 3",5192,CoolHeavy.c5192);
00071 CoolAdd("Ar 3",3109,CoolHeavy.c3109);
00072
00073
00074 thermal.dCooldT += CoolHeavy.c7136*1.955e4*thermal.tsq1 +
00075 (CoolHeavy.c5192+CoolHeavy.c3109)*4.73e4*thermal.tsq1;
00076
00077
00078
00079 PutCS(3.1,TauLines[ipTAr9]);
00080 cs = MIN2(1.384,3.110/(phycon.te10/phycon.te001*phycon.te001));
00081 PutCS(cs,TauLines[ipTAr22]);
00082 if( phycon.te < 1e4 )
00083 {
00084 cs = 0.671;
00085 }
00086 else
00087 {
00088 cs = MIN2(0.906,0.150*phycon.te20/phycon.te02/phycon.te02*
00089 phycon.te003);
00090 }
00091 PutCS(cs,*TauDummy);
00092 atom_level3(TauLines[ipTAr9],TauLines[ipTAr22],*TauDummy);
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103 cs12 = (realnum)MAX2(0.761,0.481*phycon.te05);
00104 cs12 = (realnum)MIN2(0.853,cs12);
00105 a12 = 2.23e-2f;
00106
00107 cs13 = (realnum)MAX2(1.14,0.719*phycon.te05);
00108 cs13 = (realnum)MIN2(1.3,cs13);
00109 a13 = 1.77e-3f;
00110
00111 cs14 = (realnum)MAX2(0.39,0.108*phycon.te10*phycon.te02*phycon.te02);
00112 cs14 = (realnum)MIN2(0.5,cs14);
00113 a14 = 0.862f;
00114
00115 cs15 = (realnum)MAX2(0.78,0.216*phycon.te10*phycon.te02*phycon.te02);
00116 cs15 = (realnum)MIN2(1.0,cs15);
00117 a15 = 2.11f;
00118
00119 cs23 = 7.06f;
00120 a23 = 2.30e-5f;
00121
00122 cs24 = (realnum)MAX2(1.53,0.346*phycon.te10*phycon.te05);
00123 cs24 = (realnum)MIN2(1.96,cs24);
00124 a24 = 0.603f;
00125
00126 cs25 = (realnum)MAX2(2.18,0.664*phycon.te10*phycon.te02);
00127 cs25 = (realnum)MIN2(2.65,cs25);
00128 a25 = 0.789f;
00129
00130 cs34 = (realnum)MAX2(1.56,0.475*phycon.te10*phycon.te02);
00131 cs34 = (realnum)MIN2(1.89,cs34);
00132 a34 = 0.119f;
00133
00134 cs35 = (realnum)MAX2(4.01,1.00*phycon.te10*phycon.te02*phycon.te02);
00135 cs35 = (realnum)MIN2(5.03,cs35);
00136 a35 = 0.598f;
00137
00138 cs45 = (realnum)(0.0359*phycon.te20*phycon.te20*phycon.te02*phycon.te02);
00139 a45 = 4.94e-5f;
00140
00141
00142
00143 double Cooling;
00144 double CoolingDeriv;
00145 atom_pop5(gAr4,exAr4,cs12,cs13,cs14,cs15,cs23,cs24,cs25,cs34,cs35,
00146 cs45,a12,a13,a14,a15,a23,a24,a25,a34,a35,a45,p,
00147 dense.xIonDense[ipARGON][3],&Cooling , &CoolingDeriv, 0.,0.,0.,0.);
00148 CoolHeavy.Ar4740 = p[1]*a12*4.20e-12;
00149 CoolHeavy.Ar4711 = p[2]*a13*4.20e-12;
00150 CoolHeavy.Ar2868 = p[3]*a14*6.94e-12;
00151 CoolHeavy.Ar2854 = p[4]*a15*6.94e-12;
00152 CoolHeavy.Ar7263 = p[3]*a24*2.74e-12;
00153 CoolHeavy.Ar7171 = p[4]*a25*2.74e-12;
00154 CoolHeavy.Ar7331 = p[3]*a34*2.74e-12;
00155 CoolHeavy.Ar7237 = p[4]*a35*2.74e-12;
00156
00157
00158 CoolAdd("Ar 4",4740,Cooling);
00159 thermal.dCooldT += CoolingDeriv;
00160
00161
00162
00163
00164
00165 if( phycon.te < 1e4 )
00166 {
00167 cs12 = 3.09f;
00168 }
00169 else
00170 {
00171 cs12 = (realnum)MIN2(4.454,0.634*phycon.te20/phycon.te03*phycon.te001*
00172 phycon.te001);
00173 }
00174 cs13 = 0.56f;
00175 cs23 = 1.65f;
00176 a12 = 0.68f;
00177 a13 = 6.55f;
00178 a23 = 3.35f;
00179
00180
00181 popn3 = (realnum)(atom_pop3(9.,5.,1.,cs12,cs13,cs23,a12,a13,a23,2.055e4,3.110e4,
00182 &pop2,dense.xIonDense[ipARGON][4],0.,0.,0.));
00183 CoolHeavy.c7007 = pop2*a12*2.84e-12;
00184 CoolHeavy.c4626 = popn3*a23*4.30e-12;
00185 CoolHeavy.c2691 = popn3*a13*7.39e-12;
00186
00187 CoolAdd("Ar 5",7007,CoolHeavy.c7007);
00188 CoolAdd("Ar 5",4626,CoolHeavy.c4626);
00189 CoolAdd("Ar 5",2691,CoolHeavy.c2691);
00190
00191
00192
00193 thermal.dCooldT += CoolHeavy.c7007*2.055e4*thermal.tsq1 +
00194 (CoolHeavy.c4626+CoolHeavy.c2691)*5.17e4*thermal.tsq1;
00195
00196
00197
00198
00199
00200 cs = MIN2(3.26,26.27/(phycon.te20*phycon.te03*phycon.te01*
00201 phycon.te003));
00202 PutCS(cs,TauLines[ipTAr13]);
00203
00204 cs = MIN2(8.47,44.31/(phycon.te20/phycon.te003/phycon.te003));
00205 PutCS(cs,TauLines[ipTAr8]);
00206
00207 cs = MIN2(1.95,7.280/(phycon.te10*phycon.te05*phycon.te005));
00208 PutCS(cs,*TauDummy);
00209
00210 atom_level3(TauLines[ipTAr13],TauLines[ipTAr8],*TauDummy);
00211
00212
00213
00214
00215 PutCS(6.33,TauLines[ipAr06453]);
00216
00217 atom_level2(TauLines[ipAr06453]);
00218
00219 return;
00220 }