cloudy trunk
Loading...
Searching...
No Matches
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
13void 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) */
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]);
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]);*/
81
82 return;
83}
long ipP0233
long ipP713
long ipP0318
long ipP0260
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
const int ipPHOSPHORUS
Definition cddefines.h:319
float realnum
Definition cddefines.h:103
#define DEBUG_ENTRY(funcname)
Definition cddefines.h:684
void CoolAdd(const char *chLabel, realnum lambda, double cool)
Definition cool_etc.cpp:13
void CoolPhos(void)
Definition cool_phos.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)