cloudy trunk
Loading...
Searching...
No Matches
cool_neon.cpp
Go to the documentation of this file.
1/* This file is part of Cloudy and is copyright (C)1978-2013 by Gary J. Ferland and
2 * others. For conditions of distribution and use see copyright notice in license.txt */
3/*CoolNeon evaluate total cooling due to neon */
4#include "cddefines.h"
5#include "coolheavy.h"
6#include "taulines.h"
7#include "mole.h"
8#include "dense.h"
9#include "phycon.h"
10#include "embesq.h"
11#include "ligbar.h"
12#include "thermal.h"
13#include "lines_service.h"
14#include "atoms.h"
15#include "cooling.h"
16
17void CoolNeon(void)
18{
19 double a21,
20 a31,
21 a32,
22 cs2s2p,
23 cs2s3p,
24 /*Introduce the following three variables for use in Ne V-Humeshkar Nemala*/
25 cs12,
26 cs13,
27 cs23,
28 /* >>chng 08 may 06, Add collisional excitation of NeII by H, important in AGN */
29 cs_neII_h;
30 realnum
31 cs,
32 pop2;
33
34 DEBUG_ENTRY( "CoolNeon()" );
35
36 /* Neon II 12.8 micron
37 * >>referold ne2 cs Saraph, H.E. & Tully, J.A. 1994, A&AS, 107, 29 */
38 /*These statements were commented out-Humeshkar Nemala*/
39 /*cs = (realnum)MIN2(0.4,0.1294*phycon.te10/phycon.te02*phycon.te005);*/
40 /*cs = (realnum)MAX2(0.272,cs);*/
41 /*>>chng 06 jun 30 Changes made by Humeshkar Nemala-Jun 2006*/
42 /*>>refer ne2 cs Griffin,D.C., Mitnik,D.M. & Badnell, N. R.,2001,JPhB,34,4401*/
43 /*Temperature range from 1000 TO 4E5 */
44
45 /*>>chng 06 jul 02, adjust precoef to get exact result at 1e4 K */
46 cs = (realnum)(0.132*phycon.te07*phycon.te02 *phycon.te004 *phycon.te0001 );
47
48 /* >>chng 08 mag 06, Collisional de-excitation rate of fine-structure level of Ne+ by H impact, from *
49 * >>refer ne2 csh Hollenbach, D. & McKee, C. F. 1989, ApJ, 342, 306 */
50
51 cs_neII_h = 1.3e-9;
52
53 PutCS(cs+cs_neII_h*(dense.xIonDense[ipHYDROGEN][0]+findspecieslocal("H2")->den+findspecieslocal("H2*")->den)/dense.cdsqte,TauLines[ipTNe13]);
55
56 /***********************************************************************************
57 **************************************Ne III*****************************************
58 ************************************************************************************/
59 double neiii_cs3P13P0,
60 neiii_cs3P23P1,
61 neiii_cs3P23P0,
62 neiii_cs3P1D2,
63 neiii_cs3P1S0;
64
65 //neiii_cs calculates the collision strenghts for Ne III
66 neiii_cs(neiii_cs3P13P0,
67 neiii_cs3P23P1,
68 neiii_cs3P23P0,
69 neiii_cs3P1D2,
70 neiii_cs3P1S0);
71
72 PutCS(neiii_cs3P13P0,TauLines[ipTNe36]);
73
74 PutCS(neiii_cs3P23P1,TauLines[ipTNe16]);
75
76 PutCS(neiii_cs3P23P0,*TauDummy);
77
78 /* now do the level populations */
80
81 /* POP3(G1,G2,G3,O12,O13,O23,A21,A31,A32,E12,E23,P2,ABUND,GAM2)
82 >>refer Ne3 as Froese Fischer, C., & Tachiev, G. 2004, At. Data Nucl. Data Tables, 87, 1
83 */
84 a21=0.231;
85 a31=2.069;
86 a32=2.545;
87 CoolHeavy.c3343 = atom_pop3(9.,5.,1.,neiii_cs3P1D2,neiii_cs3P1S0,0.32,a21,a31,a32,
88 3.583e4,4.301e4,&pop2,dense.xIonDense[ipNEON][2],0.,0.,0.)*a32*5.954e-12;
89 CoolHeavy.c3869 = pop2*a21*5.14e-12;
90 thermal.dCooldT += CoolHeavy.c3869*(3.72e4*thermal.tsq1 - thermal.halfte);
91 CoolAdd("Ne 3",3342,CoolHeavy.c3343);
92 CoolAdd("Ne 3",3869,CoolHeavy.c3869);
93 CoolAdd("Ne 3",1793,CoolHeavy.c3343*1.38);
94
95 /***********************************************************************************
96 **************************************Ne IV*****************************************
97 ************************************************************************************/
98 /* Ne IV 2425.4+2422.8 A'S from
99 * >>refer ne4 as Zeippen, C.J. 1982, MNRAS 198 111
100 * Ne IV CS from
101 * >>referold ne4 cs Giles, K. 1981, MNRAS, 195, 63
102 * above gave table, actually used, but following is most recent
103 * calculation, in great agreement, but only gives figures
104 * >>refer ne4 cs Ramsbottom, C.A., Bell, K.L., & Keenan, F.P. 1998, MNRAS, 293, 233
105 * POP3(G1,G2,G3,O12,O13,O23,A21,A31,A32,E12,E23,P2,ABUND,GAM2) */
106 a21 = 2.46e-3;
107 a31 = 1.02;
108 a32 = 0.693;
109 CoolHeavy.c4720 = atom_pop3(4.,10.,6.,1.37,0.464,2.14,a21,a31,a32,5.94e4,
110 3.05e4,&pop2,dense.xIonDense[ipNEON][3],0.,0.,0.)*a32*4.22e-12;
111 CoolHeavy.c2424 = pop2*8.21e-12*a21;
112 CoolAdd("Ne 4",2424,CoolHeavy.c2424);
113 CoolAdd("Ne 4",4720,CoolHeavy.c4720);
114 CoolAdd("Ne 4",1602,CoolHeavy.c4720*4.1);
115
116 /* Ne V 3426, CS data from
117 * >>referold ne5 cs Lennon, D.J. & Burke, V.M. 1991, MNRAS 251, 628
118 * revised from
119 * >>refer ne5 cs Lennon, D.J. Burke, V.M. 1994, A&AS, 103, 273
120 * A's from
121 * >>refer ne5 as Baluja, K.L. 1985, J.Phys. B, 18, L413
122 * POP3(G1,G2,G3,O12,O13,O23,A21,A31,A32,E12,E23,P2,ABUND,GAM2) */
123 /*>>chng 06 jun 30 The collision strengths are changed-Humeshkar Nemala*/
124 /*Temperature dependence for the cs is included*/
125 /*>>refer ne5 cs Griffin,D.C., & Badnell,N.R.2000,JPhB,33,4389*/
126 /*The cs for the 1-2 transition was obtained by summing the cs
127 for transitions 3P0-1D2,3P1-1D2,3P2-1D2*/
128 cs12=1.2172*(phycon.te04*phycon.te003*phycon.te0004);
129 /*The cs for the 1-3 i.e., the 3P-1S0 transition was obtained by summing the cs
130 for the 3P0-1S0,3P1-1S0,3P2-1S0transitions */
131 cs13=1.2598/(phycon.te10*phycon.te04*phycon.te007*phycon.te002*phycon.te0004);
132 /*Temperature dependent data avilable for the cs between states 2 and 3,i.e.,1D2-1S0
133 on the internet at the Oak Ridge National Laboratory CFADC.
134 Fit was done for data obtained through private communication*/
135 cs23 = 0.2524*(phycon.te07*phycon.te01*phycon.te007*phycon.te0003);
136 /*CoolHeavy.c2975 = atom_pop3(9.,5.,1.,2.18,0.254,0.688,0.521,4.35,2.76,
137 4.297e4,4.835e4,&pop2,dense.xIonDense[ipNEON][4],0.,0.,0.)*2.76*6.69e-12;*/
138 CoolHeavy.c2975 = atom_pop3(9.,5.,1.,cs12,cs13,cs23,0.521,4.35,2.76,
139 4.297e4,4.835e4,&pop2,dense.xIonDense[ipNEON][4],0.,0.,0.)*2.76*6.69e-12;
140 /* following are old values
141 * C2975 = POP3( 9.,5.,1., 1.8,0.25,0.52, 0.521,4.34,2.76,
142 * 1 4.297E4,4.835E4, POP2 , ANEON(5),0.) * 2.76*6.69E-12 */
143 CoolHeavy.c1565 = CoolHeavy.c2975*1.901*1.572;
144 CoolHeavy.c3426 = pop2*0.521*5.81e-12;
145 thermal.dCooldT += CoolHeavy.c3426*(4.20e4*thermal.tsq1 - thermal.halfte) +
146 (CoolHeavy.c2975 + CoolHeavy.c1565)*9.132e4*thermal.tsq1;
147 CoolAdd("Ne 5",2975,CoolHeavy.c2975);
148 CoolAdd("Ne 5",1565,CoolHeavy.c1565);
149 CoolAdd("Ne 5",3426,CoolHeavy.c3426);
150
151 /* Ne V 24.2, 14.3 micron
152 * CS from
153 * >>referold ne5 cs Lennon, D.J. Burke, V.M. 1994, A&AS, 103, 273
154 * A's from
155 * >>refer ne5 as Baluja, K.L. 1985, J.Phys. B, 18, L413 */
156 /*cs = (realnum)MIN2(1.84,21.12/(phycon.te10*phycon.te10*phycon.te10/
157 phycon.te003/phycon.te003));*/
158 /*>>chng 06 jun 30 Changed-Humeshkar Nemala*/
159 /* >>refer ne5 cs Griffin,D.C., & Badnell,N.R.2000,JPhB,33,4389*/
160 /*this line corresponds to the 3P1-3P0 transition - the lowest of the 3P transitions */
161 cs = (realnum)(21.917/(phycon.te20 *phycon.te07 *phycon.te02 *phycon.te001
162 *phycon.te0007 *phycon.te0002));
164 /*cs = (realnum)MIN2(9.5,261.71/(phycon.te10*phycon.te10*phycon.te10*
165 phycon.te10*phycon.te01*phycon.te003));*/
166 /*this line corresponds to the 3P2-3P1 transition*/
167 cs = (realnum)(122.49/(phycon.te30 *phycon.te04 *phycon.te005
168 *phycon.te003 *phycon.te0001 ));
170 /*we introduce the dummy line 3P2-3P0 transition*/
171 /*cs = (realnum)MIN2(3.2,139.86/(phycon.sqrte/phycon.te03*phycon.te003/
172 phycon.te001));*/
173 cs = (realnum)(58.788/(phycon.te40*phycon.te001*phycon.te0007));
174 PutCS(cs,*TauDummy);
175 /* now do the level populations */
177
178 /* Ne V 5S - 3P, CS
179 * >>referold ne5 cs Lennon, D.J. Burke, V.M. 1994, A&AS, 103, 273
180 * A from
181 * >>referold ne5 cs Mendoza, C. 1982, in Planetary Nebulae, IAU Symp No. 103,
182 * >>referoldcon ed by D.R. Flower, (D. Reidel: Holland), 143 */
184 /*>>chng 06 july 05 Changed-Humeshkar Nemala*/
185 /* >>refer ne5 cs Griffin,D.C., & Badnell,N.R.2000,JPhB,33,4389*/
186 /*this line corresponds to the 2s2 2p2 3P- 2s2p3 5S0 transition*/
187 /*The cs was obtained by summing the cs of the transitions
188 3P0-5S2,3P1-5S2,3P2-5S2*/
189 cs = (realnum)(22.956/((phycon.te30/phycon.te01)*phycon.te001*phycon.te0002));
190 /*CoolHeavy.c1134 = atom_pop2(11.9/(phycon.te10*phycon.te10*phycon.te03),
191 9.,5.,4.67e3,1.273e5,dense.xIonDense[ipNEON][4])*1.767e-11;*/
192 CoolHeavy.c1134 = atom_pop2(cs,9.,5.,4.67e3,1.273e5,
193 dense.xIonDense[ipNEON][4])*1.767e-11;
194 CoolAdd("Ne 5",1134,CoolHeavy.c1134);
195
196 /* Ne VI 7.6 micron, A from
197 * >>refer ne6 as Froese Fischer, C. 1983, J.Phys. B, 16, 157
198 * cs from
199 * >>referold ne6 cs Zhang, H.L., Graziani, M., Pradhan, A.K. 1994, A&A, 283, 319
200 * >>chng 96 jul 16 had been just constant 2.0 */
201 /*cs = (realnum)MIN2(3.71,23.623/(phycon.te20*phycon.te02/phycon.te003));*/
202 /*>>chng 06 jun 30 Changed-Humeshkar Nemala*/
203 /*>>refer ne6 cs Mitnik,D.M.,Griffin,D.C., & Badnell,N.R. 2001,JPhB,34,4455*/
204 cs = (realnum) (35.705/(phycon.te20 *phycon.te07 *phycon.te004 *phycon.te0007 ));
207 /* fs76 = atom_pop2(0.37,2.,4.,1.9E-2,1.89E3,dense.xIonDense(10,6))*2.62E-13
208 * dCooldT = dCooldT + fs76*(1890.*tsq1-halfte)
209 * call CoolAdd( 'Ne 6' , 76 , FS76 )
210 *
211 * Ne VII col data from
212 * >>refer ne7 cs Berrington, K.A., Burke, P.G., Dufton, P.L., Kingston, A.E. 1985,
213 * >>refercon At. Data Nucl. Data Tables, 33, 195
214 * low te from
215 * >>refer ne7 cs Dufton, P.L., Doyle, J.G., Kingston, A.E. 1979, A&A, 78, 318
216 * newer fit to
217 * >>refer ne7 cs Ramsbottom, C.A., Berrington, K.A., Bell, K.L. 1995,
218 * >>refercon At. Data Nucl. Data Tables, 61, 105 */
219 if( phycon.te < 4e4 )
220 {
221 cs = (realnum)(0.0352*(phycon.te20/phycon.te03));
222 }
223 else
224 {
225 cs = (realnum)(0.736/(phycon.te10*phycon.te02/phycon.te003));
226 }
227 /* >>chng 01 sep 09, AtomSeqBeryllium will reset this to 1/3 so critical density correct */
228 PutCS(cs,TauLines[ipT895]);
229 /* AtomSeqBeryllium(CS23,CS24,CS34,tarray,A41)
230 * c895 = AtomSeqBeryllium(.52,.61, 2.0,t895,.0578) * 2.223E-11
231 * A's
232 * >>refer ne7 as Fleming, J., Bell, K.L, Hibbert, A., Vaeck, N., Godefroid, M.R.
233 * >>refercon 1996, MNRAS, 279, 1289 */
234 AtomSeqBeryllium(.52,.61,2.0,TauLines[ipT895],.07066);
235 embesq.em895 = (realnum)(atoms.PopLevels[3]*0.0578*2.223e-11);
236
237 /* Ne VIII 774, iso with 1549, extrapolation for omega
238 * >>refer ne8 ?? Cochrane, D.M., & McWhirter, R.W.P. 1983, PhyS, 28, 25 */
239 ligbar(10,TauLines[ipT770],TauLines[ipT88],&cs2s2p,&cs2s3p);
240 PutCS(cs2s2p,TauLines[ipT770]);
241 PutCS(cs2s2p*0.5,TauLines[ipT780]);
242 PutCS(1.0,*TauDummy);
244
245 PutCS(cs2s3p,TauLines[ipT88]);
247 return;
248}
249
250//neiii_cs calculates the collision strenghts for Ne III
251void neiii_cs(double& neiii_cs3P13P0,
252 double& neiii_cs3P23P1,
253 double& neiii_cs3P23P0,
254 double& neiii_cs3P1D2,
255 double& neiii_cs3P1S0)
256{
257 DEBUG_ENTRY( "neiii_cs()" );
258 /* Ne III fine structure lines
259 * >>referold ne3 cs Butler, K., & Zeippen, C.J. 1994, A&AS, 108, 1 */
260 /*PutCS(0.774,TauLines[ipTNe16]);
261 PutCS(0.244,TauLines[ipTNe36]);
262 PutCS(0.208,TauDummy);*/
263 /* Ne III fine structure lines
264 *>>refer ne3 cs McLaughlin,B.M., & Bell,K.L.2000,JPhB,33,597 */
265 /*>>chng 06 jun 30 Changes made by-Humeshkar Nemala*/
266 /*Data available over temps 1E3 K to 1E6 K*/
267 /* this is the highest of the two transitions, J = 0-1, 36 mm
268 * (3P J levels inverted for this ion) */
269 if(phycon.te <6.3E3)
270 {
271 neiii_cs3P13P0=(realnum)((9.34E-02)*phycon.te10*phycon.te003*phycon.te0002);
272 }
273 else if(phycon.te < 2.5E4)
274 {
275 neiii_cs3P13P0=(realnum)((19.8888E-02)*(phycon.te02/(phycon.te003*phycon.te0002)));
276 }
277 else if(phycon.te < 4E4)
278 {
279 neiii_cs3P13P0=(realnum)((838.0688E-06)*phycon.sqrte*phycon.te05*(phycon.te007/phycon.te0001));
280 }
281 else if(phycon.te < 1E5)
282 {
283 neiii_cs3P13P0=(realnum)((256.2312E-11)*phycon.te*phycon.te70*phycon.te05*phycon.te005*phycon.te0002);
284 }
285 else if(phycon.te < 2.5E5 )
286 {
287 neiii_cs3P13P0=(realnum)((238.5789E-06)*phycon.te70*phycon.te05*phycon.te01*
288 phycon.te001*phycon.te0004);
289 }
290 else
291 {
292 neiii_cs3P13P0=(realnum)(147.59848/(phycon.te30*phycon.te01*phycon.te001*phycon.te0005));
293 }
294
295 /* this is the lowest of the two transitions, J = 1-2 16 mm
296 * (3P J levels inverted for this ion) */
297
298 if(phycon.te < 2.5E4)
299 {
300 neiii_cs3P23P1 = (realnum)(0.3702*phycon.te07*phycon.te005*phycon.te0004);
301 }
302 else if(phycon.te < 4E4)
303 {
304 neiii_cs3P23P1 = (realnum)((16.6945E-04)*(phycon.te40*phycon.te20*phycon.te005*phycon.te003*
305 phycon.te0005*phycon.te0003));
306 }
307 else if(phycon.te < 1.6E5)
308 {
309 neiii_cs3P23P1 = (realnum)((50.5069E-09)*(phycon.te32*phycon.te07*phycon.te02*phycon.te0007
310 *phycon.te0001));
311 }
312 else if(phycon.te < 2.5E5)
313 {
314 neiii_cs3P23P1 = (realnum)((778.1245E-04)*phycon.te40*(phycon.te002/phycon.te0002));
315 }
316 else
317 {
318 neiii_cs3P23P1 = (realnum)(786.6482/(phycon.te30*phycon.te04*phycon.te0001));
319 }
320
321 /* this is the transition from highest to lowest J within 3P - it has a tiny A
322 * which we ignore, so use the TauDummy struc */
323
324 if(phycon.te <4E4)
325 {
326 neiii_cs3P23P0 = (realnum)(0.0999*phycon.te07*phycon.te005*phycon.te001);
327 }
328 else if( phycon.te < 2.5E5)
329 {
330 neiii_cs3P23P0=(realnum)(9.02142E-06*
331 phycon.te90*phycon.te05*phycon.te004*phycon.te0007*phycon.te0001);
332 }
333 else
334 {
335 neiii_cs3P23P0=(realnum)(66.1264/(phycon.te30*phycon.te01*phycon.te007));
336 }
337 /*cs = 0.207f;*/
338
339 /* Ne III 3869+3968, 3343, A's
340 * >>referold ne3 as Mendoza, C. 1982, in Planetary Nebulae, IAU Symp No. 103,
341 * >>refercon ed by D.R. Flower, (D. Reidel: Holland), 143
342 * CS
343 * >>referold ne3 cs Butler, K., & Zeippen, C.J. 1994, A&AS, 108, 1 */
344 /*>>chng 06 jun 30 Changes made-Humeshkar Nemala*/
345 /* >>refer ne3 cs McLaughlin, B. M., & Bell, K. L. 2000, Journal of Physics B Atomic Molecular Physics, 33, 597
346 * (3P J levels inverted for this ion) */
347 /*This is the transition between states 1-2 i.e., 3P-1D2*/
348 /*The cs for 1-2 transition was obtained by summing the cs of
349 transitions 3P2-1D2,3P1-1D2,3P0-1D2*/
350 /*The cs are determined over two ranges: as below and above 2.5E5
351 *>>chng 10 feb 24 ML: Updated the coefficients for the cs12 and cs13 values using the McLaughlin and Bell reference.
352 *The coefficients have been chosen to ensure continuity over 2.5E5 K.*/
353 if(phycon.te <2.5E5)
354 {
355 neiii_cs3P1D2 = (realnum)(0.919 *phycon.te03*phycon.te007*
356 phycon.te002*phycon.te0007*phycon.te0001);
357 }
358 else
359 {
360 neiii_cs3P1D2 = (realnum)((19.7)/(phycon.te20*phycon.te005*
361 phycon.te001*phycon.te0007*phycon.te0002));
362 }
363 /*This is the transition between states 1-3 i.e., 3P-1S0*/
364 /*The cs for 1-3 transition was obtained by summing the cs of
365 transitions 3P2-1S0,3P1-1S0,3P0-1S0*/
366 /*The cs are determined over three ranges: as below 2.5E4,
367 above 2.5E4 and below 2.5E5, and above 2.5E5*/
368 if(phycon.te < 2.5E4)
369 {
370 /*The cs remains fairly constant in the range 1E3 to 2.5E4,with an average of 0.152*/
371 neiii_cs3P1S0 = 0.152f;
372 }
373 else if( phycon.te < 2.5E5)
374 {
375 neiii_cs3P1S0 = (realnum)((798.0776E-05)*(phycon.te30/phycon.te01)*phycon.te001);
376 }
377 else
378 {
379 neiii_cs3P1S0 = (realnum)((1026.2621E-02)/(phycon.te20*phycon.te07*phycon.te01*phycon.te005));
380 }
381 /*cs of 3343 which refers to the 1D2-1S0 cs*/
382 /*This is the transition between states 2-3*/
383 /*data over temperatures 1E3 to 1E6 remains fairly constant at 0.32
384 cs = 0.32f;*/
385
386 return;
387}
void ligbar(long int ized, const TransitionProxy &t2s2p, const TransitionProxy &t2s3p, double *cs2s2p, double *cs2s3p)
long ipT770
long ipTNe14
long ipTNe13
long ipTNe24
long ipTNe36
long ipT780
long ipT88
long ipxNe0676
long ipT895
long ipTNe16
void atom_level2(const TransitionProxy &t)
void atom_level3(const TransitionProxy &t10, const TransitionProxy &t21, const TransitionProxy &t20)
double atom_pop2(double omega, double g1, double g2, double a21, double bltz, double abund)
Definition atom_pop2.cpp:9
double atom_pop3(double g1, double g2, double g3, double o12, double o13, double o23, double a21, double a31, double a32, double Tex12, double Tex23, realnum *pop2, double abund, double gam2, double r12, double r13)
Definition atom_pop3.cpp:10
void AtomSeqBeryllium(double cs12, double cs13, double cs23, const TransitionProxy &t, double a30)
t_atoms atoms
Definition atoms.cpp:5
float realnum
Definition cddefines.h:103
const int ipHYDROGEN
Definition cddefines.h:305
#define DEBUG_ENTRY(funcname)
Definition cddefines.h:684
const int ipNEON
Definition cddefines.h:314
void CoolAdd(const char *chLabel, realnum lambda, double cool)
Definition cool_etc.cpp:13
void CoolNeon(void)
Definition cool_neon.cpp:17
void neiii_cs(double &neiii_cs3P13P0, double &neiii_cs3P23P1, double &neiii_cs3P23P0, double &neiii_cs3P1D2, double &neiii_cs3P1S0)
t_CoolHeavy CoolHeavy
Definition coolheavy.cpp:5
t_dense dense
Definition dense.cpp:24
t_embesq embesq
Definition embesq.cpp:5
molezone * findspecieslocal(const char buf[])
t_phycon phycon
Definition phycon.cpp:6
TransitionProxy::iterator TauDummy
Definition taulines.cpp:60
TransitionList TauLines("TauLines", &AnonStates)
t_thermal thermal
Definition thermal.cpp:5
void PutCS(double cs, const TransitionProxy &t)