cloudy trunk
Loading...
Searching...
No Matches
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
13void 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);
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 */
106 return;
107}
long ipxNa0746
long ipT5895
long ipxNa6143
long ipfsNa373
long ipfsNa421
long ipfsNa490
long ipxNa6862
void atom_level2(const TransitionProxy &t)
void atom_level3(const TransitionProxy &t10, const TransitionProxy &t21, const TransitionProxy &t20)
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
#define MIN2
Definition cddefines.h:761
const int ipSODIUM
Definition cddefines.h:315
float realnum
Definition cddefines.h:103
#define MAX2
Definition cddefines.h:782
#define DEBUG_ENTRY(funcname)
Definition cddefines.h:684
void CoolAdd(const char *chLabel, realnum lambda, double cool)
Definition cool_etc.cpp:13
void CoolSodi(void)
Definition cool_sodi.cpp:13
t_CoolHeavy CoolHeavy
Definition coolheavy.cpp:5
t_dense dense
Definition dense.cpp:24
t_phycon phycon
Definition phycon.cpp:6
TransitionProxy::iterator TauDummy
Definition taulines.cpp:60
TransitionList TauLines("TauLines", &AnonStates)
void PutCS(double cs, const TransitionProxy &t)