cloudy  trunk
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
cool_argo.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 /*CoolArgo compute argon cooling */
4 #include "cddefines.h"
5 #include "coolheavy.h"
6 #include "phycon.h"
7 #include "ligbar.h"
8 #include "taulines.h"
9 #include "dense.h"
10 #include "thermal.h"
11 #include "lines_service.h"
12 #include "atoms.h"
13 #include "cooling.h"
14 
15 void CoolArgo(void)
16 {
17  realnum a12,
18  a13,
19  a14,
20  a15,
21  a23,
22  a24,
23  a25,
24  a34,
25  a35,
26  a45,
27  cs12,
28  cs13,
29  cs14,
30  cs15,
31  cs23,
32  cs24,
33  cs25,
34  cs34,
35  cs35,
36  cs45,
37  pop2,
38  popn3;
39  double cs2s2p,
40  cs,
41  cs2s3p,
42  p[5];
43  static double gAr4[5]={4.,4.,6.,2.,4.};
44  static double exAr4[4]={21090.4,128.9,13636.2,177.1};
45 
46  DEBUG_ENTRY( "CoolArgo()" );
47 
48  /* Argon II 6.98 micron
49  * trans prob from
50  * >>refer Ar2 as Nussbaumer, H., & Storey, P.J. 1988, A&A, 200, L25
51  * Y(ik) from
52  * >>refer Ar2 cs Pelan, J., & Berrington, K.A. 1995, A&A Suppl, 110, 209 */
53  PutCS(3.1,&TauLines[ipTAr7]);
54  atom_level2(&TauLines[ipTAr7]);
55 
56  /* A III 7136, 7751, 3109, 5192 CS
57  * >>refer ar3 cs Galavis, M.E., Mendoza, C., & Zeippen, C.J. 1995, A&AS, 111, 347
58  * >>chng 97 mar 19, break up into three level atom */
59  cs12 = 4.825f;
60  cs13 = 0.841f;
61  cs23 = (realnum)MIN2(1.30,3.296/(phycon.te10*phycon.te01/phycon.te001/
62  phycon.te001));
63  a12 = 0.3963f;
64  a23 = 2.59f;
65  a13 = 3.952f;
66  /* POP3(G1,G2,G3,O12,O13,O23,A21,A31,A32,E12,E23,P2,ABUND,GAM2) */
67  popn3 = (realnum)(atom_pop3(9.,5.,1.,cs12,cs13,cs23,a12,a13,a23,1.955e4,2.770e4,
68  &pop2,dense.xIonDense[ipARGON][2],0.,0.,0.));
69  CoolHeavy.c7136 = pop2*a12*2.7e-12;
70  CoolHeavy.c5192 = popn3*a23*3.83e-12;
71  CoolHeavy.c3109 = popn3*a13*6.40e-12;
72  CoolAdd("Ar 3",7136,CoolHeavy.c7136);
73  CoolAdd("Ar 3",5192,CoolHeavy.c5192);
74  CoolAdd("Ar 3",3109,CoolHeavy.c3109);
75  /* add to deriv */
76  /* >>chng 01 mar 10, did not have second pair of lines included */
79 
80  /* Ar III 21.8(J=0,1), 9.0 (J=1,2) mircon lines,
81  * >>refer ar3 cs Galavis, M.E., Mendoza, C., & Zeippen, C.J. 1995, A&AS, 111, 347 */
82  PutCS(3.1,&TauLines[ipTAr9]);
83  cs = MIN2(1.384,3.110/(phycon.te10/phycon.te001*phycon.te001));
84  PutCS(cs,&TauLines[ipTAr22]);
85  if( phycon.te < 1e4 )
86  {
87  cs = 0.671;
88  }
89  else
90  {
91  cs = MIN2(0.906,0.150*phycon.te20/phycon.te02/phycon.te02*
92  phycon.te003);
93  }
94  PutCS(cs,&TauDummy);
95  atom_level3(&TauLines[ipTAr9],&TauLines[ipTAr22],&TauDummy);
96 
97  /* Argon IV 4711+4740, 7335 lines (O II like)
98  * CS from
99  * >>refer ar4 cs Zeippen, C.J., Le Bourlot, J., Butler, K. 1987, A&A, 188, 251
100  * >>chng 97 jan 31, increase to full 5 level atom
101  * Ar IV, cs data from
102  * >>refer ar4 cs Ramsbottom, C.A., Bell., K.L., & Keenan, F.P., 1997,
103  * >>refercon MNRAS 284, 754
104  * differs by 2-3x from older values
105  * temp dependence form
106  *>>refer ar4 cs Ramsbottom, C.A., & Bell, K.L. 1997, At. Data Nucl. Data Tables, 66, 65 */
107  cs12 = (realnum)MAX2(0.761,0.481*phycon.te05);
108  cs12 = (realnum)MIN2(0.853,cs12);
109  a12 = 2.23e-2f;
110 
111  cs13 = (realnum)MAX2(1.14,0.719*phycon.te05);
112  cs13 = (realnum)MIN2(1.3,cs13);
113  a13 = 1.77e-3f;
114 
115  cs14 = (realnum)MAX2(0.39,0.108*phycon.te10*phycon.te02*phycon.te02);
116  cs14 = (realnum)MIN2(0.5,cs14);
117  a14 = 0.862f;
118 
119  cs15 = (realnum)MAX2(0.78,0.216*phycon.te10*phycon.te02*phycon.te02);
120  cs15 = (realnum)MIN2(1.0,cs15);
121  a15 = 2.11f;
122 
123  cs23 = 7.06f;
124  a23 = 2.30e-5f;
125 
126  cs24 = (realnum)MAX2(1.53,0.346*phycon.te10*phycon.te05);
127  cs24 = (realnum)MIN2(1.96,cs24);
128  a24 = 0.603f;
129 
130  cs25 = (realnum)MAX2(2.18,0.664*phycon.te10*phycon.te02);
131  cs25 = (realnum)MIN2(2.65,cs25);
132  a25 = 0.789f;
133 
134  cs34 = (realnum)MAX2(1.56,0.475*phycon.te10*phycon.te02);
135  cs34 = (realnum)MIN2(1.89,cs34);
136  a34 = 0.119f;
137 
138  cs35 = (realnum)MAX2(4.01,1.00*phycon.te10*phycon.te02*phycon.te02);
139  cs35 = (realnum)MIN2(5.03,cs35);
140  a35 = 0.598f;
141 
142  cs45 = (realnum)(0.0359*phycon.te20*phycon.te20*phycon.te02*phycon.te02);
143  a45 = 4.94e-5f;
144 
145  /* FIVEL( G(1-5) , ex(wn,1-5), cs12,cs13,14,15,23,24,25,34,35,45,
146  * A21,31,41,51,32,42,52,43,53,54, pop(1-5), abund) */
147  atom_pop5(gAr4,exAr4,cs12,cs13,cs14,cs15,cs23,cs24,cs25,cs34,cs35,
148  cs45,a12,a13,a14,a15,a23,a24,a25,a34,a35,a45,p,dense.xIonDense[ipARGON][3]);
149  CoolHeavy.Ar4740 = p[1]*a12*4.20e-12;
150  CoolHeavy.Ar4711 = p[2]*a13*4.20e-12;
151  CoolHeavy.Ar2868 = p[3]*a14*6.94e-12;
152  CoolHeavy.Ar2854 = p[4]*a15*6.94e-12;
153  CoolHeavy.Ar7263 = p[3]*a24*2.74e-12;
154  CoolHeavy.Ar7171 = p[4]*a25*2.74e-12;
155  CoolHeavy.Ar7331 = p[3]*a34*2.74e-12;
156  CoolHeavy.Ar7237 = p[4]*a35*2.74e-12;
163  CoolHeavy.Ar7237);
164  CoolAdd("Ar 4",4740,CoolHeavy.Ar4740+CoolHeavy.Ar4711);
165  CoolAdd("Ar 4",2868,CoolHeavy.Ar2868+CoolHeavy.Ar2854);
166 
167  /* Argon V 6435+7007,
168  * >>refer Ar5 as Mendoza, C., & Zeippen, C.J. 1982, MNRAS, 199, 1025
169  * >>refer Ar5 cs Galavis, M.E., Mendoza, C., & Zeippen, C.J. 1995, A&AS, 111, 347
170  * POPEXC( O12,g1,g2,A21,excit,abund); result already*a21, excit in Kelvin */
171  if( phycon.te < 1e4 )
172  {
173  cs12 = 3.09f;
174  }
175  else
176  {
177  cs12 = (realnum)MIN2(4.454,0.634*phycon.te20/phycon.te03*phycon.te001*
178  phycon.te001);
179  }
180  cs13 = 0.56f;
181  cs23 = 1.65f;
182  a12 = 0.68f;
183  a13 = 6.55f;
184  a23 = 3.35f;
185 
186  /* >>chng 01 mar 10, convert from 2 to 3 level atom */
187  popn3 = (realnum)(atom_pop3(9.,5.,1.,cs12,cs13,cs23,a12,a13,a23,2.055e4,3.110e4,
188  &pop2,dense.xIonDense[ipARGON][4],0.,0.,0.));
189  CoolHeavy.c7007 = pop2*a12*2.84e-12;
190  CoolHeavy.c4626 = popn3*a23*4.30e-12;
191  CoolHeavy.c2691 = popn3*a13*7.39e-12;
192 
193  CoolAdd("Ar 5",7007,CoolHeavy.c7007);
194  CoolAdd("Ar 5",4626,CoolHeavy.c4626);
195  CoolAdd("Ar 5",2691,CoolHeavy.c2691);
196 
197  /* add to deriv */
198  /* >>chng 01 mar 10, did not have second pair of lines included */
199  thermal.dCooldT += CoolHeavy.c7007*2.055e4*thermal.tsq1 +
201 
202  /* Ar V 3P fine structure lines , A from
203  * >>refer Ar5 as Mendoza, C. 1982, in Planetary Nebulae, IAU Symp No. 103,
204  * >>refercon ed by D.R. Flower, (D. Reidel: Holland), 143
205  * >>refer Ar5 cs Galavis, M.E., Mendoza, C., & Zeippen, C.J. 1995, A&AS, 111, 347 */
206  cs = MIN2(3.26,26.27/(phycon.te20*phycon.te03*phycon.te01*
207  phycon.te003));
208  PutCS(cs,&TauLines[ipTAr13]);
209 
210  cs = MIN2(8.47,44.31/(phycon.te20/phycon.te003/phycon.te003));
211  PutCS(cs,&TauLines[ipTAr8]);
212 
213  cs = MIN2(1.95,7.280/(phycon.te10*phycon.te05*phycon.te005));
214  PutCS(cs,&TauDummy);
215 
216  atom_level3(&TauLines[ipTAr13],&TauLines[ipTAr8],&TauDummy);
217 
218  /* [Ar VI] 4.53 micron, cs from
219  * >>refer ar6 cs Saraph, H.E., & Storey, P.J. A&AS, 115, 151
220  * >>chng 96 dec 11, cs should have been 6.33, caught by Simon Casassus */
221  PutCS(6.33,&TauLines[ipAr06453]);
222 
223  atom_level2(&TauLines[ipAr06453]);
224 
225  /* [ArX] 5533.4A
226  * >>refer Ar10 cs Saraph, H.E. & Tully, J.A. 1994, A&AS, 107, 29 */
227  cs = MIN2(0.573,20.05/(phycon.te30*phycon.te03*phycon.te005));
228  PutCS(cs,&TauLines[ipAr1055]);
229 
230  atom_level2(&TauLines[ipAr1055]);
231 
232  /* [Ar XI] 2.60, microns, 6917A */
233  cs = MIN2(0.207,2.685e-3*phycon.te20*phycon.te20*
235  cs = MAX2(0.09,cs);
236  PutCS(cs,&TauLines[ipAr1126]);
237 
238  cs = MIN2(0.64,0.0127*phycon.te30*phycon.te05*phycon.te001*
239  phycon.te001);
240  cs = MAX2(0.25,cs);
241  PutCS(cs,&TauLines[ipAr1178]);
242 
243  cs = MIN2(0.17,2.789e-3*phycon.te30*phycon.te05*
245  cs = MAX2(0.06,cs);
246  PutCS(cs,&TauDummy);
247 
248  atom_level3(&TauLines[ipAr1126],&TauLines[ipAr1178],&TauDummy);
249 
250  /* Ar 14 4413, wavelength+a from
251  * >>refer Ar14 as Froese Fischer, C. 1983, J.Phys. B, 16, 157
252  * >>chng 04 apr 27, update collision strength from guess of 0.2 to data from
253  * >>refer Ar14 cs Keenan, F.P., Katsiyannis, A.C., Reid, R.H.G., Pradhan, A.K.,
254  * >>refercon Zhang, H.L., 2003, MNRAS, 345, 58-62
255  * this is for very high temperatures, lowest given is 1.5 million K */
256  cs = 0.31;
257  /* following is good fit between T=1.5e6 to 8.5e6 */
258  if( phycon.te > 1e6 )
259  cs = 1235.6 / ( phycon.sqrte*phycon.te10);
260 
261  CoolHeavy.fs4413 = atom_pop2(cs,2.,4.,105.,3.259e4,dense.xIonDense[ipARGON][13])*
262  4.51e-12;
263  CoolAdd("Ar14",4413,CoolHeavy.fs4413);
264 
265  /* Ar 15 409A, Be seq interpolated lambda, cs, A. */
266  CoolHeavy.c409 = atom_pop2(0.1,1.,9.,1.1e6,3.52e5,dense.xIonDense[ipARGON][14])*
267  4.86e-11;
268  CoolAdd("Ar15",409,CoolHeavy.c409);
269 
270  /* Ar 16 365, 25, Li Seq
271  * >>refer ar16 ?? Cochrane, D.M., & McWhirter, R.W.P. 1983, PhyS, 28, 25 */
272  ligbar(18,&TauLines[ipT354],&TauLines[ipT25],&cs2s2p,&cs2s3p);
273 
274  PutCS(cs2s2p,&TauLines[ipT354]);
275  atom_level2(&TauLines[ipT354]);
276 
277  /* funny factor (should have been 0.5) due to energy change */
278  PutCS(cs2s2p*0.454,&TauLines[ipT389]);
279  atom_level2(&TauLines[ipT389]);
280 
281  PutCS(cs2s3p,&TauLines[ipT25]);
282  atom_level2(&TauLines[ipT25]);
283  return;
284 }

Generated for cloudy by doxygen 1.8.3.1