cloudy
trunk
source
cool_phos.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
/*CoolPhos compute phosphorus cooling */
4
#include "
cddefines.h
"
5
#include "
taulines.h
"
6
#include "
dense.h
"
7
#include "
lines_service.h
"
8
#include "
phycon.h
"
9
#include "
coolheavy.h
"
10
#include "
atoms.h
"
11
#include "
cooling.h
"
12
13
void
CoolPhos
(
void
)
14
{
15
double
cs, cs21 , cs31 , cs32;
16
double
a21 , a31 , a32;
17
realnum
p2, p3;
18
19
DEBUG_ENTRY
(
"CoolPhos()"
);
20
21
/* [P II] 60.64, 32.87 microns
22
* cs, As from
23
* >>refer p2 as Mendoza, C., & Zeippen, C.J., 1982, MNRAS 199, 1025
24
* >>refer p2 cs Krueger, T.K., and Czyzak, S.J., 1970, Proc Roy Soc London A 318, 531 */
26
PutCS
(1.587,
TauLines
[
ipP0260
]);
27
PutCS
(3.566,
TauLines
[
ipP0233
]);
28
PutCS
(1.0,*
TauDummy
);
29
30
/* atom_level3( t10,t21,t20) */
31
atom_level3
(
TauLines
[
ipP0260
],
TauLines
[
ipP0233
],*
TauDummy
);
32
33
/* >>chng 01 may 15, add these three lines, discussed in
34
* Oliva, E., Marconi, A., et al. A&A 2001, 369, L5 */
35
/* the 1D-3P and 1S-1d forbidden lines of [PII] */
36
/* >>refer p2 as Mendoza, C., & Zeippen, C.J., 1982, MNRAS 199, 1025*/
37
a21 = 1.952e-2;
38
a31 = 0.2025;
39
a32 = 1.64;
40
/* these are just a guess */
41
cs21 = 1.;
42
cs31 = 1.;
43
cs32 = 1.;
44
p3 = (
realnum
)(
atom_pop3
(9.,5.,1.,cs21,cs31,cs32,
45
a21,a31,a32,12534.,7877.9,&p2,
dense
.
xIonDense
[
ipPHOSPHORUS
][1], 0.,0.,0.));
46
CoolHeavy
.
p2_32
= p3*a32*1.21e-12;
47
CoolHeavy
.
p2_31
= p3*a31*4.23e-12;
48
CoolHeavy
.
p2_21
= p2*a21*1.72e-12;
49
/* 3-2 1.64 mic */
50
CoolAdd
(
"p 2"
,16400,
CoolHeavy
.
p2_32
);
51
/* 3-1 4670, 4738 */
52
CoolAdd
(
"p 2"
,4700,
CoolHeavy
.
p2_31
);
53
/* 2-1 1.147, 1.189 mic */
54
CoolAdd
(
"p 2"
,11600,
CoolHeavy
.
p2_21
);
55
56
/* [P III] 17.885 microns
57
* cs, A from
58
* >>refer p3 as Kaufman, V., & Sugar, J., 1986, J Phys Chem Ref Data 15, 321
59
* >>refer p3 cs Krueger, T.K., and Czyzak, S.J., 1970, Proc Roy Soc London A 318, 531 */
60
PutCS
(1.859,
TauLines
[
ipP0318
]);
61
atom_level2
(
TauLines
[
ipP0318
]);
62
63
/* [P VII] 1.374 microns
64
* cs from
65
* >>referold p7 cs Saraph, H.E. & Tully, J.A. 1994, A&AS, 107, 29 */
66
67
/* >>refer p7 cs Berrington,K.A., Saraph, H.E. & Tully, J.A. 1998, A&AS, 129, 161 */
68
/*>>chng 06 jul 18 Changes made-Humeshkar Nemala*/
69
/*There are two fits to the cs:Above and below 7.77e5*/
70
if
(
phycon
.
te
< 7.77E5)
71
{
72
cs = (
realnum
)(0.0986*(
phycon
.
te10
/(
phycon
.
te01
*
phycon
.
te002
)));
73
}
74
else
75
{
76
cs = (
realnum
)(12.2273/((
phycon
.
te30
/
phycon
.
te04
)*
phycon
.
te007
*
phycon
.
te0004
));
77
}
78
/*PutCS(0.27,TauLines[ipP713]);*/
79
PutCS
(cs,
TauLines
[
ipP713
]);
80
atom_level2
(
TauLines
[
ipP713
]);
81
82
return
;
83
}
t_CoolHeavy::p2_32
double p2_32
Definition:
coolheavy.h:101
ipP713
long ipP713
Definition:
atmdat_readin.cpp:75
dense
t_dense dense
Definition:
dense.cpp:24
atoms.h
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_CoolHeavy::p2_21
double p2_21
Definition:
coolheavy.h:100
phycon
t_phycon phycon
Definition:
phycon.cpp:6
lines_service.h
CoolAdd
void CoolAdd(const char *chLabel, realnum lambda, double cool)
Definition:
cool_etc.cpp:13
ipP0260
long ipP0260
Definition:
atmdat_readin.cpp:74
CoolPhos
void CoolPhos(void)
Definition:
cool_phos.cpp:13
t_phycon::te0004
double te0004
Definition:
phycon.h:72
t_CoolHeavy::p2_31
double p2_31
Definition:
coolheavy.h:102
dense.h
ipP0233
long ipP0233
Definition:
atmdat_readin.cpp:74
coolheavy.h
t_phycon::te01
double te01
Definition:
phycon.h:61
cooling.h
cddefines.h
TauDummy
TransitionProxy::iterator TauDummy
Definition:
taulines.cpp:60
t_phycon::te002
double te002
Definition:
phycon.h:66
PutCS
void PutCS(double cs, const TransitionProxy &t)
Definition:
transition.cpp:317
t_phycon::te30
double te30
Definition:
phycon.h:53
ipPHOSPHORUS
const int ipPHOSPHORUS
Definition:
cddefines.h:319
t_dense::xIonDense
double xIonDense[LIMELM][LIMELM+1]
Definition:
dense.h:125
TauLines
TransitionList TauLines("TauLines", &AnonStates)
t_phycon::te04
double te04
Definition:
phycon.h:58
t_phycon::te007
double te007
Definition:
phycon.h:62
t_phycon::te10
double te10
Definition:
phycon.h:55
atom_level2
void atom_level2(const TransitionProxy &t)
Definition:
atom_level2.cpp:17
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
phycon.h
ipP0318
long ipP0318
Definition:
atmdat_readin.cpp:75
t_phycon::te
double te
Definition:
phycon.h:11
DEBUG_ENTRY
#define DEBUG_ENTRY(funcname)
Definition:
cddefines.h:684
Generated by
1.8.17