cloudy
trunk
|
00001 /* This file is part of Cloudy and is copyright (C)1978-2008 by Gary J. Ferland and 00002 * others. For conditions of distribution and use see copyright notice in license.txt */ 00003 /*CoolArgo compute argon cooling */ 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 /* Argon II 6.98 micron 00049 * trans prob from 00050 * >>refer Ar2 as Nussbaumer, H., & Storey, P.J. 1988, A&A, 200, L25 00051 * Y(ik) from 00052 * >>refer Ar2 cs Pelan, J., & Berrington, K.A. 1995, A&A Suppl, 110, 209 */ 00053 PutCS(3.1,&TauLines[ipTAr7]); 00054 atom_level2(&TauLines[ipTAr7]); 00055 00056 /* A III 7136, 7751, 3109, 5192 CS 00057 * >>refer ar3 cs Galavis, M.E., Mendoza, C., & Zeippen, C.J. 1995, A&AS, 111, 347 00058 * >>chng 97 mar 19, break up into three level atom */ 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 /* POP3(G1,G2,G3,O12,O13,O23,A21,A31,A32,E12,E23,P2,ABUND,GAM2) */ 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 /* add to deriv */ 00076 /* >>chng 01 mar 10, did not have second pair of lines included */ 00077 thermal.dCooldT += CoolHeavy.c7136*1.955e4*thermal.tsq1 + 00078 (CoolHeavy.c5192+CoolHeavy.c3109)*4.73e4*thermal.tsq1; 00079 00080 /* Ar III 21.8(J=0,1), 9.0 (J=1,2) mircon lines, 00081 * >>refer ar3 cs Galavis, M.E., Mendoza, C., & Zeippen, C.J. 1995, A&AS, 111, 347 */ 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 /* Argon IV 4711+4740, 7335 lines (O II like) 00098 * CS from 00099 * >>refer ar4 cs Zeippen, C.J., Le Bourlot, J., Butler, K. 1987, A&A, 188, 251 00100 * >>chng 97 jan 31, increase to full 5 level atom 00101 * Ar IV, cs data from 00102 * >>refer ar4 cs Ramsbottom, C.A., Bell., K.L., & Keenan, F.P., 1997, 00103 * >>refercon MNRAS 284, 754 00104 * differs by 2-3x from older values 00105 * temp dependence form 00106 *>>refer ar4 cs Ramsbottom, C.A., & Bell, K.L. 1997, At. Data Nucl. Data Tables, 66, 65 */ 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 /* FIVEL( G(1-5) , ex(wn,1-5), cs12,cs13,14,15,23,24,25,34,35,45, 00146 * A21,31,41,51,32,42,52,43,53,54, pop(1-5), abund) */ 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 /* Argon V 6435+7007, 00168 * >>refer Ar5 as Mendoza, C., & Zeippen, C.J. 1982, MNRAS, 199, 1025 00169 * >>refer Ar5 cs Galavis, M.E., Mendoza, C., & Zeippen, C.J. 1995, A&AS, 111, 347 00170 * POPEXC( O12,g1,g2,A21,excit,abund); result already*a21, excit in Kelvin */ 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 /* >>chng 01 mar 10, convert from 2 to 3 level atom */ 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 /* add to deriv */ 00198 /* >>chng 01 mar 10, did not have second pair of lines included */ 00199 thermal.dCooldT += CoolHeavy.c7007*2.055e4*thermal.tsq1 + 00200 (CoolHeavy.c4626+CoolHeavy.c2691)*5.17e4*thermal.tsq1; 00201 00202 /* Ar V 3P fine structure lines , A from 00203 * >>refer Ar5 as Mendoza, C. 1982, in Planetary Nebulae, IAU Symp No. 103, 00204 * >>refercon ed by D.R. Flower, (D. Reidel: Holland), 143 00205 * >>refer Ar5 cs Galavis, M.E., Mendoza, C., & Zeippen, C.J. 1995, A&AS, 111, 347 */ 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 /* [Ar VI] 4.53 micron, cs from 00219 * >>refer ar6 cs Saraph, H.E., & Storey, P.J. A&AS, 115, 151 00220 * >>chng 96 dec 11, cs should have been 6.33, caught by Simon Casassus */ 00221 PutCS(6.33,&TauLines[ipAr06453]); 00222 00223 atom_level2(&TauLines[ipAr06453]); 00224 00225 /* [ArX] 5533.4A 00226 * >>refer Ar10 cs Saraph, H.E. & Tully, J.A. 1994, A&AS, 107, 29 */ 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 /* [Ar XI] 2.60, microns, 6917A */ 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 /* Ar 14 4413, wavelength+a from 00251 * >>refer Ar14 as Froese Fischer, C. 1983, J.Phys. B, 16, 157 00252 * >>chng 04 apr 27, update collision strength from guess of 0.2 to data from 00253 * >>refer Ar14 cs Keenan, F.P., Katsiyannis, A.C., Reid, R.H.G., Pradhan, A.K., 00254 * >>refercon Zhang, H.L., 2003, MNRAS, 345, 58-62 00255 * this is for very high temperatures, lowest given is 1.5 million K */ 00256 cs = 0.31; 00257 /* following is good fit between T=1.5e6 to 8.5e6 */ 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 /* Ar 15 409A, Be seq interpolated lambda, cs, A. */ 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 /* Ar 16 365, 25, Li Seq 00271 * >>refer ar16 ?? Cochrane, D.M., & McWhirter, R.W.P. 1983, PhyS, 28, 25 */ 00272 ligbar(18,&TauLines[ipT354],&TauLines[ipT25],&cs2s2p,&cs2s3p); 00273 00274 PutCS(cs2s2p,&TauLines[ipT354]); 00275 atom_level2(&TauLines[ipT354]); 00276 00277 /* funny factor (should have been 0.5) due to energy change */ 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 }