cloudy  trunk
cool_sodi.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 /*CoolSodi compute sodium cooling */
4 #include "cddefines.h"
5 #include "coolheavy.h"
6 #include "taulines.h"
7 #include "dense.h"
8 #include "phycon.h"
9 #include "lines_service.h"
10 #include "atoms.h"
11 #include "cooling.h"
12 
13 void CoolSodi(void)
14 {
15  double a12,
16  a13,
17  a23,
18  cs,
19  cs13,
20  cs23,
21  p3;
22  realnum p2;
23 
24  DEBUG_ENTRY( "CoolSodi()" );
25 
26  /* NaD Na D Na1 Na 1 lines
27  * transition is 3s-3p, ^2P^o - ^2P^o
28  * change 26 Feb 96 cs to Verner's value */
29  cs = 2.12e-2*(phycon.te70/phycon.te02);
30  PutCS(cs,TauLines[ipT5895]);
32 
33  /* [NaIII] 7.319 microns
34  * cs
35  * >>refer na3 cs Saraph, H.E. & Tully, J.A. 1994, A&AS, 107, 29 */
36  cs = MIN2(0.40,0.198*phycon.te05*phycon.te01);
37  cs = MAX2(0.35,cs);
40 
41  /* collision data from
42  * >>refer na4 cs Butler, K., & Zeippen, C.J. 1994, A&AS, 108, 1
43  * [NaIV] 9.048 microns */
44  PutCS(0.802,TauLines[ipfsNa490]);
45  /* [NaIV] 21.29 mic */
46  PutCS(0.273,TauLines[ipfsNa421]);
47  /* following from pradhan review */
48  PutCS(.111,*TauDummy);
50 
51  /* >>chng 97 mar 19, added NaV lines
52  * NaV lines, collision data from
53  * >>refer na5 cs Mendoza, C. 1982, in Planetary Nebulae, IAU Symp No. 103,
54  * >>refercon ed by D.R. Flower, (D. Reidel: Holland), 143
55  * A's from
56  * >>refer na5 as Kaufman, V., & Sugar, J. 1986, J Phys Chem Ref Dat, 15, 321
57  * >>chng 97 jul 25, cs had been 1, changed to Me */
58  cs = 0.919;
59  cs13 = 0.359;
60  cs23 = 1.915;
61  a12 = 8.16e-3;
62  a13 = 3.81;
63  a23 = 2.68;
64  /* POP3(G1,G2,G3,O12,O13,O23,A21,A31,A32,E12,E23,P2,ABUND,GAM2) */
65  p3 = atom_pop3(4.,10.,6.,cs,cs13,cs23,a12,a13,a23,6.96e4,3.58e4,&p2,
66  dense.xIonDense[ipSODIUM][4],0.,0.,0.);
67  CoolHeavy.c1365 = p3*a13*1.46e-11;
68  CoolHeavy.c4017 = p3*a23*4.95e-12;
69  CoolHeavy.c2067 = p2*a12*9.63e-12;
70  CoolAdd("Na 5",1365,CoolHeavy.c1365);
71  CoolAdd("Na 5",4017,CoolHeavy.c4017);
72  CoolAdd("Na 5",2067,CoolHeavy.c2067);
73 
74  /* [Na VI] 14.32 mic, 8.62 mic */
75  cs = MIN2(0.77,2.346/(phycon.te10*phycon.te02*phycon.te001));
77  cs = MIN2(2.15,6.934/(phycon.te10*phycon.te03/phycon.te001/
78  phycon.te001));
80  cs = MIN2(0.53,1.518/(phycon.te10*phycon.te01*phycon.te003*
81  phycon.te003));
82  PutCS(cs,*TauDummy);
83 
85 
86  /* [Na VI] UV lines, 2971.9, 2872.7 doublet, 2578.9, 1356.6
87  * POP3(G1,G2,G3,O12,O13,O23,A21,A31,A32,E12,E23,P2,ABUND,GAM2) */
88  cs = MIN2(0.2876,2.603e-3/(phycon.sqrte/phycon.te10));
89  cs = MAX2(0.1,cs);
90 
91  CoolHeavy.c2569 = atom_pop3(9.,5.,1.,1.38,0.173,cs,1.68,16.9,5.27,5.01e4,
92  5.60e4,&p2,dense.xIonDense[ipSODIUM][5],0.,0.,0.)*5.27*6.70e-12;
93 
94  CoolHeavy.c1357 = CoolHeavy.c2569*(16.9/5.27)*(2972./1357.);
95  CoolHeavy.c2972 = p2*1.68*6.70e-12;
96 
97  CoolAdd("Na 6",2569,CoolHeavy.c2569);
98  CoolAdd("Na 6",1357,CoolHeavy.c1357);
99  CoolAdd("Na 6",2972,CoolHeavy.c2972);
100 
101  /* [Na VII] 4.675 microns, no CS (interpolated), A NIST
102  * collision strength interpolated from
103  * >>refer na7 cs Lennon, D.J. Burke, V.M. 1994, A&AS, 103, 273 */
104  PutCS(1.5,TauLines[ipxNa0746]);
106  return;
107 }
ipfsNa490
long ipfsNa490
Definition: atmdat_readin.cpp:57
t_CoolHeavy::c1365
double c1365
Definition: coolheavy.h:57
dense
t_dense dense
Definition: dense.cpp:24
atoms.h
t_phycon::te001
double te001
Definition: phycon.h:67
realnum
float realnum
Definition: cddefines.h:103
atom_level3
void atom_level3(const TransitionProxy &t10, const TransitionProxy &t21, const TransitionProxy &t20)
Definition: atom_level3.cpp:15
t_phycon::te03
double te03
Definition: phycon.h:59
phycon
t_phycon phycon
Definition: phycon.cpp:6
ipfsNa373
long ipfsNa373
Definition: atmdat_readin.cpp:57
lines_service.h
CoolAdd
void CoolAdd(const char *chLabel, realnum lambda, double cool)
Definition: cool_etc.cpp:13
MIN2
#define MIN2
Definition: cddefines.h:761
ipfsNa421
long ipfsNa421
Definition: atmdat_readin.cpp:57
t_CoolHeavy::c1357
double c1357
Definition: coolheavy.h:55
CoolSodi
void CoolSodi(void)
Definition: cool_sodi.cpp:13
dense.h
t_CoolHeavy::c4017
double c4017
Definition: coolheavy.h:59
coolheavy.h
t_phycon::te01
double te01
Definition: phycon.h:61
cooling.h
ipxNa6143
long ipxNa6143
Definition: atmdat_readin.cpp:58
cddefines.h
t_CoolHeavy::c2067
double c2067
Definition: coolheavy.h:58
TauDummy
TransitionProxy::iterator TauDummy
Definition: taulines.cpp:60
t_phycon::te02
double te02
Definition: phycon.h:60
PutCS
void PutCS(double cs, const TransitionProxy &t)
Definition: transition.cpp:317
MAX2
#define MAX2
Definition: cddefines.h:782
t_CoolHeavy::c2972
double c2972
Definition: coolheavy.h:56
t_dense::xIonDense
double xIonDense[LIMELM][LIMELM+1]
Definition: dense.h:125
TauLines
TransitionList TauLines("TauLines", &AnonStates)
t_phycon::te003
double te003
Definition: phycon.h:65
t_phycon::te10
double te10
Definition: phycon.h:55
atom_level2
void atom_level2(const TransitionProxy &t)
Definition: atom_level2.cpp:17
t_phycon::te70
double te70
Definition: phycon.h:51
atom_pop3
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
taulines.h
CoolHeavy
t_CoolHeavy CoolHeavy
Definition: coolheavy.cpp:5
ipxNa6862
long ipxNa6862
Definition: atmdat_readin.cpp:58
ipSODIUM
const int ipSODIUM
Definition: cddefines.h:315
phycon.h
t_phycon::sqrte
double sqrte
Definition: phycon.h:48
t_phycon::te05
double te05
Definition: phycon.h:57
ipxNa0746
long ipxNa0746
Definition: atmdat_readin.cpp:58
t_CoolHeavy::c2569
double c2569
Definition: coolheavy.h:54
ipT5895
long ipT5895
Definition: atmdat_readin.cpp:57
DEBUG_ENTRY
#define DEBUG_ENTRY(funcname)
Definition: cddefines.h:684