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 /*CoolChlo compute chlorine cooling */ 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 /* >>chng >>03 nov 09, add this line, from 00052 * >>refer Cl1 cs Hollenbach, D. & McKee, C.F. 1989, ApJ, 342, 306 */ 00053 /* rates are said to be ok over range 30 - 3000K */ 00054 tused = MAX2( 30. , phycon.te ); 00055 tused = MIN2( 3000. , phycon.te ); 00056 tused /= 100.; 00057 00058 /* HM89 give deexcitation rates, must convert into electron collision strength, as expected 00059 * by the code's infrastructure */ 00060 /* electron collision strength */ 00061 rate = (realnum)( 4.7e-8 * dense.eden + 00062 /* >>chng 05 jul 05, eden to cdsqte */ 00063 /*8.3e-10*pow( tused , 0.17 ) * dense.xIonDense[ipHYDROGEN][0]) / dense.eden);*/ 00064 8.3e-10*pow( tused , 0.17 ) * dense.xIonDense[ipHYDROGEN][0] ); 00065 /* possible for atomic hydrogen density to be vary small, causing zero rate coef, 00066 * which triggers thrown assert - guard against this */ 00067 LineConvRate2CS( &TauLines[ipCl1_11m] , SDIV(rate) ); 00068 atom_level2(&TauLines[ipCl1_11m]); 00069 00070 /* [Cl II] 14.3678 mic, 33.281 mic*/ 00071 /* >>refer cl2 as Mendoza, C., & Zeippen, C.J. 1983, MNRAS, 202, 981*/ 00072 /* the following cs were about 2x smaller */ 00073 /* >>referold cl2 cs Krueger, T.K., & Czyzak, S.J. 1970, Pro Roy Soc Lond, 318, 531 */ 00074 /* >>chgn 03 feb 24, change to following collision strengths */ 00075 /* >>refer cl2 cs Wilson, N.J., & Bell, K.L. 2002, MNRAS, 331, 389 */ 00076 /* order of 3P ground term, 2, 1, 0 from lowest to highest */ 00077 00078 /* this is the 3P J=1 -> 2, 14.4 micron line */ 00079 cs12 = 17.5 / (phycon.te10*phycon.te04 ); 00080 /*PutCS(2.17,&TauLines[ipfsCl214]);*/ 00081 PutCS( cs12 , &TauLines[ipfsCl214] ); 00082 00083 /* this is the 3P J=0 -> 1, 33.3 micron line */ 00084 cs01 = 4.85 / (phycon.te10*phycon.te02 ); 00085 PutCS( cs01 , &TauLines[ipfsCl233] ); 00086 /*PutCS(0.93,&TauLines[ipfsCl233]);*/ 00087 00088 /* the 0 - 2 transition */ 00089 cs02 = 4.51 / (phycon.te10*phycon.te04 ); 00090 PutCS( cs02 , &TauDummy ); 00091 /*PutCS(1.00,&TauDummy);*/ 00092 00093 /* atom_level3( t10,t21,t20) */ 00094 atom_level3(&TauLines[ipfsCl214],&TauLines[ipfsCl233],&TauDummy); 00095 00096 /* [Cl II] 8578.7, 9123.6, 6161.8, 3677.9 */ 00097 /* >>refer Cl2 As Mendoza, C., & Zeippen, C.J. 1983, MNRAS, 202, 981 */ 00098 /* following numbering in terms of level position, 1, 2, then 3 */ 00099 a21 = 0.133; 00100 a31 = 1.33; 00101 a32 = 2.06; 00102 cs13 = 1.01; 00103 /* this is 10x what is in the paper, as per comment made in 00104 * >>refer Cl2 cs Keenan, F.P., Aller, L.H., Exter, K.M., Hyung, S., & 00105 * >>refercon Pollacco, D.L. 2003, ApJ, 584, 385 */ 00106 cs23 = 1.49; 00107 cs12 = 8.389; 00108 /* POP3(G1,G2,G3,O12,O13,O23,A21,A31,A32,E12,E23,P2,ABUND,GAM2) */ 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 /*p3 = atom_pop3(9.,5.,1.,3.86,0.456,1.15,a21,a31,a32,1.576e4,23344., 00112 &p2,dense.xIonDense[ipCHLORINE][1],0.);*/ 00113 00114 /* [Cl II] 8578.7, 9123.6 doublet, both together */ 00115 CoolHeavy.c8579 = p2*a21*2.32e-12; 00116 CoolAdd("Cl 2",8579,CoolHeavy.c8579); 00117 00118 /* [Cl II] 6161.8 auroral line */ 00119 CoolHeavy.c6164 = p3*a32*3.23e-12; 00120 CoolAdd("Cl 2",6164,CoolHeavy.c6164); 00121 00122 /* [Cl II] 3677.9 */ 00123 CoolHeavy.c3679 = p3*a31*5.41e-12; 00124 CoolAdd("Cl 2",3679,CoolHeavy.c3679); 00125 00126 /* [Cl III] this is a [SII] - like doublet, vac lam=5519, 5539 00127 * all data from 00128 * >>refer cl3 all Mendoza, C. 1982, in Planetary Nebulae, IAU Symp No. 103, 00129 * >>refercon ed by D.R. Flower, (D. Reidel: Holland), 143 */ 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 /* following are whole multiplets */ 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 /* [CL IV], like [OIII] 00183 * cs from 00184 * >>refer cl4 cs Galavis, M.E., Mendoza, C., & Zeippen, C.J. 1995, A&AS, 111, 347 */ 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 /* POP3(G1,G2,G3,O12,O13,O23,A21,A31,A32,E12,E23,P2,ABUND,GAM2) */ 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 /* whole 2-1 transition */ 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 /* 3-1 transition */ 00199 CoolHeavy.c3119 = p3*a31*6.38e-12; 00200 CoolAdd("Cl 4",3119,CoolHeavy.c3119); 00201 /* 3-2 transition */ 00202 CoolHeavy.c5324 = p3*a32*3.74e-12; 00203 CoolAdd("Cl 4",5324,CoolHeavy.c5324); 00204 00205 /* [Cl IV] fine structure lines, 20.354, 11.741 microns */ 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 /* atom_level3( t10,t21,t20) */ 00217 atom_level3(&TauLines[ipCl04203],&TauLines[ipCl04117],&TauDummy); 00218 00219 /* fixit - add Cl V 6.71 micron using cs from 00220 * >>refer cl5 cs Saraph, H.E., & Storey, P.J., 1999, A&AS, 134, 369 */ 00221 00222 /* [Cl IX] 7335 A, 00223 * >>referold cl9 as Saraph, H.E. & Tully, J.A. 1994, A&AS, 107, 29 */ 00224 /* >>refer cl9 as Berrington,K.A.,Saraph, H.E. & Tully, J.A. 1998, A&AS, 129, 161 */ 00225 /*>>chng 06 jul 18 Changes made-Humeshkar Nemala*/ 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 /*PutCS(0.28,&TauLines[ipCl973]);*/ 00243 PutCS(cs,&TauLines[ipCl973]); 00244 atom_level2(&TauLines[ipCl973]); 00245 00246 /* [Cl X] 3.05m, 9223A */ 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 }