cloudy  trunk
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
cool_sili.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 /*CoolSili compute silicon cooling */
4 #include "cddefines.h"
5 #include "taulines.h"
6 #include "phycon.h"
7 #include "dense.h"
8 #include "ligbar.h"
9 #include "lines_service.h"
10 #include "colden.h"
11 #include "embesq.h"
12 #include "atoms.h"
13 #include "sil.h"
14 #include "cooling.h"
15 
16 void CoolSili(void)
17 {
18  double cs,
19  cs2s2p,
20  cs2s3p,
21  cs01,
22  cs02,
23  cs12,
24  tused,
25  temp,
26  pump_rate;
27  realnum
28  p2,
29  rate;
30  long int i;
31  static bool lgFirst=true;
32  static long int *ipSi2Pump=NULL,
33  nSi2Pump=0;
34 
35  DEBUG_ENTRY( "CoolSili()" );
36 
37  /*>>refer Si I cs Hollenbach, D. & McKee, C.F. 1989, ApJ, 342, 306 */
38  /* >>chng 03 nov 15, add these lines */
39  /* the Si I 25.2 micron line */
40  /* rates are said to be ok over range 30 - 3000K */
41  tused = MAX2( 30. , phycon.te );
42  tused = MIN2( 3000. , phycon.te );
43  tused /= 100.;
44 
45  /* derive their rate, then convert to collision strength */
46  rate = (realnum)(7.2e-9 * dense.eden +
47  /* >>chng 05 jul 05, eden to cdsqte */
48  /*3.5e-10*pow(tused, -0.03 )*dense.xIonDense[ipHYDROGEN][0]) / dense.eden);*/
49  3.5e-10*pow(tused, -0.03 )*dense.xIonDense[ipHYDROGEN][0] );
51 
52  /* the Si I 56.6 micron line */
53  rate = (realnum)(2.2e-8 * dense.eden +
54  /* >>chng 05 jul 05, eden to cdsqte */
55  /*5.0e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0]) / dense.eden);*/
56  5.0e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0] );
58 
59  rate = (realnum)(7.2e-9 * dense.eden +
60  /* >>chng 05 jul 05, eden to cdsqte */
61  /*1.7e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0]) / dense.eden);*/
62  1.7e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0] );
64  LineConvRate2CS( &TauDummy , rate );
65  /* this says that line is a dummy, not real one */
66  TauDummy.Hi->g = 0;
67 
68  /* solve model atom for Si I */
69  atom_level3(&TauLines[ipSi1_130m],&TauLines[ipSi1_68m],&TauDummy);
70 
71  /* Si I 2518 */
73  atom_level2(&TauLines[ipSii2518]);
74 
75  /* Si I 2215 */
77  atom_level2(&TauLines[ipSii2215]);
78 
79  /* Silicon II 35 micron */
80  /* hydrogen collision strength from
81  * >>referold si2 cs Tielens, A.G.G., & Hollenbach, D. 1985, ApJ, 291, 722
82  * they give rate de-ex 6.5E-10 cm^3 s^-1, indep of temp */
83  /*cs += 6.5e-10/dense.cdsqte*4.*dense.xIonDense[ipHYDROGEN][0];*/
84  /* >> chng 05 may 21, GS, rate with hydrogen is updated from 2005, ApJ, 620,537*/
85  /* >>refer si2 cs Barinovs, G., van Hemert, M., Krems, R. & Dalgarno, A. 2005, ApJ, 620, 537 */
86  /* original data only extend up to 2000K
87  * following is valid up to 2000K */
88  temp = MIN2(2e3, phycon.te);
89  cs = 1e-10*(3.9436853+ 0.11176758*pow(temp, 0.55762129));
90  /* for high temperatures simply extend the power law */
91  if( phycon.te>2e3 )
92  {
93  cs *= pow(phycon.te/2e3, 0.55762129);
94  }
95  /* above was rate coef, convert to cs and mult by den of colliders */
96  cs *= 4.*dense.xIonDense[ipHYDROGEN][0]/dense.cdsqte;
97 
98  /* add on elec cs from
99  *>>refer si2 cs Dufton, P.L., & Kingston, A.E. 1994, At. Data Nucl. Data Tables,
100  *>>refercon 57, 273 */
101  cs += 5.77;
102 
103  PutCS(cs,&TauLines[ipTSi35]);
104 
105 
106  /* one time initialization if first call, and level 2 lines are on */
107  if( lgFirst && nWindLine )
108  {
109  lgFirst = false;
110  nSi2Pump = 0;
111  for( i=0; i<nWindLine; ++i )
112  {
113  /* don't test on nelem==ipIRON since lines on physics, not C, scale */
114  if( TauLine2[i].Hi->nelem ==14 && TauLine2[i].Hi->IonStg==2 )
115  {
116  ++nSi2Pump;
117  }
118  }
119  if( nSi2Pump<0 )
120  TotalInsanity();
121  else if( nSi2Pump > 0 )
122  /* create the space - can't malloc 0 bytes */
123  ipSi2Pump = (long *)MALLOC((unsigned)(nSi2Pump)*sizeof(long) );
124  nSi2Pump = 0;
125  for( i=0; i<nWindLine; ++i )
126  {
127  /* don't test on nelem==ipIRON since lines on physics, not C, scale */
128  if( TauLine2[i].Hi->nelem ==14 && TauLine2[i].Hi->IonStg==2 )
129  {
130 # if 0
131  DumpLine( &TauLine2[i] );
132 # endif
133  ipSi2Pump[nSi2Pump] = i;
134  ++nSi2Pump;
135  }
136  }
137  }
138  else
139  /* level 2 lines are not enabled */
140  nSi2Pump = 0;
141 
142  /* now sum pump rates */
143  pump_rate = 0.;
144  for( i=0; i<nSi2Pump; ++i )
145  {
146  pump_rate += TauLine2[ipSi2Pump[i]].Emis->pump;
147 # if 0
148  fprintf(ioQQQ,"DEBUG C %li %.3e %.3e\n",
149  i,
150  TauLine2[ipSi2Pump[i]].WLAng , TauLine2[ipSi2Pump[i]].pump );
151 # endif
152  }
153  /*atom_level2(&TauLines[ipTSi35]);*/
154  /*AtomSeqBoron compute cooling from 5-level boron sequence model atom */
155  /* >>refer s4 cs Tayal, S.S., 2000, ApJ 530, 1091*/
156  /*>>refer si2 cs Dufton, P.L., & Kingston, A.E., 1991, MNRAS, 248, 827*/
157  /*>>refer si2 as Dufton, P.L., Keenan, F.P., Hibbert, A.,
158  *>>rerercon Stafford, R.P., Byrne, P.B., & Agnew, D., 1991, MNRAS, 253, 474*/
159  AtomSeqBoron(&TauLines[ipTSi35],
160  &TauLines[ipSi2_2334],
161  &TauLines[ipSi2_2329],
162  &TauLines[ipSi2_2350],
163  &TauLines[ipSi2_2344],
164  &TauLines[ipSi2_2336],
165  0.534 , 4.51 , 1.67 , 6.94 ,
166  pump_rate ,"Si 2");
167  /*fprintf(ioQQQ,"DEBUG Si2\t%.2f\t%.5e\t%.5e\t%.5e\n",
168  fnzone,
169  phycon.te,
170  TauLines[ipTSi35].cool, dense.eden);*/
171  for( i=0; i < 5; i++ )
172  {
173  /* pops and column density for SiII atom */
175  }
176 
177  /* Si II 1808, permitted resonance line,
178  * osc str from
179  * >>refer si2 as morton et al 88 (apj sup);
180  * all si ii collision data (following 4 lines) are from
181  * >>refer si2 cs Dufton, P.L., & Kingston, A.E. 1991, MNRAS, 248, 827
182  * following assumes there is typo in table 1 of dufton and kingston
183  * and that they meant 2s 2p^2 ^2D instead of 3d */
184 
185  /* Si II 1814 */
186  PutCS(13.01,&TauLines[ipT1808]);
187  atom_level2(&TauLines[ipT1808]);
188 
189  /* Si II 1531 */
190  PutCS(3.61,&TauLines[ipT1527]);
191  atom_level2(&TauLines[ipT1527]);
192 
193  /* Si II 1307.7 */
194  PutCS(2.89,&TauLines[ipT1305]);
195  atom_level2(&TauLines[ipT1305]);
196 
197  /* Si II 1263.3 */
198  PutCS(12.25,&TauLines[ipT1260]);
199  atom_level2(&TauLines[ipT1260]);
200 
201  /* permitted Si III 1206.5, collision strength from
202  * >>refer si3 cs Callaway, J. 1994, At. Data Nucl. Data Tables, 57, 9 */
203  cs = MIN2(7.0,1.442*phycon.te10*phycon.te03*phycon.te03/
204  phycon.te01);
205  PutCS(cs,&TauLines[ipT1207]);
206  atom_level2(&TauLines[ipT1207]);
207 
208  /* Si III] 1895, CS=
209  * >>refer si3 cs Dufton, P.L., & Kingston, A.E. 1989, MNRAS, 241, 209
210  * >>refer si3 cs Dufton, P.L., & Kingston, A.E. 1994, ADNDT, 57, 273
211  * grnd 3s^2 ^1S, upper lev 3p ^3P^o j=0,1,2 */
212  /* >>refer si3 as Callegari, F., & Trigueiros, A.G., 1998, ApJS, 119, 181
213  * >>chng 00 nov 01, A about 3x larger than before */
214  cs = 106./(phycon.te10*phycon.te10*phycon.te10*phycon.te02);
215  /* >>chng 01 sep 09, AtomSeqBeryllium will reset this to 1/3 so critical density correct */
216  PutCS(cs,&TauLines[ipT1895]);
217  AtomSeqBeryllium(1.8,3.6,10.4,&TauLines[ipT1895],.013);
218  embesq.em1895 = (realnum)(atoms.PopLevels[3]*0.013*1.05e-11);
219 
220  /* Si IV 1394, 1403, data from
221  * >>refer si4 as Mendoza, C. 1982, in Planetary Nebulae, IAU Symp No. 103,
222  * >>refercon ed by D.R. Flower, (D. Reidel: Holland), 143
223  * cs from
224  * >>refer si4 cs Dufton, P.L., & Kingston, A.E. 1987, J.Phys. B, 20, 3899 */
225  cs = 6.37*phycon.te10;
226  PutCS(cs*0.667,&TauLines[ipT1394]);
227  PutCS(cs*0.333,&TauLines[ipT1403]);
228  PutCS(1.0,&TauDummy);
229  atom_level3(&TauLines[ipT1403],&TauDummy,&TauLines[ipT1394]);
230 
231  /* Si VI 1.96 micron
232  * >>referold si6 cs Saraph, H.E. & Tully, J.A. 1994, A&AS, 107, 29
233  * >>chng 96 jul 16 had been constant */
234  /*cs = MIN2(0.43,0.0448*phycon.te20/phycon.te003/phycon.te003);*/
235  /*cs = MAX2(0.3,cs);*/
236  /* >>refer si6 cs Berrington,K.A.,Saraph, H.E. & Tully, J.A. 1998, A&AS, 124, 161*/
237  /* >>chng 06 jul 11-Humeshkar Nemala*/
238  if(phycon.te< 1.43E5)
239  {
240  cs = (realnum)(0.0207*(phycon.te30/phycon.te04)*phycon.te0001);
241  }
242  else
243  {
244  cs = (realnum)(3.9042/((phycon.te20/phycon.te02)*phycon.te001*phycon.te0003));
245  }
246  PutCS(cs,&TauLines[ipSi619]);
247  atom_level2(&TauLines[ipSi619]);
248 
249  /* Si VII 2148- OIII like,
250  * >>refer si7 cs Kafatos, M., & Lynch, J.P. 1980, ApJS, 42, 611 */
251  sil.c2148 =
252  atom_pop2(0.4,9.,5.,15.,6.7e4,dense.xIonDense[13][6])*9.26e-12;
253  CoolAdd("Si 7",2148,sil.c2148);
254 
255  /* Si VII ground term, 2.48, 6.51 microns
256  * cs
257  * >>refer si7 cs Butler, K., & Zeippen, C.J. 1994, A&AS, 108, 1 */
258  /* more recent paper, for solar case, which does not give thermal averaged
259  * collision strengths, is
260  * >>refer Si7 data Bhatia, A.K., & Landi, E. 2003, ApJ, 585, 587-597 */
263  cs = MIN2(0.217,0.0904*phycon.te05*phycon.te03/phycon.te003/
264  phycon.te001);
265  PutCS(cs,&TauLines[ipTSi65]);
266 
267  cs = MIN2(0.70,8.79e-2*phycon.te10*phycon.te10/phycon.te02);
268  PutCS(cs,&TauLines[ipTSi25]);
269 
270  cs = MIN2(0.20,9.751e-3*phycon.te20*phycon.te03*phycon.te03/
271  phycon.te003);
272  PutCS(cs,&TauDummy);
273 
274  atom_level3(&TauLines[ipTSi25],&TauLines[ipTSi65],&TauDummy);
275 
276  /* Si 8 1446, 3727-like,
277  * >>refer si8 cs Kafatos, M., & Lynch, J.P. 1980, ApJS, 42, 611 */
278  sil.c1446 =
279  atom_pop2(0.4,4.,10.,1.,9.97e4,dense.xIonDense[13][7])*
280  1.39e-11;
281  CoolAdd("Si 8",1446,sil.c1446);
282 
283  /* Si 9 1985, 2150
284  * cs, As from
285  * >>refer si9 cs Aggarwal, K.M. 1983, J.Phys. B, 16, L59
286  * >>refer si9 as Baluja, K.L. 1985, J.Phys. B, 18, L413 */
287  sil.c949 =
288  atom_pop3(9.,5.,1.,0.5913,0.0757,0.225,26.3,214.,5.16,
289  7.62e4,7.902e4,&p2,dense.xIonDense[13][8],0.,0.,0.)*214.*2.096e-11;
290  sil.c1815 = sil.c949*1.912*0.0516;
291  sil.c1985 = p2*26.3*1.0e-11;
292  CoolAdd("Si 9",949,sil.c949);
293  CoolAdd("Si 9",1815,sil.c1815);
294  CoolAdd("Si 9",1985,sil.c1985);
295 
296  /* Si 9 3P fine structure lines, A=
297  * >>refer si9 as Baluja, K.L. 1985, J.Phys. B, 18, L413
298  * 2.583, 3.9microns
299  * CS=
300  * >>refer si9 cs Lennon, D.J. Burke, V.M. 1994, A&AS, 103, 273 */
301  cs01 = MIN2(0.98,28.51/(phycon.te10*phycon.te10*phycon.te10*
303 
304  cs12 = MIN2(2.7,81.21/(phycon.te10*phycon.te10*phycon.te10*
306 
307  cs02 = MIN2(0.70,19.67/(phycon.te10*phycon.te10*phycon.te10*
309 
310  PutCS(cs01,&TauLines[ipTSi4]);
311  PutCS(cs12,&TauLines[ipTSi3]);
312  PutCS(cs02,&TauDummy);
313 
314  atom_level3(&TauLines[ipTSi4],&TauLines[ipTSi3],&TauDummy);
315 
316  /* 5S0 - 3P, cs from, A=guess
317  * >>refer si9 cs Aggarwal, K.M. 1984, ApJS, 54, 1 */
318  sil.c691 = atom_pop2(40.6/phycon.sqrte*phycon.te10,9.,5.,
319  1e4,2.081e5,dense.xIonDense[13][8])*2.88e-11;
320  CoolAdd("Si 9",691,sil.c691);
321 
322  /* Si 10 606, actually three lines clumped together, ll 621.1, 611.7, 598.6
323  * atomic data
324  * >>refer si10 cs Saha, H.P., & Trefftz, E. 1982, A&A, 116, 224 */
325  /* >>chng 03 sep 27, rm expion move to simple two level with rt */
326  /*CoolHeavy.c606 =
327  0.10*1.42e-16*expion(2.4e5,dense.xIonDense[13][10-1]);
328  CoolAdd("Si10",606,CoolHeavy.c606);*/
329  PutCS(0.1,&TauLines[ipSi10_606]);
330  atom_level2(&TauLines[ipSi10_606]);
331 
332  /* Si 10 1.43m, A from
333  * >>refer si10 as Chandra, S. 1982, SoPh, 75, 133
334  * cs from
335  * >>refer si10 cs Zhang, H.L., Graziani, M., Pradhan, A.K. 1994, A&A, 283, 319 */
336  if( phycon.te <= 40500. )
337  {
338  cs = 0.190*phycon.te20/phycon.te001;
339  }
340  else
341  {
343  phycon.te003);
344  }
345  PutCS(cs,&TauLines[ipSi10143]);
346  atom_level2(&TauLines[ipSi10143]);
347 
348  /* SI 11 582.9, 1909-LIKE, CS=
349  * >>refer si11 cs Berrington, K.A., Burke, P.G., Dufton, P.L., Kingston, A.E.
350  * >>refercon 1985, At. Data Nucl. Data Tables, 33, 195
351  * A=
352  * >>refer si11 as Muhlethaler, H.P., & Nussbaumer, H. 1976, A&A 48, 109 */
353  sil.c583 =
354  atom_pop2(0.10,1.,9.,1e5,2.47e5,dense.xIonDense[13][11-1])*
355  3.4e-11;
356  CoolAdd("Si11",583,sil.c583);
357 
358  /* li seq 2s2p and 2s3p, Si 12 499, 521
359  * >>refer si12 cs Cochrane, D.M., & McWhirter, R.W.P. 1983, PhyS, 28, 25 */
360  ligbar(14,&TauLines[ipTSi499],&TauLines[ipTSi41],&cs2s2p,&cs2s3p);
361  PutCS(cs2s2p,&TauLines[ipTSi499]);
362  PutCS(cs2s2p*0.5,&TauLines[ipTSi521]);
363  PutCS(1.0,&TauDummy);
364  atom_level3(&TauLines[ipTSi521],&TauDummy,&TauLines[ipTSi499]);
365 
366  PutCS(cs2s3p,&TauLines[ipTSi41]);
367  atom_level2(&TauLines[ipTSi41]);
368  return;
369 }

Generated for cloudy by doxygen 1.8.3.1