cloudy  trunk
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
grainvar.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 GRAINVAR_H_
5 #define GRAINVAR_H_
6 
7 /* grainvar.h */
8 
11 #define IGNORE_QUANTUM_HEATING 1
12 
14 const int NDEMS = 200;
15 
17 const double GRAIN_TMIN = 1.e-3;
18 const double GRAIN_TMID = 5.e3;
19 const double GRAIN_TMAX = 1.2e9;
20 
22 const int NCHS = 30;
25 const int NCHU = NCHS/3;
27 const int NCHRG_DEFAULT= 2;
28 
32 const int NQGRID = 10000;
33 
35 const double CONSERV_TOL = 1.e-3;
36 
38 typedef enum {
42 } df_type;
43 
45 typedef enum {
52 } enth_type;
53 
55 typedef enum {
58 } zmin_type;
59 
61 typedef enum {
64 } pot_type;
65 
67 typedef enum {
70 } ial_type;
71 
73 typedef enum {
76 } pe_type;
77 
79 typedef enum {
82 } strg_type;
83 
85 typedef enum {
94 } H2_type;
95 
99 typedef enum {
111 } mat_type;
112 
113 struct GrainPar {
114  double dep;
117  lgGreyGrain,
119 };
120 
122 {
123  void p_clear0();
124  void p_clear1();
125 
126 public:
128  {
129  p_clear1();
130  }
132  {
133  p_clear0();
134  }
135  void clear()
136  {
137  p_clear0();
138  p_clear1();
139  }
140 
141  long nelem;
142  long ns;
143  double ionPot;
144  long ipLo;
147  long nData;
148  vector<double> AvNr;
149  vector<double> Ener;
150  vector< flex_arr<realnum> > y01A;
151 };
152 
157 class AEInfo
158 {
159  void p_clear0();
160  void p_clear1();
161 
162 public:
164  {
165  p_clear1();
166  }
168  {
169  p_clear0();
170  }
171  void clear()
172  {
173  p_clear0();
174  p_clear1();
175  }
176 
177  unsigned int nSubShell;
178  vector<unsigned int> nData;
179  vector<double> IonThres;
180  vector< vector<double> > AvNumber;
182  vector< vector<double> > Energy;
183 };
184 
200 {
201  void p_clear0();
202  void p_clear1();
203 
204 public:
206  {
207  p_clear1();
208  }
210  {
211  p_clear0();
212  }
213  void clear()
214  {
215  p_clear0();
216  p_clear1();
217  }
218 
220  long DustZ,
221  ipThresInf,
222  ipThresInfVal,
223  nfill;
224  double FracPop,
225  Emin,
226  EminInc,
227  PotSurf,
228  PotSurfInc,
229  ThresInf,
230  ThresInfInc,
231  ThresInfVal,
232  ThresSurf,
233  ThresSurfInc,
234  ThresSurfVal,
235  ThermRate;
243  double eta[LIMELM+2],
244  xi[LIMELM+2];
246  double RSum1;
247  double RSum2;
248  double ESum1a;
249  double ESum1b;
250  double ESum2;
254  double hcon1;
255  double hots1;
256  double bolflux1;
257  double pe1;
265  double BolFlux,
266  GrainHeat,
267  GrainHeatColl,
269  GasHeatTherm,
271  ChemEnIon,
272  ChemEnH2;
275  double HeatingRate2;
276 };
277 
292 class GrainBin
293 {
294  void p_clear0();
295  void p_clear1();
296 
297 public:
299  {
300  p_clear1();
301  }
303  {
304  p_clear0();
305  }
306  void clear()
307  {
308  p_clear0();
309  p_clear1();
310  }
311 
317  char chDstLab[13];
318  double eec;
319  double eyc;
320  realnum dustp[5],
322  AvRadius,
323  AvArea,
324  AvVol,
325  IntRadius,
326  IntArea,
327  IntVol,
328  elmAbund[LIMELM],
329  atomWeight,
330  Tsublimat,
331  DustWorkFcn,
332  BandGap,
333  ThermEff,
334  avDGRatio;
346  dstAbund,
347  GrnDpth;
349  double cnv_H_pGR,
350  cnv_H_pCM3,
351  cnv_CM3_pGR,
352  cnv_CM3_pH,
353  cnv_GR_pH,
354  cnv_GR_pCM3;
357  double RSFCheck;
361  vector<double> dstab1;
362  vector<double> pure_sc1;
363  vector<double> asym;
366  double dstems[NDEMS],
367  dstslp[NDEMS],
368  dstslp2[NDEMS];
372  TeGrainMax,
373  avdust;
382  long LowestZg;
383  long nfill;
384  vector<ShellData*> sd;
385  vector<realnum> y0b06;
386  double AveDustZ,
387  Capacity,
388  dstpot,
389  dstpotsav,
390  LowestPot,
391  RateUp,
392  RateDn,
393  StickElecNeg,
394  StickElecPos;
396  le_thres;
397  vector<realnum> inv_att_len;
398  double AccomCoef[LIMELM];
401  double BolFlux,
404  GrainHeat,
405  GrainHeatColl,
406  GrainGasCool,
407  ChemEn,
408  ChemEnH2,
409  thermionic;
412  bool lgQHeat,
413  lgUseQHeat,
414  lgEverQHeat,
415  lgQHTooWide;
417  qnflux,
418  qnflux2;
419  double
421  qtmin_zone1,
422  HeatingRate1;
423  double DustEnth[NDEMS],
424  EnthSlp[NDEMS],
425  EnthSlp2[NDEMS];
435  avdft;
437  long nChrgOrg;
438  long nChrg;
440 };
441 
450 class GrainVar
451 {
452  void p_clear0();
453  void p_clear1();
454 
455 public:
457  {
458  p_clear1();
459  }
461  {
462  p_clear0();
463  }
464  void clear()
465  {
466  p_clear0();
467  p_clear1();
468  }
469 
471  bool lgDustOn() const
472  {
473  return ( bin.size() > 0 );
474  }
475  bool lgWD01,
476  lgReevaluate,
480  lgAnyDustVary,
482  bool lgNegGrnDrg;
485  bool lgDHetOn,
486  lgQHeatOn;
490  bool lgDColOn;
495 
496  vector<string> ReadRecord;
519  vector<realnum> anumin;
520  vector<realnum> anumax;
523  long nzone;
524  vector<double> dstab;
525  vector<double> dstsc;
528  double TotalEden;
532  double GrnRecomTe;
533  long HighestIon,
542 
544  double GasCoolColl,
546  GasHeatTherm,
547  GasHeatNet,
548  GrainHeatSum,
549  GrainHeatLya,
550  GrainHeatDif,
551  GrainHeatInc,
553  GrainHeatChem;
555  double dHeatdT;
560  dphmax,
561  dclmax;
564  double dsttmp[NDEMS];
569  bool lgQHeatAll,
570  lgQHPunLast;
571  FILE *QHSaveFile;
578  vector<realnum> GrainEmission;
579  vector<realnum> GraphiteEmission;
580  vector<realnum> SilicateEmission;
583  vector<GrainBin*> bin;
585 };
586 extern GrainVar gv;
587 
588 
589 #endif /* GRAINVAR_H_ */
long qnflux2
Definition: grainvar.h:416
vector< realnum > y0b06
Definition: grainvar.h:385
ChargeBin()
Definition: grainvar.h:205
bool lgBakesPAH_heat
Definition: grainvar.h:475
realnum tedust
Definition: grainvar.h:253
~GrainVar()
Definition: grainvar.h:460
double PotSurf
Definition: grainvar.h:224
vector< double > dstab
Definition: grainvar.h:524
double ionPot
Definition: grainvar.h:143
double bolflux1
Definition: grainvar.h:256
long QHeatFailures
Definition: grainvar.h:416
double GrainHeatLya
Definition: grainvar.h:544
double EnthSlp2[NDEMS]
Definition: grainvar.h:423
flex_arr< realnum > ehat
Definition: grainvar.h:238
double cnv_GR_pH
Definition: grainvar.h:349
realnum atomWeight
Definition: grainvar.h:321
double rate_h2_form_grains_used
Definition: grainvar.h:430
FILE * QHSaveFile
Definition: grainvar.h:571
bool lgUseQHeat
Definition: grainvar.h:412
flex_arr< double > cs_pdt
Definition: grainvar.h:239
double GrainHeatSum
Definition: grainvar.h:544
bool lgGrainElectrons
Definition: grainvar.h:494
double dstems[NDEMS]
Definition: grainvar.h:366
realnum dclmax
Definition: grainvar.h:559
realnum le_thres
Definition: grainvar.h:395
double cnv_H_pGR
Definition: grainvar.h:349
double StickElecNeg
Definition: grainvar.h:386
vector< ShellData * > sd
Definition: grainvar.h:384
double cnv_CM3_pGR
Definition: grainvar.h:349
long qnflux
Definition: grainvar.h:416
double GrainHeat
Definition: grainvar.h:265
long nData
Definition: grainvar.h:147
const double GRAIN_TMAX
Definition: grainvar.h:19
double GrainHeatColl
Definition: grainvar.h:265
double ESum1b
Definition: grainvar.h:249
double dstslp2[NDEMS]
Definition: grainvar.h:366
double GasCoolColl
Definition: grainvar.h:544
long LowestZg
Definition: grainvar.h:382
strg_type
Definition: grainvar.h:79
double ThresSurfInc
Definition: grainvar.h:224
long nelem
Definition: grainvar.h:141
bool lgQHeat
Definition: grainvar.h:412
AEInfo * AugerData[LIMELM]
Definition: grainvar.h:536
bool lgAnyDustVary
Definition: grainvar.h:475
realnum tedust
Definition: grainvar.h:371
vector< realnum > inv_att_len
Definition: grainvar.h:397
realnum BandGap
Definition: grainvar.h:321
double thermionic
Definition: grainvar.h:401
double EminInc
Definition: grainvar.h:224
double dsttmp[NDEMS]
Definition: grainvar.h:564
AEInfo()
Definition: grainvar.h:163
double GrainCoolTherm
Definition: grainvar.h:401
realnum elmAbund[LIMELM]
Definition: grainvar.h:321
zmin_type
Definition: grainvar.h:55
double HeatingRate2
Definition: grainvar.h:275
double xi[LIMELM+2]
Definition: grainvar.h:243
vector< double > dstab1
Definition: grainvar.h:361
df_type
Definition: grainvar.h:38
df_type nDustFunc
Definition: grainvar.h:313
flex_arr< realnum > yhat_primary
Definition: grainvar.h:237
bool lgQHeatAll
Definition: grainvar.h:569
double dep
Definition: grainvar.h:114
bool lgReevaluate
Definition: grainvar.h:475
double GrainHeatColl
Definition: grainvar.h:401
long ipLo
Definition: grainvar.h:144
double Emin
Definition: grainvar.h:224
pe_type which_pe[MAT_TOP]
Definition: grainvar.h:515
void p_clear0()
Definition: grains.cpp:223
realnum avdust
Definition: grainvar.h:371
bool lgQHeatOn
Definition: grainvar.h:485
realnum Tsublimat
Definition: grainvar.h:321
realnum elmSumAbund[LIMELM]
Definition: grainvar.h:506
double dHeatdT
Definition: grainvar.h:555
void clear()
Definition: grainvar.h:213
vector< realnum > anumin
Definition: grainvar.h:519
vector< realnum > anumax
Definition: grainvar.h:520
double GrainHeatCollSum
Definition: grainvar.h:544
bool lgChrgConverged
Definition: grainvar.h:381
bool lgQHPunLast
Definition: grainvar.h:569
realnum avDGRatio
Definition: grainvar.h:321
pe_type
Definition: grainvar.h:73
void p_clear0()
Definition: grains.cpp:366
vector< vector< double > > AvNumber
Definition: grainvar.h:180
void p_clear1()
Definition: grains.cpp:245
~ShellData()
Definition: grainvar.h:131
vector< double > asym
Definition: grainvar.h:363
double cnv_GR_pCM3
Definition: grainvar.h:349
df_type nDustFunc
Definition: grainvar.h:115
double RSFCheck
Definition: grainvar.h:357
double RSum1
Definition: grainvar.h:246
void p_clear0()
Definition: grains.cpp:236
double FracPop
Definition: grainvar.h:224
vector< realnum > GraphiteEmission
Definition: grainvar.h:579
mat_type
Definition: grainvar.h:99
realnum GrnElecDonateMax
Definition: grainvar.h:530
double LowestPot
Definition: grainvar.h:386
realnum TeGrainMax
Definition: grainvar.h:371
flex_arr< realnum > yhat
Definition: grainvar.h:236
H2_type which_H2distr[MAT_TOP]
Definition: grainvar.h:517
double hots1
Definition: grainvar.h:255
long DustZ
Definition: grainvar.h:220
vector< double > dstsc
Definition: grainvar.h:525
bool lgNegGrnDrg
Definition: grainvar.h:482
flex_arr< realnum > p
Definition: grainvar.h:145
double RateUp
Definition: grainvar.h:386
vector< vector< double > > Energy
Definition: grainvar.h:182
char chDstLab[13]
Definition: grainvar.h:317
double GrainCoolTherm
Definition: grainvar.h:265
double TotalEden
Definition: grainvar.h:528
realnum dustp[5]
Definition: grainvar.h:321
long HighestIon
Definition: grainvar.h:533
double qtmin_zone1
Definition: grainvar.h:420
bool lgGreyGrain
Definition: grainvar.h:116
realnum dstAbundThresholdNear
Definition: grainvar.h:567
vector< realnum > GrainEmission
Definition: grainvar.h:578
double ThresInfVal
Definition: grainvar.h:224
double DustEnth[NDEMS]
Definition: grainvar.h:423
strg_type which_strg[MAT_TOP]
Definition: grainvar.h:516
long nChrg
Definition: grainvar.h:438
long ipThresInf
Definition: grainvar.h:220
double GasHeatTherm
Definition: grainvar.h:544
realnum AvArea
Definition: grainvar.h:321
pot_type which_pot[MAT_TOP]
Definition: grainvar.h:513
long ns
Definition: grainvar.h:142
GrainVar()
Definition: grainvar.h:456
void p_clear1()
Definition: grains.cpp:388
double dstpot
Definition: grainvar.h:386
realnum dstAbundThresholdFar
Definition: grainvar.h:568
realnum dstfactor
Definition: grainvar.h:345
double ThresInfInc
Definition: grainvar.h:224
~AEInfo()
Definition: grainvar.h:167
double StickElecPos
Definition: grainvar.h:386
double HeatingRate1
Definition: grainvar.h:420
const int NCHU
Definition: grainvar.h:25
enth_type which_enth[MAT_TOP]
Definition: grainvar.h:511
bool lgTdustConverged
Definition: grainvar.h:370
bool lgRequestQHeating
Definition: grainvar.h:116
float realnum
Definition: cddefines.h:107
void p_clear1()
Definition: grains.cpp:264
ShellData()
Definition: grainvar.h:127
double GrainHeatDif
Definition: grainvar.h:544
pot_type
Definition: grainvar.h:61
double rate_h2_form_grains_CT02
Definition: grainvar.h:429
void clear()
Definition: grainvar.h:306
enth_type
Definition: grainvar.h:45
bool lgGrainPhysicsOn
Definition: grainvar.h:475
double hcon1
Definition: grainvar.h:254
void p_clear0()
Definition: grains.cpp:254
double PotSurfInc
Definition: grainvar.h:224
double ChemEnIon
Definition: grainvar.h:265
bool lgForbidQHeating
Definition: grainvar.h:116
double ThermRate
Definition: grainvar.h:224
void p_clear0()
Definition: grains.cpp:272
double rate_h2_form_grains_HM79
Definition: grainvar.h:428
long nChrgOrg
Definition: grainvar.h:437
double ESum2
Definition: grainvar.h:250
ial_type
Definition: grainvar.h:67
H2_type
Definition: grainvar.h:85
double GasHeatPhotoEl
Definition: grainvar.h:401
double GasHeatPhotoEl
Definition: grainvar.h:544
void clear()
Definition: grainvar.h:135
double dstpotsav
Definition: grainvar.h:386
const int NCHRG_DEFAULT
Definition: grainvar.h:27
const double GRAIN_TMID
Definition: grainvar.h:18
realnum IntVol
Definition: grainvar.h:321
realnum avdpot
Definition: grainvar.h:395
double BolFlux
Definition: grainvar.h:401
void clear()
Definition: grainvar.h:464
bool lgWD01
Definition: grainvar.h:475
const double GRAIN_TMIN
Definition: grainvar.h:17
double ThresInf
Definition: grainvar.h:224
flex_arr< double > fac2
Definition: grainvar.h:259
ial_type which_ial[MAT_TOP]
Definition: grainvar.h:514
vector< flex_arr< realnum > > y01A
Definition: grainvar.h:150
long nfill
Definition: grainvar.h:220
void clear()
Definition: grainvar.h:171
~GrainBin()
Definition: grainvar.h:302
double GasHeatTherm
Definition: grainvar.h:265
zmin_type which_zmin[MAT_TOP]
Definition: grainvar.h:512
bool lgDHetOn
Definition: grainvar.h:485
realnum ChemEn[LIMELM][LIMELM+1]
Definition: grainvar.h:262
double GasHeatPhotoEl
Definition: grainvar.h:265
long ipThresInfVal
Definition: grainvar.h:220
realnum DustWorkFcn
Definition: grainvar.h:321
const int LIMELM
Definition: cddefines.h:262
long nChrgRequested
Definition: grainvar.h:533
double cnv_CM3_pH
Definition: grainvar.h:349
vector< double > pure_sc1
Definition: grainvar.h:362
double ESum1a
Definition: grainvar.h:248
bool lgQHTooWide
Definition: grainvar.h:412
const int NDEMS
Definition: grainvar.h:14
realnum GrnDpth
Definition: grainvar.h:345
realnum RecomEn[LIMELM][LIMELM+1]
Definition: grainvar.h:261
vector< double > AvNr
Definition: grainvar.h:148
realnum GrainHeatScaleFactor
Definition: grainvar.h:557
double eta[LIMELM+2]
Definition: grainvar.h:243
vector< double > Ener
Definition: grainvar.h:149
vector< GrainBin * > bin
Definition: grainvar.h:583
realnum ThermEff
Definition: grainvar.h:321
realnum GrainMetal
Definition: grainvar.h:506
double ChemEnH2
Definition: grainvar.h:401
long RecomZ0[LIMELM][LIMELM+1]
Definition: grainvar.h:241
long nfill
Definition: grainvar.h:383
vector< double > IonThres
Definition: grainvar.h:179
flex_arr< double > fac1
Definition: grainvar.h:258
double GrnRecomTe
Definition: grainvar.h:532
double GrainHeat
Definition: grainvar.h:401
realnum IntRadius
Definition: grainvar.h:321
double eec
Definition: grainvar.h:318
double BolFlux
Definition: grainvar.h:265
const int NQGRID
Definition: grainvar.h:32
const double CONSERV_TOL
Definition: grainvar.h:35
double EnthSlp[NDEMS]
Definition: grainvar.h:423
realnum GrnElecHoldMax
Definition: grainvar.h:530
string chPAH_abundance
Definition: grainvar.h:498
double qtmin
Definition: grainvar.h:420
double pe1
Definition: grainvar.h:257
long nzone
Definition: grainvar.h:523
double Capacity
Definition: grainvar.h:386
double ChemEnH2
Definition: grainvar.h:265
vector< unsigned int > nData
Definition: grainvar.h:178
vector< realnum > SilicateEmission
Definition: grainvar.h:580
bool lgEverQHeat
Definition: grainvar.h:412
vector< string > ReadRecord
Definition: grainvar.h:496
double RateDn
Definition: grainvar.h:386
GrainVar gv
Definition: grainvar.cpp:5
realnum TotalDustHeat
Definition: grainvar.h:559
double cnv_H_pCM3
Definition: grainvar.h:349
realnum dphmax
Definition: grainvar.h:559
realnum dstAbund
Definition: grainvar.h:345
realnum AvVol
Definition: grainvar.h:321
bool lgDustOn() const
Definition: grainvar.h:471
double RSum2
Definition: grainvar.h:247
realnum GrainChTrRate[LIMELM][LIMELM+1][LIMELM+1]
Definition: grainvar.h:541
realnum avdft
Definition: grainvar.h:434
double ThresSurf
Definition: grainvar.h:224
bool lgPAHsInIonizedRegion
Definition: grainvar.h:314
~ChargeBin()
Definition: grainvar.h:209
ChargeBin * chrg[NCHS]
Definition: grainvar.h:439
double eyc
Definition: grainvar.h:319
realnum AvRadius
Definition: grainvar.h:321
double GrainHeatChem
Definition: grainvar.h:544
double AccomCoef[LIMELM]
Definition: grainvar.h:398
void p_clear1()
Definition: grains.cpp:231
double GrainGasCool
Definition: grainvar.h:401
void p_clear1()
Definition: grains.cpp:291
double AveDustZ
Definition: grainvar.h:386
double dstslp[NDEMS]
Definition: grainvar.h:366
flex_arr< realnum > y01
Definition: grainvar.h:146
double GrainHeatInc
Definition: grainvar.h:544
realnum DustDftVel
Definition: grainvar.h:434
realnum IntArea
Definition: grainvar.h:321
double rate_h2_form_grains_used_total
Definition: grainvar.h:574
double ChemEn
Definition: grainvar.h:401
unsigned int nSubShell
Definition: grainvar.h:177
const int NCHS
Definition: grainvar.h:22
bool lgDColOn
Definition: grainvar.h:490
double GasHeatNet
Definition: grainvar.h:544
GrainBin()
Definition: grainvar.h:298
mat_type matType
Definition: grainvar.h:335
double ThresSurfVal
Definition: grainvar.h:224