cloudy trunk
Loading...
Searching...
No Matches
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
14const int NDEMS = 200;
15
17const double GRAIN_TMIN = 1.e-3;
18const double GRAIN_TMID = 5.e3;
19const double GRAIN_TMAX = 1.2e9;
20
22const int NCHS = 30;
25const int NCHU = NCHS/3;
27const int NCHRG_DEFAULT= 2;
28
32const int NQGRID = 10000;
33
35const double CONSERV_TOL = 1.e-3;
36
38typedef enum {
43
45typedef enum {
53
55typedef enum {
59
61typedef enum {
63 POT_SIL
65
67typedef enum {
69 IAL_SIL
71
73typedef enum {
75 PE_SIL
77
79typedef enum {
83
85typedef enum {
93 H2_TOP
95
99typedef enum {
110 MAT_TOP
112
113struct GrainPar {
114 double dep;
119};
120
122{
123 void p_clear0();
124 void p_clear1();
125
126public:
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
158{
159 void p_clear0();
160 void p_clear1();
161
162public:
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
204public:
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,
224 double FracPop,
243 double eta[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,
276};
277
293{
294 void p_clear0();
295 void p_clear1();
296
297public:
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;
349 double cnv_H_pGR,
357 double RSFCheck;
361 vector<double> dstab1;
362 vector<double> pure_sc1;
363 vector<double> asym;
366 double dstems[NDEMS],
382 long LowestZg;
383 long nfill;
384 vector<ShellData*> sd;
385 vector<realnum> y0b06;
386 double AveDustZ,
397 vector<realnum> inv_att_len;
401 double BolFlux,
412 bool lgQHeat,
419 double
423 double DustEnth[NDEMS],
437 long nChrgOrg;
438 long nChrg;
440};
441
451{
452 void p_clear0();
453 void p_clear1();
454
455public:
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,
485 bool lgDHetOn,
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;
542
544 double GasCoolColl,
555 double dHeatdT;
564 double dsttmp[NDEMS];
578 vector<realnum> GrainEmission;
579 vector<realnum> GraphiteEmission;
580 vector<realnum> SilicateEmission;
583 vector<GrainBin*> bin;
585};
586extern GrainVar gv;
587
588
589#endif /* GRAINVAR_H_ */
const int LIMELM
Definition: cddefines.h:258
float realnum
Definition: cddefines.h:103
void clear()
Definition: grainvar.h:171
vector< unsigned int > nData
Definition: grainvar.h:178
void p_clear0()
Definition: grains.cpp:223
AEInfo()
Definition: grainvar.h:163
vector< vector< double > > Energy
Definition: grainvar.h:182
vector< double > IonThres
Definition: grainvar.h:179
void p_clear1()
Definition: grains.cpp:231
vector< vector< double > > AvNumber
Definition: grainvar.h:180
unsigned int nSubShell
Definition: grainvar.h:177
~AEInfo()
Definition: grainvar.h:167
double ThresInfInc
Definition: grainvar.h:230
flex_arr< realnum > yhat
Definition: grainvar.h:236
flex_arr< double > cs_pdt
Definition: grainvar.h:239
double ThresSurfInc
Definition: grainvar.h:233
flex_arr< realnum > ehat
Definition: grainvar.h:238
double ThresSurf
Definition: grainvar.h:232
double hots1
Definition: grainvar.h:255
double GasHeatTherm
Definition: grainvar.h:269
double ESum1b
Definition: grainvar.h:249
realnum tedust
Definition: grainvar.h:253
double FracPop
Definition: grainvar.h:224
double ESum2
Definition: grainvar.h:250
double GasHeatPhotoEl
Definition: grainvar.h:268
double Emin
Definition: grainvar.h:225
long ipThresInfVal
Definition: grainvar.h:222
void p_clear0()
Definition: grains.cpp:254
long RecomZ0[LIMELM][LIMELM+1]
Definition: grainvar.h:241
double BolFlux
Definition: grainvar.h:265
double PotSurfInc
Definition: grainvar.h:228
double PotSurf
Definition: grainvar.h:227
double bolflux1
Definition: grainvar.h:256
double ThermRate
Definition: grainvar.h:235
flex_arr< double > fac2
Definition: grainvar.h:259
double GrainHeatColl
Definition: grainvar.h:267
~ChargeBin()
Definition: grainvar.h:209
double xi[LIMELM+2]
Definition: grainvar.h:244
double HeatingRate2
Definition: grainvar.h:275
double GrainHeat
Definition: grainvar.h:266
double ESum1a
Definition: grainvar.h:248
ChargeBin()
Definition: grainvar.h:205
flex_arr< realnum > yhat_primary
Definition: grainvar.h:237
long nfill
Definition: grainvar.h:223
double ThresInf
Definition: grainvar.h:229
realnum RecomEn[LIMELM][LIMELM+1]
Definition: grainvar.h:261
double eta[LIMELM+2]
Definition: grainvar.h:243
double RSum2
Definition: grainvar.h:247
void clear()
Definition: grainvar.h:213
double RSum1
Definition: grainvar.h:246
double ChemEnH2
Definition: grainvar.h:272
long ipThresInf
Definition: grainvar.h:221
double hcon1
Definition: grainvar.h:254
realnum ChemEn[LIMELM][LIMELM+1]
Definition: grainvar.h:262
double GrainCoolTherm
Definition: grainvar.h:270
void p_clear1()
Definition: grains.cpp:264
double ThresInfVal
Definition: grainvar.h:231
double pe1
Definition: grainvar.h:257
double ThresSurfVal
Definition: grainvar.h:234
double EminInc
Definition: grainvar.h:226
long DustZ
Definition: grainvar.h:220
double ChemEnIon
Definition: grainvar.h:271
flex_arr< double > fac1
Definition: grainvar.h:258
realnum GrnDpth
Definition: grainvar.h:347
realnum avdft
Definition: grainvar.h:435
vector< realnum > y0b06
Definition: grainvar.h:385
bool lgQHeat
Definition: grainvar.h:412
bool lgEverQHeat
Definition: grainvar.h:414
double GrainGasCool
Definition: grainvar.h:406
double RateUp
Definition: grainvar.h:391
vector< double > pure_sc1
Definition: grainvar.h:362
double cnv_CM3_pH
Definition: grainvar.h:352
double cnv_GR_pCM3
Definition: grainvar.h:354
long qnflux2
Definition: grainvar.h:418
realnum avdpot
Definition: grainvar.h:395
double GrainHeatColl
Definition: grainvar.h:405
bool lgQHTooWide
Definition: grainvar.h:415
double BolFlux
Definition: grainvar.h:401
double AveDustZ
Definition: grainvar.h:386
void clear()
Definition: grainvar.h:306
double Capacity
Definition: grainvar.h:387
realnum AvRadius
Definition: grainvar.h:322
double GrainCoolTherm
Definition: grainvar.h:402
double ChemEnH2
Definition: grainvar.h:408
realnum IntVol
Definition: grainvar.h:327
double rate_h2_form_grains_used
Definition: grainvar.h:430
realnum atomWeight
Definition: grainvar.h:329
double StickElecPos
Definition: grainvar.h:394
bool lgPAHsInIonizedRegion
Definition: grainvar.h:314
realnum IntRadius
Definition: grainvar.h:325
double EnthSlp2[NDEMS]
Definition: grainvar.h:425
double dstpotsav
Definition: grainvar.h:389
realnum ThermEff
Definition: grainvar.h:333
realnum TeGrainMax
Definition: grainvar.h:372
long nfill
Definition: grainvar.h:383
double cnv_CM3_pGR
Definition: grainvar.h:351
double DustEnth[NDEMS]
Definition: grainvar.h:423
GrainBin()
Definition: grainvar.h:298
long QHeatFailures
Definition: grainvar.h:416
long nChrgOrg
Definition: grainvar.h:437
long LowestZg
Definition: grainvar.h:382
realnum AvVol
Definition: grainvar.h:324
double qtmin
Definition: grainvar.h:420
double LowestPot
Definition: grainvar.h:390
vector< ShellData * > sd
Definition: grainvar.h:384
bool lgTdustConverged
Definition: grainvar.h:370
realnum tedust
Definition: grainvar.h:371
double HeatingRate1
Definition: grainvar.h:422
double ChemEn
Definition: grainvar.h:407
~GrainBin()
Definition: grainvar.h:302
double cnv_GR_pH
Definition: grainvar.h:353
long qnflux
Definition: grainvar.h:417
long nChrg
Definition: grainvar.h:438
double StickElecNeg
Definition: grainvar.h:393
vector< double > dstab1
Definition: grainvar.h:361
realnum IntArea
Definition: grainvar.h:326
double rate_h2_form_grains_CT02
Definition: grainvar.h:429
realnum dstfactor
Definition: grainvar.h:345
double eyc
Definition: grainvar.h:319
double RSFCheck
Definition: grainvar.h:357
vector< double > asym
Definition: grainvar.h:363
double dstslp2[NDEMS]
Definition: grainvar.h:368
void p_clear0()
Definition: grains.cpp:272
ChargeBin * chrg[NCHS]
Definition: grainvar.h:439
realnum BandGap
Definition: grainvar.h:332
realnum avdust
Definition: grainvar.h:373
realnum Tsublimat
Definition: grainvar.h:330
double AccomCoef[LIMELM]
Definition: grainvar.h:398
double thermionic
Definition: grainvar.h:409
double dstpot
Definition: grainvar.h:388
double eec
Definition: grainvar.h:318
char chDstLab[13]
Definition: grainvar.h:317
mat_type matType
Definition: grainvar.h:335
realnum dstAbund
Definition: grainvar.h:346
double cnv_H_pGR
Definition: grainvar.h:349
bool lgUseQHeat
Definition: grainvar.h:413
double RateDn
Definition: grainvar.h:392
double EnthSlp[NDEMS]
Definition: grainvar.h:424
double dstems[NDEMS]
Definition: grainvar.h:366
realnum dustp[5]
Definition: grainvar.h:321
void p_clear1()
Definition: grains.cpp:291
double cnv_H_pCM3
Definition: grainvar.h:350
vector< realnum > inv_att_len
Definition: grainvar.h:397
realnum DustDftVel
Definition: grainvar.h:434
realnum le_thres
Definition: grainvar.h:396
realnum DustWorkFcn
Definition: grainvar.h:331
double dstslp[NDEMS]
Definition: grainvar.h:367
realnum elmAbund[LIMELM]
Definition: grainvar.h:328
realnum AvArea
Definition: grainvar.h:323
realnum avDGRatio
Definition: grainvar.h:334
double rate_h2_form_grains_HM79
Definition: grainvar.h:428
bool lgChrgConverged
Definition: grainvar.h:381
double qtmin_zone1
Definition: grainvar.h:421
df_type nDustFunc
Definition: grainvar.h:313
double GasHeatPhotoEl
Definition: grainvar.h:403
double GrainHeat
Definition: grainvar.h:404
bool lgDColOn
Definition: grainvar.h:490
ial_type which_ial[MAT_TOP]
Definition: grainvar.h:514
double GrainHeatCollSum
Definition: grainvar.h:552
double TotalEden
Definition: grainvar.h:528
~GrainVar()
Definition: grainvar.h:460
void p_clear1()
Definition: grains.cpp:388
bool lgNegGrnDrg
Definition: grainvar.h:482
long nzone
Definition: grainvar.h:523
bool lgBakesPAH_heat
Definition: grainvar.h:481
double GrainHeatDif
Definition: grainvar.h:550
void clear()
Definition: grainvar.h:464
FILE * QHSaveFile
Definition: grainvar.h:571
vector< realnum > GraphiteEmission
Definition: grainvar.h:579
bool lgGrainElectrons
Definition: grainvar.h:494
bool lgQHeatOn
Definition: grainvar.h:486
double GrainHeatSum
Definition: grainvar.h:548
double GasHeatPhotoEl
Definition: grainvar.h:545
GrainVar()
Definition: grainvar.h:456
strg_type which_strg[MAT_TOP]
Definition: grainvar.h:516
vector< double > dstsc
Definition: grainvar.h:525
double GrainHeatChem
Definition: grainvar.h:553
bool lgGrainPhysicsOn
Definition: grainvar.h:479
realnum dclmax
Definition: grainvar.h:561
vector< realnum > GrainEmission
Definition: grainvar.h:578
bool lgQHPunLast
Definition: grainvar.h:570
double GasHeatNet
Definition: grainvar.h:547
void p_clear0()
Definition: grains.cpp:366
bool lgReevaluate
Definition: grainvar.h:477
long HighestIon
Definition: grainvar.h:533
realnum GrainMetal
Definition: grainvar.h:506
H2_type which_H2distr[MAT_TOP]
Definition: grainvar.h:517
vector< realnum > anumax
Definition: grainvar.h:520
string chPAH_abundance
Definition: grainvar.h:498
realnum dphmax
Definition: grainvar.h:560
realnum elmSumAbund[LIMELM]
Definition: grainvar.h:507
pot_type which_pot[MAT_TOP]
Definition: grainvar.h:513
zmin_type which_zmin[MAT_TOP]
Definition: grainvar.h:512
bool lgDustOn() const
Definition: grainvar.h:471
realnum GrnElecHoldMax
Definition: grainvar.h:531
enth_type which_enth[MAT_TOP]
Definition: grainvar.h:511
realnum dstAbundThresholdNear
Definition: grainvar.h:567
bool lgQHeatAll
Definition: grainvar.h:569
vector< double > dstab
Definition: grainvar.h:524
vector< string > ReadRecord
Definition: grainvar.h:496
double dHeatdT
Definition: grainvar.h:555
realnum GrainHeatScaleFactor
Definition: grainvar.h:557
double rate_h2_form_grains_used_total
Definition: grainvar.h:574
double GasCoolColl
Definition: grainvar.h:544
realnum TotalDustHeat
Definition: grainvar.h:559
double dsttmp[NDEMS]
Definition: grainvar.h:564
long nChrgRequested
Definition: grainvar.h:534
pe_type which_pe[MAT_TOP]
Definition: grainvar.h:515
realnum GrnElecDonateMax
Definition: grainvar.h:530
bool lgAnyDustVary
Definition: grainvar.h:480
bool lgWD01
Definition: grainvar.h:475
AEInfo * AugerData[LIMELM]
Definition: grainvar.h:536
realnum GrainChTrRate[LIMELM][LIMELM+1][LIMELM+1]
Definition: grainvar.h:541
bool lgDHetOn
Definition: grainvar.h:485
double GrainHeatLya
Definition: grainvar.h:549
vector< GrainBin * > bin
Definition: grainvar.h:583
vector< realnum > SilicateEmission
Definition: grainvar.h:580
double GasHeatTherm
Definition: grainvar.h:546
double GrainHeatInc
Definition: grainvar.h:551
vector< realnum > anumin
Definition: grainvar.h:519
realnum dstAbundThresholdFar
Definition: grainvar.h:568
double GrnRecomTe
Definition: grainvar.h:532
void p_clear1()
Definition: grains.cpp:245
flex_arr< realnum > p
Definition: grainvar.h:145
long nData
Definition: grainvar.h:147
double ionPot
Definition: grainvar.h:143
long nelem
Definition: grainvar.h:141
long ns
Definition: grainvar.h:142
void clear()
Definition: grainvar.h:135
vector< flex_arr< realnum > > y01A
Definition: grainvar.h:150
void p_clear0()
Definition: grains.cpp:236
long ipLo
Definition: grainvar.h:144
flex_arr< realnum > y01
Definition: grainvar.h:146
~ShellData()
Definition: grainvar.h:131
vector< double > Ener
Definition: grainvar.h:149
ShellData()
Definition: grainvar.h:127
vector< double > AvNr
Definition: grainvar.h:148
const double CONSERV_TOL
Definition: grainvar.h:35
const int NDEMS
Definition: grainvar.h:14
const double GRAIN_TMIN
Definition: grainvar.h:17
const int NCHU
Definition: grainvar.h:25
df_type
Definition: grainvar.h:38
@ DF_SUBLIMATION
Definition: grainvar.h:41
@ DF_USER_FUNCTION
Definition: grainvar.h:40
@ DF_STANDARD
Definition: grainvar.h:39
const double GRAIN_TMID
Definition: grainvar.h:18
strg_type
Definition: grainvar.h:79
@ STRG_SIL
Definition: grainvar.h:81
@ STRG_CAR
Definition: grainvar.h:80
mat_type
Definition: grainvar.h:99
@ MAT_PAH
Definition: grainvar.h:103
@ MAT_USR
Definition: grainvar.h:100
@ MAT_SIL
Definition: grainvar.h:102
@ MAT_PAH2
Definition: grainvar.h:106
@ MAT_TOP
Definition: grainvar.h:110
@ MAT_SIL2
Definition: grainvar.h:105
@ MAT_CAR2
Definition: grainvar.h:104
@ MAT_CAR
Definition: grainvar.h:101
H2_type
Definition: grainvar.h:85
@ H2_ICE
Definition: grainvar.h:86
@ H2_SIL
Definition: grainvar.h:87
@ H2_CAR
Definition: grainvar.h:88
@ H2_TOP
Definition: grainvar.h:93
const int NCHS
Definition: grainvar.h:22
ial_type
Definition: grainvar.h:67
@ IAL_SIL
Definition: grainvar.h:69
@ IAL_CAR
Definition: grainvar.h:68
const int NQGRID
Definition: grainvar.h:32
GrainVar gv
Definition: grainvar.cpp:5
const double GRAIN_TMAX
Definition: grainvar.h:19
zmin_type
Definition: grainvar.h:55
@ ZMIN_SIL
Definition: grainvar.h:57
@ ZMIN_CAR
Definition: grainvar.h:56
pot_type
Definition: grainvar.h:61
@ POT_CAR
Definition: grainvar.h:62
@ POT_SIL
Definition: grainvar.h:63
const int NCHRG_DEFAULT
Definition: grainvar.h:27
pe_type
Definition: grainvar.h:73
@ PE_SIL
Definition: grainvar.h:75
@ PE_CAR
Definition: grainvar.h:74
enth_type
Definition: grainvar.h:45
@ ENTH_SIL2
Definition: grainvar.h:49
@ ENTH_PAH2
Definition: grainvar.h:51
@ ENTH_CAR2
Definition: grainvar.h:47
@ ENTH_SIL
Definition: grainvar.h:48
@ ENTH_PAH
Definition: grainvar.h:50
@ ENTH_CAR
Definition: grainvar.h:46
bool lgGreyGrain
Definition: grainvar.h:117
bool lgRequestQHeating
Definition: grainvar.h:118
df_type nDustFunc
Definition: grainvar.h:115
bool lgForbidQHeating
Definition: grainvar.h:116
double dep
Definition: grainvar.h:114