cloudy trunk
|
00001 /* This file is part of Cloudy and is copyright (C)1978-2008 by Gary J. Ferland and 00002 * others. For conditions of distribution and use see copyright notice in license.txt */ 00003 00004 #ifndef _ATOMFEII_H_ 00005 #define _ATOMFEII_H_ 00006 00016 void AssertFeIIDep( double *pred , double *BigError , double *StdDev ); 00017 00020 void FeIIFillLow16(void); 00021 00023 void FeIICreate(void); 00025 void FeIIPrint(void); 00026 00027 void FeIILevelPops(void); 00028 00034 double FeIISumBand(realnum wl1, 00035 realnum wl2); 00036 00038 void FeII_RT_TauInc(void); 00039 00041 void FeII_RT_tau_reset(void); 00042 00044 void FeIIPoint(void); 00045 00046 00051 void FeIIAccel(double *fe2drive); 00052 00053 00059 void FeII_RT_Make( bool lgDoEsc , 00060 bool lgUpdateFineOpac ); 00061 00063 void FeIIAddLines( void ); 00064 00068 void FeIIPunchLevels( FILE * ioPUN ); 00069 00074 void FeIIPunchColden( 00075 FILE *ioPUN ); 00076 00081 void FeII_Colden( const char *chLabel ); 00082 00083 00087 void FeIIPunchLines( FILE * ioPUN ); 00088 00092 void FeIIPunchOpticalDepth( FILE * ioPUN ); 00093 00095 void FeII_LineZero(void); 00096 00098 void FeIIIntenZero(void); 00099 00101 double FeIIRadPress(void); 00102 00106 double FeII_InterEnergy(void); 00107 00113 void FeIIPunDepart(FILE* ioPUN , 00114 bool lgDoAll ); 00115 00116 void PunFeII( FILE * io ); 00117 00123 void FeIIPun1Depart(FILE * ioPUN , long int nPUN ); 00129 void FeIIPunData( 00130 FILE* ioPUN , 00131 bool lgDoAll ); 00132 00141 void FeIIPunPop(FILE* ioPUN , 00142 bool lgPunchRange , 00143 long int ipRangeLo , 00144 long int ipRangeHi , 00145 bool lgPunchDensity ); 00146 00147 00154 void FeIIPunchLineStuff( FILE * io , realnum xLimit , long index); 00155 00156 #if 0 00157 00163 void FeIIPun1Pop( 00164 FILE * ioPUN , 00165 long int nPUN ); 00166 #endif 00167 00169 void FeIIZero(void); 00170 00172 void FeIIReset(void); 00173 00175 void FeII_OTS(void); 00176 00178 void FeII_RT_Out(void); 00179 00181 void ParseAtomFeII(char *chCard ); 00182 00184 #define NFE2LEVN 371 00185 00189 extern bool lgFeIIMalloc; 00190 00191 EXTERN struct t_FeII { 00192 00195 long int nFeIILevel; 00197 long int nFeIILevelAlloc; 00198 00202 bool lgFeIILargeOn; 00203 00205 bool lgSlow; 00206 00208 bool lgPrint; 00209 00211 bool lgSimulate; 00212 00214 char chFeIIAtom[7]; 00215 00217 bool lgShortFe2; 00218 00221 bool lgLyaPumpOn; 00222 00225 realnum fe2ener[2]; 00226 00228 realnum fe2thresh; 00229 00231 realnum fe2con_wl1 , fe2con_wl2; 00233 long int nfe2con; 00234 00236 int ipRedisFcnResonance; 00237 int ipRedisFcnSubordinate; 00238 00242 double Fe2_large_cool, 00243 ddT_Fe2_large_cool, 00244 Fe2_large_heat; 00245 00248 double /*Fe2_16levl_cool , 00249 ddT_Fe2_16levl_cool ,*/ 00250 ddT_Fe2_UVsimp_cool , 00251 Fe2_UVsimp_cool; 00252 00254 double fe21308, 00255 fe21207, 00256 fe21106, 00257 fe21006, 00258 fe21204, 00259 fe21103, 00260 fe21104, 00261 fe21001, 00262 fe21002, 00263 fe20201, 00264 fe20302, 00265 fe20706, 00266 fe20807, 00267 fe20908, 00268 fe21007, 00269 fe21107, 00270 fe21108, 00271 fe21110, 00272 fe21507, 00273 fe21208, 00274 fe21209, 00275 fe21211, 00276 fe21406, 00277 fe21508, 00278 fe21609; 00280 double 00281 fe25to6 , 00282 fe27to7 , 00283 fe28to8 , 00284 fe29to9 , 00285 fe32to6 , 00286 fe33to7 , 00287 fe37to7 , 00288 fe39to8 , 00289 fe40to9 , 00290 fe37to6 , 00291 fe39to7 , 00292 fe40to8 , 00293 fe41to9 , 00294 fe39to6 , 00295 fe40to7 , 00296 fe42to7 , 00297 fe41to8 , 00298 fe42to6 , 00299 fe43to7 , 00300 fe36to2 , 00301 fe36to3 , 00302 fe32to1 , 00303 fe33to2 , 00304 fe36to5 , 00305 fe32to2 , 00306 fe33to3 , 00307 fe30to3 , 00308 fe33to6 , 00309 fe24to2 , 00310 fe32to7 , 00311 fe35to8 , 00312 fe34to8 , 00313 fe27to6 , 00314 fe28to7 , 00315 fe30to8 , 00316 fe24to6 , 00317 fe29to8 , 00318 fe24to7 , 00319 fe22to7 , 00320 fe38to11 , 00321 fe19to8 , 00322 fe17to6 , 00323 fe18to7 , 00324 fe18to8 , 00325 fe80to28 , 00326 fe17to7 , 00327 for7; 00328 00329 } FeII; 00330 00331 /* this info used to estimate destruction of Lya by overlap with FeII 00332 * in case where large atom is not turned on */ 00333 00335 const int NFEII = 373; 00337 const int NFE2PR = 61; 00338 00339 class t_fe2ovr_la : public Singleton<t_fe2ovr_la> 00340 { 00341 friend class Singleton<t_fe2ovr_la>; 00342 protected: 00343 t_fe2ovr_la(); 00344 private: 00345 realnum fe2lam[NFEII]; 00346 realnum fe2osc[NFEII]; 00347 realnum fe2enr[NFEII]; 00348 realnum fe2gs[NFEII]; 00349 00350 long int ipfe2[NFEII]; 00351 00353 realnum feopc[NFEII]; 00354 realnum Fe2TauLte[NFEII]; 00355 realnum Fe2PopLte[NFEII]; 00356 00357 double fe2pt[NFE2PR]; 00358 double fe2pf[NFE2PR]; 00359 00361 double fe2par(double te); 00362 public: 00363 void zero_opacity(); 00364 00365 void init_pointers(); 00366 00368 void tau_inc(); 00369 00371 void atoms_fe2ovr(void); 00372 }; 00373 00374 #endif /* _ATOMFEII_H_ */