cloudy  trunk
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
prt_lines_molecules.cpp
Go to the documentation of this file.
1 /* This file is part of Cloudy and is copyright (C)1978-2008 by Gary J. Ferland and
2  * others. For conditions of distribution and use see copyright notice in license.txt */
3 /*lines_molecules put energetics, H, and He lines into line intensity stack */
4 #include "cddefines.h"
5 #include "taulines.h"
6 #include "physconst.h"
7 #include "coolheavy.h"
8 #include "thermal.h"
9 #include "dense.h"
10 #include "hmi.h"
11 #include "phycon.h"
12 #include "h2.h"
13 #include "mole.h"
14 #include "lines_service.h"
15 #include "radius.h"
16 #include "lines.h"
17 
18 void lines_molecules(void)
19 {
20  long int i;
21 
22  DEBUG_ENTRY( "lines_molecules()" );
23 
24  /* molecules */
25  i = StuffComment( "molecules" );
26  linadd( 0., (realnum)i , "####", 'i',
27  " molecules");
28 
29 
30  /* >>refer H2 rot Lepp, S., & Shull, J.M., 1983, ApJ, 270, 578-582
31  * roughly two microns */
32  linadd(CoolHeavy.h2line,20000.,"H2 l",'c',
33  "cooling due H2 rotation lines from simple model" );
34  /* remember largest fraction of H2 cooling for possible comment */
36 
37  /* HD rotation cooling */
38  linadd(CoolHeavy.HD,0,"HDro",'c',
39  "HD rotation cooling");
40 
41  /* molecular hydrogen heating */
44 
45  /* largest fraction of heating due to photo dissoc of H2+ */
47 
48  linadd(hmi.HeatH2Dish_used,0,"H2dH",'h',
49  "heating by H2 dissociation by photons and cosmic rays");
50 
51  /*remember largest fraction of heating due to H2 vib deexcitation */
53 
54  /*remember largest fraction of cooling due to H2 cooling */
56 
57  linadd( MAX2(0.,hmi.HeatH2Dexc_used),0,"H2vH",'h',
58  "heating by coll deexcit of vib-excited H2");
59 
60  linadd( MAX2(0.,-hmi.HeatH2Dexc_used) ,0,"H2vC",'c',
61  " cooling by coll deexcit of vib-excited H2");
62 
63  /* line emission by vib-excited H2 */
64  if( h2.lgH2ON )
65  {
66 
67  linadd( 0. ,0,"H2 v",'i',
68  " when large molecule is turned on do not print this simple estimate line emission by vib-excited H2 ");
69  }
70  else
71  {
72  linadd( hmi.Hmolec[ipMH2s]*2e-7*4.17e-12,0,"H2 v",'i',
73  " H2 vib-excited lines from Tielens & Hollenbach 1985");
74  }
75 
76  /* add in explicit lines from the large H2 molecule
77  * routine in mole_h2_io.c */
78  H2_LinesAdd();
79 
80  linadd(hmi.hmicol,0,"H-FB",'c',
81  " neg H ion free-bound emission, H + e -> H- + hnu ");
82 
83  linadd(CoolHeavy.brems_cool_hminus,0,"H-FF",'i',
84  " neg H ion free-free emission ");
85 
86  linadd(hmi.HalphaHmin*3.032e-12,6563,"H-CT",'i',
87  " H-alpha produced by H- mutual neutralization ");
88 
89  /* remember total heating */
91 
92  linadd(MAX2(0.,hmi.hmihet),0,"H- H",'h',
93  " H- heating ");
94 
95  linadd(MAX2(0.,-hmi.hmihet),0,"H-Hc",'c',
96  " induced H- cooling ");
97 
98  linadd(CoolHeavy.H2PlsCool,0,"H2+ ",'c',
99  " H+ + H => H2+ + photon continuum cooling ");
100 
101  linadd(hmi.h2plus_heat,0,"H2+p",'h',
102  " H2+ photo dissoc heating ");
103 
105  (1.76e-11+phycon.te*BOLTZMANN)*dense.xIonDense[ipHYDROGEN][0]*dense.xIonDense[ipHELIUM][1]*1e-16,0,"HEH+",'i' ,
106  " HeH+ formation cooling ");
107 
108  /* carbon monoxide heating */
111 
112  linadd(co.CODissHeat,0,"COdh",'h',
113  " carbon monoxide co photodissociation ");
114 
116  linadd(CoolHeavy.C12O16Rot,0,"CO12",'c',
117  " total c12o16 cooling ");
118 
119  linadd(CoolHeavy.C13O16Rot,0,"CO13",'c' ,
120  " total c13o16 cooling ");
121 
122  /* remember most amount of CO cooling */
124 
125  /* add in CO carbon monoxide lines */
126  for( i=0; i < nCORotate; i++ )
127  {
128  PutLine(&C12O16Rotate[i],
129  "CO 12/16");
130  }
131  for( i=0; i < nCORotate; i++ )
132  {
133  PutLine(&C13O16Rotate[i],
134  "CO 13/16 ");
135  }
136  return;
137 }

Generated for cloudy by doxygen 1.8.1.1