cloudy  trunk
cool_chro.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 /*CoolChro compute chromium cooling */
4 #include "cddefines.h"
5 #include "taulines.h"
6 #include "coolheavy.h"
7 #include "lines_service.h"
8 #include "dense.h"
9 #include "atoms.h"
10 #include "cooling.h"
11 #include "phycon.h"
12 
13 
14 void CoolChro(void)
15 {
16  double a21,
17  a31,
18  a32;
19  realnum p2,
20  p3;
21 
22  DEBUG_ENTRY( "CoolChro()" );
23 
24  /* Cr Chromium cooling
25  *
26  * POPEXC( O12,g1,g2,A21,excit,abund); result already*a21
27  * [Cr III] 5828, multiplet average */
28  CoolHeavy.Cr3l21 = atom_pop2(25.,25.,9.,0.05,2.47e4,dense.xIonDense[ipCHROMIUM][2])*
29  3.41e-12;
30  CoolAdd("Cr 3",5828,CoolHeavy.Cr3l21);
31 
32  /* Cr IV
33  * these are 2 lines estimated by Jim Kingdon
34  * a's are bad, collision strengths just one */
35  a21 = 0.053;
36  a31 = 0.102;
37  a32 = 0.00;
38  /* POP3(G1,G2,G3,O12,O13,O23,A21,A31,A32,E12,E23,P2,ABUND,GAM2)
39  * energies are in kelvin */
40  p3 = (realnum)atom_pop3(28.,12.,18.,28.,12.,18.,a21,a31,a32,19795.,1356.,&p2,
41  dense.xIonDense[ipCHROMIUM][3],0.,0.,0.);
42  /* multiplet at roughly 6801 A */
43  CoolHeavy.Cr4l31 = p3*a31*2.92e-12;
44  /* multiplet at roughly 7267 A */
45  CoolHeavy.Cr4l21 = p2*a21*2.74e-12;
46  CoolAdd("Cr 4",6801,CoolHeavy.Cr4l31);
47  CoolAdd("Cr 4",7267,CoolHeavy.Cr4l21);
48 
49  /* Cr V
50  * these are 3 lines estimated by Jim Kingdon
51  * a's are bad, collision strengths just one */
52  a21 = 0.157;
53  a31 = 0.048;
54  a32 = 0.016;
55  /* POP3(G1,G2,G3,O12,O13,O23,A21,A31,A32,E12,E23,P2,ABUND,GAM2)
56  * energies are in kelvin */
57  p3 = (realnum)atom_pop3(21.,5.,9.,21.,5.,9.,a21,a31,a32,18028.,3842.,&p2,dense.xIonDense[ipCHROMIUM][4],
58  0.,0.,0.);
59  /* multiplet at roughly 6577 A */
60  CoolHeavy.Cr5l31 = p3*a31*3.02e-12;
61  /* multiplet at roughly 7979 A */
62  CoolHeavy.Cr5l21 = p2*a21*2.49e-12;
63  /* multiplet at roughly 3.74 microns */
64  CoolHeavy.Cr5l32 = p2*a32*5.31e-13;
65  CoolAdd("Cr 5",6577,CoolHeavy.Cr5l31);
66  CoolAdd("Cr 5",37,CoolHeavy.Cr5l32);
67  CoolAdd("Cr 5",7979,CoolHeavy.Cr5l21);
68 
69  return;
70 }
atom_pop2
double atom_pop2(double omega, double g1, double g2, double a21, double bltz, double abund)
Definition: atom_pop2.cpp:9
dense
t_dense dense
Definition: dense.cpp:24
atoms.h
t_CoolHeavy::Cr4l21
double Cr4l21
Definition: coolheavy.h:44
realnum
float realnum
Definition: cddefines.h:103
CoolChro
void CoolChro(void)
Definition: cool_chro.cpp:14
lines_service.h
CoolAdd
void CoolAdd(const char *chLabel, realnum lambda, double cool)
Definition: cool_etc.cpp:13
ipCHROMIUM
const int ipCHROMIUM
Definition: cddefines.h:328
dense.h
coolheavy.h
cooling.h
cddefines.h
t_CoolHeavy::Cr3l21
double Cr3l21
Definition: coolheavy.h:48
t_CoolHeavy::Cr4l31
double Cr4l31
Definition: coolheavy.h:43
t_dense::xIonDense
double xIonDense[LIMELM][LIMELM+1]
Definition: dense.h:125
t_CoolHeavy::Cr5l31
double Cr5l31
Definition: coolheavy.h:45
t_CoolHeavy::Cr5l21
double Cr5l21
Definition: coolheavy.h:46
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
t_CoolHeavy::Cr5l32
double Cr5l32
Definition: coolheavy.h:47
DEBUG_ENTRY
#define DEBUG_ENTRY(funcname)
Definition: cddefines.h:684