cloudy  trunk
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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
259  for7;
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_ */
bool lgLyaPumpOn
Definition: atomfeii.h:229
double FeIISumBand(realnum wl1, realnum wl2, double *SumBandInward)
Definition: atom_feii.cpp:1355
void FeII_LineZero(void)
Definition: atom_feii.cpp:1825
realnum fe2ener[2]
Definition: atomfeii.h:233
void FeIIAccel(double *fe2drive)
Definition: atom_feii.cpp:1509
void FeII_RT_Make(void)
Definition: atom_feii.cpp:1538
void FeIICreate(void)
Definition: atom_feii.cpp:219
void AssertFeIIDep(double *pred, double *BigError, double *StdDev)
Definition: atom_feii.cpp:2452
bool lgFeIILargeOn
Definition: atomfeii.h:198
realnum fe2lam[NFEII]
Definition: atomfeii.h:278
bool lgShortFe2
Definition: atomfeii.h:225
realnum feconwlHi
Definition: atomfeii.h:239
int ipRedisFcnResonance
Definition: atomfeii.h:244
void FeII_RT_tau_reset(void)
Definition: atom_feii.cpp:1425
bool lgPrint
Definition: atomfeii.h:204
void FeIIPun1Depart(FILE *ioPUN, long int nPUN)
Definition: atom_feii.cpp:2082
void FeIIReset(void)
Definition: atom_feii.cpp:2112
const int NFEII
Definition: atomfeii.h:268
void FeII_RT_TauInc(void)
Definition: atom_feii.cpp:1396
#define NFE2LEVN
Definition: atomfeii.h:180
double fe2par(double te)
void FeII_OTS(void)
Definition: atom_feii.cpp:2504
long int nFeIILevel_local
Definition: atomfeii.h:191
void FeIISaveLines(FILE *ioPUN)
Definition: atom_feii.cpp:1709
double for7
Definition: atomfeii.h:257
void init_pointers()
Definition: atom_fe2ovr.cpp:92
double Fe2_UVsimp_cool
Definition: atomfeii.h:257
long int nfe2con
Definition: atomfeii.h:241
Definition: parser.h:31
double FeIIColl[NFE2LEVN][NFE2LEVN][8]
Definition: atomfeii.h:216
void FeIIPrint(void)
Definition: atom_feii.cpp:1340
void FeIIPunDepart(FILE *ioPUN, bool lgDoAll)
Definition: atom_feii.cpp:2029
void atoms_fe2ovr(void)
double ddT_Fe2_UVsimp_cool
Definition: atomfeii.h:257
double Fe2_large_heat
Definition: atomfeii.h:250
void FeIIZero(void)
Definition: atom_feii.cpp:2127
long int ipfe2[NFEII]
Definition: atomfeii.h:283
double FeIIAul[NFE2LEVN][NFE2LEVN]
Definition: atomfeii.h:213
realnum feconwlLo
Definition: atomfeii.h:239
bool lgFeIIMalloc
Definition: cdinit.cpp:90
void FeIIPunchColden(FILE *ioPUN)
Definition: atom_feii.cpp:1647
long int nFeIILevel_malloc
Definition: atomfeii.h:193
double fe2pf[NFE2PR]
Definition: atomfeii.h:291
void FeIIPunData(FILE *ioPUN, bool lgDoAll)
Definition: atom_feii.cpp:1954
realnum feopc[NFEII]
Definition: atomfeii.h:286
void FeII_RT_Out(void)
Definition: atom_feii.cpp:2542
int ipRedisFcnSubordinate
Definition: atomfeii.h:245
realnum Fe2PopLte[NFEII]
Definition: atomfeii.h:288
realnum fe2osc[NFEII]
Definition: atomfeii.h:279
float realnum
Definition: cddefines.h:107
void ParseAtomFeII(Parser &p)
Definition: atom_feii.cpp:2619
void FeIIIntenZero(void)
Definition: atom_feii.cpp:1851
void FeII_Colden(const char *chLabel)
Definition: atom_feii.cpp:177
void FeIIPunchLevels(FILE *ioPUN)
Definition: atom_feii.cpp:1625
bool lgSlow
Definition: atomfeii.h:201
void tau_inc()
realnum fe2enr[NFEII]
Definition: atomfeii.h:280
void zero_opacity()
Definition: atom_fe2ovr.cpp:79
char chFeIIAtom[7]
Definition: atomfeii.h:222
double Fe2_large_cool
Definition: atomfeii.h:250
double FeIISTWT[NFE2LEVN]
Definition: atomfeii.h:210
void FeIIPoint(void)
Definition: atom_feii.cpp:1456
void FeIIPunchOpticalDepth(FILE *ioPUN)
Definition: atom_feii.cpp:1673
const int NFE2PR
Definition: atomfeii.h:270
realnum fe2gs[NFEII]
Definition: atomfeii.h:281
double FeIINRGs[NFE2LEVN]
Definition: atomfeii.h:207
double fe2pt[NFE2PR]
Definition: atomfeii.h:290
t_FeII FeII
Definition: atomfeii.cpp:5
bool lgSimulate
Definition: atomfeii.h:219
void FeIILevelPops(void)
Definition: atom_feii.cpp:718
void FeIIPunchLineStuff(FILE *io, realnum xLimit, long index)
Definition: atom_feii.cpp:2820
double FeII_InterEnergy(void)
void PunFeII(FILE *io)
Definition: atom_feii.cpp:2799
double FeIIRadPress(void)
Definition: atom_feii.cpp:2838
realnum Fe2TauLte[NFEII]
Definition: atomfeii.h:287
void FeIIAddLines(void)
Definition: atom_feii.cpp:1574
double ddT_Fe2_large_cool
Definition: atomfeii.h:250
realnum fe2thresh
Definition: atomfeii.h:236
void FeIIPunPop(FILE *ioPUN, bool lgPunchRange, long int ipRangeLo, long int ipRangeHi, bool lgPunchDensity)
Definition: atom_feii.cpp:2189