cloudy  trunk
atomfeii.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 ATOMFEII_H_
5 #define ATOMFEII_H_
6 
16 void AssertFeIIDep( double *pred , double *BigError , double *StdDev );
17 
19 void FeIICreate(void);
21 void FeIIPrint(void);
22 
23 void FeIILevelPops(void);
24 
31 double FeIISumBand(realnum wl1,
32  realnum wl2,
33  double *SumBandInward );
34 
36 void FeII_RT_TauInc(void);
37 
39 void FeII_RT_tau_reset(void);
40 
42 void FeIIPoint(void);
43 
44 
49 void FeIIAccel(double *fe2drive);
50 
54 void FeII_RT_Make( void );
55 
57 void FeIIAddLines( void );
58 
62 void FeIIPunchLevels( FILE * ioPUN );
63 
68 void FeIIPunchColden(
69  FILE *ioPUN );
70 
75 void FeII_Colden( const char *chLabel );
76 
77 
81 void FeIISaveLines( FILE * ioPUN );
82 
86 void FeIIPunchOpticalDepth( FILE * ioPUN );
87 
89 void FeII_LineZero(void);
90 
92 void FeIIIntenZero(void);
93 
95 double FeIIRadPress(void);
96 
100 double FeII_InterEnergy(void);
101 
107 void FeIIPunDepart(FILE* ioPUN ,
108  bool lgDoAll );
109 
110 void PunFeII( FILE * io );
111 
117 void FeIIPun1Depart(FILE * ioPUN , long int nPUN );
123 void FeIIPunData(
124  FILE* ioPUN ,
125  bool lgDoAll );
126 
135 void FeIIPunPop(FILE* ioPUN ,
136  bool lgPunchRange ,
137  long int ipRangeLo ,
138  long int ipRangeHi ,
139  bool lgPunchDensity );
140 
141 
148 void FeIIPunchLineStuff( FILE * io , realnum xLimit , long index);
149 
150 #if 0
151 
157 void FeIIPun1Pop(
158  FILE * ioPUN ,
159  long int nPUN );
160 #endif
161 
163 void FeIIZero(void);
164 
166 void FeIIReset(void);
167 
169 void FeII_OTS(void);
170 
172 void FeII_RT_Out(void);
173 
175 class Parser;
176 
177 void ParseAtomFeII( Parser &p );
178 
180 #define NFE2LEVN 371
181 
185 extern bool lgFeIIMalloc;
186 
187 struct t_FeII {
188 
194 
199 
201  bool lgSlow;
202 
204  bool lgPrint;
205 
208 
211 
214 
217 
220 
222  char chFeIIAtom[7];
223 
226 
230 
234 
237 
241  long int nfe2con;
242 
246 
250  double Fe2_large_cool,
253 
256  double
260 
261  };
262 extern t_FeII FeII;
263 
264  /* this info used to estimate destruction of Lya by overlap with FeII
265  * in case where large atom is not turned on */
266 
268 const int NFEII = 373;
270 const int NFE2PR = 61;
271 
272 class t_fe2ovr_la : public Singleton<t_fe2ovr_la>
273 {
274  friend class Singleton<t_fe2ovr_la>;
275 protected:
276  t_fe2ovr_la();
277 private:
282 
283  long int ipfe2[NFEII];
284 
289 
290  double fe2pt[NFE2PR];
291  double fe2pf[NFE2PR];
292 
294  double fe2par(double te);
295 public:
296  void zero_opacity();
297 
298  void init_pointers();
299 
301  void tau_inc();
302 
304  void atoms_fe2ovr(void);
305 };
306 
307 #endif /* ATOMFEII_H_ */
PunFeII
void PunFeII(FILE *io)
Definition: atom_feii.cpp:2799
t_fe2ovr_la::fe2gs
realnum fe2gs[NFEII]
Definition: atomfeii.h:281
t_FeII::fe2ener
realnum fe2ener[2]
Definition: atomfeii.h:233
t_fe2ovr_la::fe2pt
double fe2pt[NFE2PR]
Definition: atomfeii.h:290
t_fe2ovr_la::tau_inc
void tau_inc()
Definition: atom_fe2ovr.cpp:102
t_FeII::lgShortFe2
bool lgShortFe2
Definition: atomfeii.h:225
t_FeII::lgPrint
bool lgPrint
Definition: atomfeii.h:204
FeIIPunchLineStuff
void FeIIPunchLineStuff(FILE *io, realnum xLimit, long index)
Definition: atom_feii.cpp:2820
FeIISaveLines
void FeIISaveLines(FILE *ioPUN)
Definition: atom_feii.cpp:1709
AssertFeIIDep
void AssertFeIIDep(double *pred, double *BigError, double *StdDev)
Definition: atom_feii.cpp:2452
FeII_RT_Make
void FeII_RT_Make(void)
Definition: atom_feii.cpp:1538
realnum
float realnum
Definition: cddefines.h:103
t_fe2ovr_la::zero_opacity
void zero_opacity()
Definition: atom_fe2ovr.cpp:79
FeIIPunchLevels
void FeIIPunchLevels(FILE *ioPUN)
Definition: atom_feii.cpp:1625
t_FeII::FeIIColl
double FeIIColl[NFE2LEVN][NFE2LEVN][8]
Definition: atomfeii.h:216
t_FeII::lgLyaPumpOn
bool lgLyaPumpOn
Definition: atomfeii.h:229
t_fe2ovr_la::Fe2TauLte
realnum Fe2TauLte[NFEII]
Definition: atomfeii.h:287
t_FeII::ipRedisFcnResonance
int ipRedisFcnResonance
Definition: atomfeii.h:244
t_fe2ovr_la::Fe2PopLte
realnum Fe2PopLte[NFEII]
Definition: atomfeii.h:288
t_fe2ovr_la::fe2osc
realnum fe2osc[NFEII]
Definition: atomfeii.h:279
NFE2PR
const int NFE2PR
Definition: atomfeii.h:270
NFEII
const int NFEII
Definition: atomfeii.h:268
FeIIAccel
void FeIIAccel(double *fe2drive)
Definition: atom_feii.cpp:1509
FeIIZero
void FeIIZero(void)
Definition: atom_feii.cpp:2127
t_FeII::lgFeIILargeOn
bool lgFeIILargeOn
Definition: atomfeii.h:198
t_FeII::feconwlHi
realnum feconwlHi
Definition: atomfeii.h:239
t_fe2ovr_la::fe2enr
realnum fe2enr[NFEII]
Definition: atomfeii.h:280
t_fe2ovr_la
Definition: atomfeii.h:272
FeIIPunDepart
void FeIIPunDepart(FILE *ioPUN, bool lgDoAll)
Definition: atom_feii.cpp:2029
Singleton
Definition: cddefines.h:172
t_FeII::nFeIILevel_local
long int nFeIILevel_local
Definition: atomfeii.h:191
t_FeII::ddT_Fe2_UVsimp_cool
double ddT_Fe2_UVsimp_cool
Definition: atomfeii.h:257
t_FeII::for7
double for7
Definition: atomfeii.h:259
FeIIIntenZero
void FeIIIntenZero(void)
Definition: atom_feii.cpp:1851
t_FeII::FeIIAul
double FeIIAul[NFE2LEVN][NFE2LEVN]
Definition: atomfeii.h:213
lgFeIIMalloc
bool lgFeIIMalloc
Definition: cdinit.cpp:90
t_FeII::nfe2con
long int nfe2con
Definition: atomfeii.h:241
FeII_InterEnergy
double FeII_InterEnergy(void)
t_FeII::nFeIILevel_malloc
long int nFeIILevel_malloc
Definition: atomfeii.h:193
t_FeII::feconwlLo
realnum feconwlLo
Definition: atomfeii.h:239
t_FeII::lgSlow
bool lgSlow
Definition: atomfeii.h:201
Parser
Definition: parser.h:31
t_FeII::Fe2_UVsimp_cool
double Fe2_UVsimp_cool
Definition: atomfeii.h:258
FeIISumBand
double FeIISumBand(realnum wl1, realnum wl2, double *SumBandInward)
Definition: atom_feii.cpp:1355
FeIILevelPops
void FeIILevelPops(void)
Definition: atom_feii.cpp:718
t_FeII::chFeIIAtom
char chFeIIAtom[7]
Definition: atomfeii.h:222
t_FeII::Fe2_large_heat
double Fe2_large_heat
Definition: atomfeii.h:252
FeII_Colden
void FeII_Colden(const char *chLabel)
Definition: atom_feii.cpp:177
FeIIPunPop
void FeIIPunPop(FILE *ioPUN, bool lgPunchRange, long int ipRangeLo, long int ipRangeHi, bool lgPunchDensity)
Definition: atom_feii.cpp:2189
FeIICreate
void FeIICreate(void)
Definition: atom_feii.cpp:219
FeIIPrint
void FeIIPrint(void)
Definition: atom_feii.cpp:1340
t_FeII::FeIINRGs
double FeIINRGs[NFE2LEVN]
Definition: atomfeii.h:207
FeIIPun1Depart
void FeIIPun1Depart(FILE *ioPUN, long int nPUN)
Definition: atom_feii.cpp:2082
t_FeII::lgSimulate
bool lgSimulate
Definition: atomfeii.h:219
FeII_LineZero
void FeII_LineZero(void)
Definition: atom_feii.cpp:1825
t_fe2ovr_la::t_fe2ovr_la
t_fe2ovr_la()
Definition: atom_fe2ovr.cpp:27
t_fe2ovr_la::ipfe2
long int ipfe2[NFEII]
Definition: atomfeii.h:283
t_FeII::ipRedisFcnSubordinate
int ipRedisFcnSubordinate
Definition: atomfeii.h:245
FeII_RT_Out
void FeII_RT_Out(void)
Definition: atom_feii.cpp:2542
NFE2LEVN
#define NFE2LEVN
Definition: atomfeii.h:180
FeIIReset
void FeIIReset(void)
Definition: atom_feii.cpp:2112
FeII_RT_TauInc
void FeII_RT_TauInc(void)
Definition: atom_feii.cpp:1396
t_fe2ovr_la::fe2par
double fe2par(double te)
Definition: atom_fe2ovr.cpp:217
t_FeII::Fe2_large_cool
double Fe2_large_cool
Definition: atomfeii.h:250
FeIIAddLines
void FeIIAddLines(void)
Definition: atom_feii.cpp:1574
FeIIPoint
void FeIIPoint(void)
Definition: atom_feii.cpp:1456
FeIIPunData
void FeIIPunData(FILE *ioPUN, bool lgDoAll)
Definition: atom_feii.cpp:1954
t_FeII::FeIISTWT
double FeIISTWT[NFE2LEVN]
Definition: atomfeii.h:210
t_fe2ovr_la::init_pointers
void init_pointers()
Definition: atom_fe2ovr.cpp:92
t_fe2ovr_la::fe2lam
realnum fe2lam[NFEII]
Definition: atomfeii.h:278
t_fe2ovr_la::feopc
realnum feopc[NFEII]
Definition: atomfeii.h:286
ParseAtomFeII
void ParseAtomFeII(Parser &p)
Definition: atom_feii.cpp:2619
FeIIPunchOpticalDepth
void FeIIPunchOpticalDepth(FILE *ioPUN)
Definition: atom_feii.cpp:1673
t_FeII::fe2thresh
realnum fe2thresh
Definition: atomfeii.h:236
t_fe2ovr_la::atoms_fe2ovr
void atoms_fe2ovr(void)
Definition: atom_fe2ovr.cpp:113
FeIIRadPress
double FeIIRadPress(void)
Definition: atom_feii.cpp:2838
FeII_RT_tau_reset
void FeII_RT_tau_reset(void)
Definition: atom_feii.cpp:1425
t_FeII
Definition: atomfeii.h:187
FeIIPunchColden
void FeIIPunchColden(FILE *ioPUN)
Definition: atom_feii.cpp:1647
FeII
t_FeII FeII
Definition: atomfeii.cpp:5
FeII_OTS
void FeII_OTS(void)
Definition: atom_feii.cpp:2504
t_FeII::ddT_Fe2_large_cool
double ddT_Fe2_large_cool
Definition: atomfeii.h:251
t_fe2ovr_la::fe2pf
double fe2pf[NFE2PR]
Definition: atomfeii.h:291