cloudy  trunk
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) */
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]);*/
79  PutCS(cs,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