cloudy  trunk
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
cool_chlo.cpp
Go to the documentation of this file.
1 /* This file is part of Cloudy and is copyright (C)1978-2008 by Gary J. Ferland and
2  * others. For conditions of distribution and use see copyright notice in license.txt */
3 /*CoolChlo compute chlorine cooling */
4 #include "cddefines.h"
5 #include "taulines.h"
6 #include "coolheavy.h"
7 #include "dense.h"
8 #include "phycon.h"
9 #include "thermal.h"
10 #include "lines_service.h"
11 #include "atoms.h"
12 #include "cooling.h"
13 
14 void CoolChlo(void)
15 {
16  double a21,
17  a31,
18  a32,
19  a41,
20  a42,
21  a43,
22  a51,
23  a52,
24  a53,
25  a54,
26  cs,
27  cs01,
28  cs02,
29  cs12,
30  cs13,
31  cs14,
32  cs15,
33  cs23,
34  cs24,
35  cs25,
36  cs34,
37  cs35,
38  cs45,
39  p[5],
40  p3,
41  tused;
42  realnum
43  p2,
44  pop2,
45  rate;
46  static double gcl3[5]={4.,4.,6.,2.,4.};
47  static double excl3[4]={18053.,66.,11693.,95.};
48 
49  DEBUG_ENTRY( "CoolChlo()" );
50 
51  /* >>chng >>03 nov 09, add this line, from
52  * >>refer Cl1 cs Hollenbach, D. & McKee, C.F. 1989, ApJ, 342, 306 */
53  /* rates are said to be ok over range 30 - 3000K */
54  tused = MAX2( 30. , phycon.te );
55  tused = MIN2( 3000. , phycon.te );
56  tused /= 100.;
57 
58  /* HM89 give deexcitation rates, must convert into electron collision strength, as expected
59  * by the code's infrastructure */
60  /* electron collision strength */
61  rate = (realnum)( 4.7e-8 * dense.eden +
62  /* >>chng 05 jul 05, eden to cdsqte */
63  /*8.3e-10*pow( tused , 0.17 ) * dense.xIonDense[ipHYDROGEN][0]) / dense.eden);*/
64  8.3e-10*pow( tused , 0.17 ) * dense.xIonDense[ipHYDROGEN][0] );
65  /* possible for atomic hydrogen density to be vary small, causing zero rate coef,
66  * which triggers thrown assert - guard against this */
68  atom_level2(&TauLines[ipCl1_11m]);
69 
70  /* [Cl II] 14.3678 mic, 33.281 mic*/
71  /* >>refer cl2 as Mendoza, C., & Zeippen, C.J. 1983, MNRAS, 202, 981*/
72  /* the following cs were about 2x smaller */
73  /* >>referold cl2 cs Krueger, T.K., & Czyzak, S.J. 1970, Pro Roy Soc Lond, 318, 531 */
74  /* >>chgn 03 feb 24, change to following collision strengths */
75  /* >>refer cl2 cs Wilson, N.J., & Bell, K.L. 2002, MNRAS, 331, 389 */
76  /* order of 3P ground term, 2, 1, 0 from lowest to highest */
77 
78  /* this is the 3P J=1 -> 2, 14.4 micron line */
79  cs12 = 17.5 / (phycon.te10*phycon.te04 );
80  /*PutCS(2.17,&TauLines[ipfsCl214]);*/
81  PutCS( cs12 , &TauLines[ipfsCl214] );
82 
83  /* this is the 3P J=0 -> 1, 33.3 micron line */
84  cs01 = 4.85 / (phycon.te10*phycon.te02 );
85  PutCS( cs01 , &TauLines[ipfsCl233] );
86  /*PutCS(0.93,&TauLines[ipfsCl233]);*/
87 
88  /* the 0 - 2 transition */
89  cs02 = 4.51 / (phycon.te10*phycon.te04 );
90  PutCS( cs02 , &TauDummy );
91  /*PutCS(1.00,&TauDummy);*/
92 
93  /* atom_level3( t10,t21,t20) */
94  atom_level3(&TauLines[ipfsCl214],&TauLines[ipfsCl233],&TauDummy);
95 
96  /* [Cl II] 8578.7, 9123.6, 6161.8, 3677.9 */
97  /* >>refer Cl2 As Mendoza, C., & Zeippen, C.J. 1983, MNRAS, 202, 981 */
98  /* following numbering in terms of level position, 1, 2, then 3 */
99  a21 = 0.133;
100  a31 = 1.33;
101  a32 = 2.06;
102  cs13 = 1.01;
103  /* this is 10x what is in the paper, as per comment made in
104  * >>refer Cl2 cs Keenan, F.P., Aller, L.H., Exter, K.M., Hyung, S., &
105  * >>refercon Pollacco, D.L. 2003, ApJ, 584, 385 */
106  cs23 = 1.49;
107  cs12 = 8.389;
108  /* POP3(G1,G2,G3,O12,O13,O23,A21,A31,A32,E12,E23,P2,ABUND,GAM2) */
109  p3 = atom_pop3(9.,5.,1.,cs12,cs13,cs23,a21,a31,a32,1.576e4,23344.,
110  &p2,dense.xIonDense[ipCHLORINE][1],0.,0.,0.);
111  /*p3 = atom_pop3(9.,5.,1.,3.86,0.456,1.15,a21,a31,a32,1.576e4,23344.,
112  &p2,dense.xIonDense[ipCHLORINE][1],0.);*/
113 
114  /* [Cl II] 8578.7, 9123.6 doublet, both together */
115  CoolHeavy.c8579 = p2*a21*2.32e-12;
116  CoolAdd("Cl 2",8579,CoolHeavy.c8579);
117 
118  /* [Cl II] 6161.8 auroral line */
119  CoolHeavy.c6164 = p3*a32*3.23e-12;
120  CoolAdd("Cl 2",6164,CoolHeavy.c6164);
121 
122  /* [Cl II] 3677.9 */
123  CoolHeavy.c3679 = p3*a31*5.41e-12;
124  CoolAdd("Cl 2",3679,CoolHeavy.c3679);
125 
126  /* [Cl III] this is a [SII] - like doublet, vac lam=5519, 5539
127  * all data from
128  * >>refer cl3 all Mendoza, C. 1982, in Planetary Nebulae, IAU Symp No. 103,
129  * >>refercon ed by D.R. Flower, (D. Reidel: Holland), 143 */
130  cs12 = 1.26;
131  a21 = 4.83e-3;
132 
133  cs13 = 1.88;
134  a31 = 7.04e-4;
135 
136  cs14 = 0.627;
137  a41 = 0.305;
138 
139  cs15 = 1.26;
140  a51 = 0.754;
141 
142  cs23 = 3.19;
143  a32 = 3.22e-6;
144 
145  cs24 = 1.24;
146  a42 = 0.303;
147 
148  cs25 = 1.91;
149  a52 = 0.323;
150 
151  cs34 = 1.38;
152  a43 = 0.100;
153 
154  cs35 = 3.33;
155  a53 = 0.316;
156 
157  cs45 = 1.34;
158  a54 = 7.65e-6;
159 
160  atom_pop5(gcl3,excl3,cs12,cs13,cs14,cs15,cs23,cs24,cs25,cs34,cs35,
161  cs45,a21,a31,a41,a51,a32,a42,a52,a43,a53,a54,p,dense.xIonDense[ipCHLORINE][2]);
162 
163  CoolHeavy.Cl5539 = p[1]*a21*3.59e-12;
164  CoolHeavy.Cl5519 = p[2]*a31*3.61e-12;
165  CoolHeavy.Cl3354 = p[3]*a41*5.93e-12;
166  CoolHeavy.Cl3344 = p[4]*a51*5.95e-12;
167  CoolHeavy.Cl8504 = p[3]*a42*2.34e-12;
168  CoolHeavy.Cl8436 = p[4]*a42*2.36e-12;
169  CoolHeavy.Cl8552 = p[3]*a43*2.33e-12;
170  CoolHeavy.Cl8483 = p[4]*a53*2.35e-12;
171 
172  /* following are whole multiplets */
178  CoolAdd("Cl 3",5525,CoolHeavy.c5525);
179  CoolAdd("Cl 3",3354,CoolHeavy.c3350);
180  CoolAdd("Cl 3",8494,CoolHeavy.c8494);
181 
182  /* [CL IV], like [OIII]
183  * cs from
184  * >>refer cl4 cs Galavis, M.E., Mendoza, C., & Zeippen, C.J. 1995, A&AS, 111, 347 */
185  a21 = 0.251;
186  cs12 = 6.437;
187  a32 = 2.80;
188  cs23 = MIN2(2.1,0.0450*phycon.te30*phycon.te03*phycon.te03);
189  a31 = 2.50;
190  cs13 = 1.922;
191  /* POP3(G1,G2,G3,O12,O13,O23,A21,A31,A32,E12,E23,P2,ABUND,GAM2) */
192  p3 = atom_pop3(9.,5.,1.,cs12,cs13,cs23,a21,a31,a32,2.24e4,3.11e4,&pop2,
193  dense.xIonDense[ipCHLORINE][2],0.,0.,0.);
194  /* whole 2-1 transition */
195  CoolHeavy.c8047 = pop2*a21*2.48e-12;
196  CoolAdd("Cl 4",8047,CoolHeavy.c8047);
198  /* 3-1 transition */
199  CoolHeavy.c3119 = p3*a31*6.38e-12;
200  CoolAdd("Cl 4",3119,CoolHeavy.c3119);
201  /* 3-2 transition */
202  CoolHeavy.c5324 = p3*a32*3.74e-12;
203  CoolAdd("Cl 4",5324,CoolHeavy.c5324);
204 
205  /* [Cl IV] fine structure lines, 20.354, 11.741 microns */
206  cs = MIN2(2.7,6.637/(phycon.te10*phycon.te03*phycon.te01));
207  cs = MAX2(1.6,cs);
208  PutCS(cs,&TauLines[ipCl04203]);
209 
210  cs = MIN2(8.0,15.65/phycon.te10);
211  PutCS(cs,&TauLines[ipCl04117]);
212 
213  cs = MIN2(2.0,5.805/(phycon.te10*phycon.te03));
214  PutCS(cs,&TauDummy);
215 
216  /* atom_level3( t10,t21,t20) */
217  atom_level3(&TauLines[ipCl04203],&TauLines[ipCl04117],&TauDummy);
218 
219  /* fixit - add Cl V 6.71 micron using cs from
220  * >>refer cl5 cs Saraph, H.E., & Storey, P.J., 1999, A&AS, 134, 369 */
221 
222  /* [Cl IX] 7335 A,
223  * >>referold cl9 as Saraph, H.E. & Tully, J.A. 1994, A&AS, 107, 29 */
224  /* >>refer cl9 as Berrington,K.A.,Saraph, H.E. & Tully, J.A. 1998, A&AS, 129, 161 */
225  /*>>chng 06 jul 18 Changes made-Humeshkar Nemala*/
226  if(phycon.te < 2.03E5)
227  {
228  cs = (realnum)(0.1175*phycon.te07*phycon.te004*phycon.te0001);
229  }
230  else if(phycon.te < 5.11E5)
231  {
232  cs = (realnum)((60.7989E-02)/(phycon.te05*phycon.te01*phycon.te0004));
233  }
234  else if(phycon.te < 1.284E6)
235  {
236  cs = (realnum)(0.274857);
237  }
238  else
239  {
240  cs = (realnum)(27.327963/(phycon.te30*phycon.te02*phycon.te007));
241  }
242  /*PutCS(0.28,&TauLines[ipCl973]);*/
243  PutCS(cs,&TauLines[ipCl973]);
244  atom_level2(&TauLines[ipCl973]);
245 
246  /* [Cl X] 3.05m, 9223A */
247  cs = MIN2(0.187,6.686e-3*phycon.te30/phycon.te001);
248  cs = MAX2(0.096,cs);
249  PutCS(cs,&TauLines[ipCl1030]);
250 
251  cs = MIN2(0.568,9.432e-3*phycon.te30*phycon.te03*
253  cs = MAX2(0.229,cs);
254  PutCS(cs,&TauLines[ipCl1092]);
255 
256  cs = MIN2(0.148,7.088e-4*phycon.sqrte/phycon.te03/
258  cs = MAX2(0.048,cs);
259  PutCS(cs,&TauDummy);
260 
261  atom_level3(&TauLines[ipCl1092],&TauLines[ipCl1030],&TauDummy);
262  return;
263 }

Generated for cloudy by doxygen 1.8.4