cloudy
trunk
source
two_photon.h
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
4
#ifndef TWO_PHOTON_H_
5
#define TWO_PHOTON_H_
6
7
#include "
transition.h
"
8
9
class
two_photon
10
{
11
public
:
12
two_photon
()
13
{
14
ipHi
= -1;
15
ipLo
= -1;
16
Pop
= NULL;
17
E2nu
= 0.;
18
AulTotal
= 0.f;
19
ipTwoPhoE
= -1;
20
ipSym2nu
.clear();
21
As2nu
.clear();
22
local_emis
.clear();
23
induc_up
= 0.;
24
induc_dn
= 0.;
25
induc_dn_max
= 0.;
26
}
27
28
void
Reset
()
29
{
30
induc_up
= 0.;
31
induc_dn
= 0.;
32
induc_dn_max
= 0.;
33
}
34
35
long
ipHi
,
ipLo
;
36
double
*
Pop
;
37
double
E2nu
;
38
realnum
AulTotal
;
39
40
// pointer to the energy representing the two-photon gap,
41
long
ipTwoPhoE
;
42
43
// series of symmetric indices for two photon
44
vector<long>
ipSym2nu
;
45
// two photon transition probabilities per energy bin
46
vector<realnum>
As2nu
;
47
// local emission per ( photons cm-3 s-1 bin-1 )
48
vector<realnum>
local_emis
;
49
50
// the induced upward two-photon rate
51
double
induc_up
;
52
// the induced downward two-photon rate
53
double
induc_dn
;
54
// the largest induced downward two photon rate
55
double
induc_dn_max
;
56
};
57
58
void
atmdat_2phot_setSplineCoefs
();
59
66
double
atmdat_2phot_shapefunction
(
double
EbyE2nu,
long
ipISO,
long
nelem );
67
68
void
CalcTwoPhotonRates
(
two_photon
& tnu,
bool
lgDoInduced );
69
void
CalcTwoPhotonEmission
(
two_photon
& tnu,
bool
lgDoInduced );
70
71
void
PrtTwoPhotonEmissCoef
(
const
two_photon
& tnu,
const
double
& densityProduct );
72
73
// note the default values for the last two parameters -- the code uses HI 2s-1s shapefunctions by default
74
void
TwoPhotonSetup
( vector<two_photon> &tnu_vec,
const
long
&ipHi,
const
long
&ipLo,
const
double
&Aul,
const
TransitionProxy
&tr,
const
long
ipISO,
const
long
nelem );
75
76
#endif
/* TWO_PHOTON_H_ */
atmdat_2phot_shapefunction
double atmdat_2phot_shapefunction(double EbyE2nu, long ipISO, long nelem)
Definition:
atmdat_2photon.cpp:234
CalcTwoPhotonEmission
void CalcTwoPhotonEmission(two_photon &tnu, bool lgDoInduced)
Definition:
two_photon.cpp:125
two_photon::induc_dn
double induc_dn
Definition:
two_photon.h:53
two_photon::induc_up
double induc_up
Definition:
two_photon.h:51
realnum
float realnum
Definition:
cddefines.h:103
two_photon::ipTwoPhoE
long ipTwoPhoE
Definition:
two_photon.h:41
two_photon::induc_dn_max
double induc_dn_max
Definition:
two_photon.h:55
atmdat_2phot_setSplineCoefs
void atmdat_2phot_setSplineCoefs()
Definition:
atmdat_2photon.cpp:213
CalcTwoPhotonRates
void CalcTwoPhotonRates(two_photon &tnu, bool lgDoInduced)
Definition:
two_photon.cpp:83
TwoPhotonSetup
void TwoPhotonSetup(vector< two_photon > &tnu_vec, const long &ipHi, const long &ipLo, const double &Aul, const TransitionProxy &tr, const long ipISO, const long nelem)
Definition:
two_photon.cpp:9
TransitionProxy
Definition:
transition.h:23
two_photon::ipHi
long ipHi
Definition:
two_photon.h:35
transition.h
two_photon::Pop
double * Pop
Definition:
two_photon.h:36
two_photon::two_photon
two_photon()
Definition:
two_photon.h:12
PrtTwoPhotonEmissCoef
void PrtTwoPhotonEmissCoef(const two_photon &tnu, const double &densityProduct)
Definition:
two_photon.cpp:157
two_photon::local_emis
vector< realnum > local_emis
Definition:
two_photon.h:48
two_photon::ipLo
long ipLo
Definition:
two_photon.h:35
two_photon::Reset
void Reset()
Definition:
two_photon.h:28
two_photon::E2nu
double E2nu
Definition:
two_photon.h:37
two_photon::ipSym2nu
vector< long > ipSym2nu
Definition:
two_photon.h:44
two_photon
Definition:
two_photon.h:9
two_photon::As2nu
vector< realnum > As2nu
Definition:
two_photon.h:46
two_photon::AulTotal
realnum AulTotal
Definition:
two_photon.h:38
Generated by
1.8.17