cloudy  trunk
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
atmdat.h
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 
4 #ifndef _ATMDAT_H_
5 #define _ATMDAT_H_
6 
7 
14 double atmdat_2phot_shapefunction( double EbyE2nu, long ipISO, long nelem );
15 
22  long ipZ ,
23  long ipISO );
24 
28 void atmdat_readin(void);
29 
34 void atmdat_Chianti_readin( long intNS );
35 
40 void atmdat_lamda_readin( long intNS );
41 
42 
54  long int iz,
55  long int in,
56  long int *imax,
57  long int *ig0,
58  long int *ig1);
59 
65 void ChargTranEval( double *O_HIonRate );
66 
71 double ChargTranSumHeat(void);
72 
73 /*ChargTranPun punch charge transfer rate coefficients */
79 void ChargTranPun( FILE* ipPnunit , char* chPunch );
80 
86 double atmdat_dielrec_fe(long int ion, double t);
87 
90 void atmdat_H_phot_cs(void);
91 
93 void atmdat_3body(void);
94 
105 double atmdat_HS_caseB(
106  long int iHi, long int iLo, long int iZ, double TempIn,
107  double DenIn,
108  char chCase
109  );
110 
112 void atmdat_DielSupres(void);
113 
114 /* these are the vectors that store the original Hummer and Storey case B
115  * line data for H and He - the declaration for the interpolator follows */
116 #define NHSDIM 15
117 #define NLINEHS 300
118 #define HS_NZ 8
119 #define NHCSTE 8
121 EXTERN struct t_atmdat {
122 
142  double HCharExcIonOf[LIMELM][LIMELM+1], //(cm3 s-1)
143  HCharExcRecTo[LIMELM][LIMELM+1], //(cm3 s-1)
144  HCharHeatMax,
145  HCharCoolMax,
146  HCharHeatOn;
147 
148  /* rate coefficient (cm3 s-1) for N+(3P) + H+ -> N(2D) + H+ charge transfer*/
150 
152  double HCharExcIonTotal,
154 
156  double HeCharExcIonTotal,
158 
160  double HIonFrac;
161 
163  double HIonFracMax;
164 
171  double HeCharExcIonOf[LIMELM][LIMELM],
172  HeCharExcRecTo[LIMELM][LIMELM];
173 
176  double HCTAlex;
177 
180  bool lgCTOn;
181 
184  double Density[2][HS_NZ][NHSDIM],
185  ElecTemp[2][HS_NZ][NHSDIM],
187  Emiss[2][HS_NZ][NHSDIM][NHSDIM][NLINEHS];
188 
191  long int nDensity[2][HS_NZ] , ntemp[2][HS_NZ] , ncut[2][HS_NZ];
192 
196  bool lgHCaseBOK[2][HS_NZ];
197 
199  long int nsbig;
200 
204 
206  realnum WaveLengthCaseB[8][25][24];
207 
211  long int nCaseBHeI;
212 
213  } atmdat;
214 
216 
217 class t_ADfA : public Singleton<t_ADfA>
218 {
219  friend class Singleton<t_ADfA>;
220 protected:
221  t_ADfA();
222 private:
224  /* phfit.dat */
225  long int L[7];
226  long int NINN[30];
227  long int NTOT[30];
228  realnum PH1[7][30][30][6];
229  realnum PH2[30][30][7];
230  /* hpfit.dat */
232  /* rec_lines.dat */
233  realnum P[8][110];
234  realnum ST[9][405];
235  /* rad_rec.dat */
236  realnum rrec[30][30][2];
237  realnum rnew[30][30][4];
238  realnum fe[13][3];
239  /* h_rad_rec */
241  /* h_phot_cs.dat */
245  /* coll_ion.dat */
246  double CF[30][30][5];
247  /* h_coll_str.dat */
250  /* >>refer H1 cs Anderson, H., Ballance, C.P., Badnell, N.R., & Summers, H.P.,
251  * >>refercon 2000, J Phys B, 33, 1255; erratum, 2002 */
252  double HCS[14][10][8];
253 public:
257  void set_version(phfit_version val) { version = val; }
258 
260  phfit_version get_version() const { return version; }
261 
268  realnum ph1(int i, int j, int k, int l) const { return PH1[i][j][k][l]; }
269 
274  realnum sth(int i) const { return STH[i]; }
275 
284  double phfit(long int nz, long int ne, long int is, double e);
285 
292  double hpfit(long int iz, long int n, double e);
293 
300  double hpfit_rel(long int iz, long int n, double e);
301 
307  void rec_lines(double t, realnum r[][471]);
308 
315  double rad_rec(long int iz, long int in, double t);
316 
323  double H_rad_rec(long int iz, long int n, double t);
324 
331  double coll_ion(long int iz, long int in, double t);
332 
338  realnum h_coll_str( long ipLo, long ipHi, long ipTe );
339 };
340 
341 #endif /* _ATMDAT_H_ */

Generated for cloudy by doxygen 1.8.1.2