Cloudy
Spectral Synthesis Code for Astrophysics
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-2025 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
9#include "container_classes.h"
10
13const bool ENABLE_QUANTUM_HEATING=false;
14
16const int NDEMS = 200;
17
19const double GRAIN_TMIN = 1.e-3;
20const double GRAIN_TMID = 5.e3;
21const double GRAIN_TMAX = 1.2e9;
22
24const int NCHS = 50;
27const int NCHU = NCHS/5;
29const int NCHRG_DEFAULT= 2;
30
34const int NQGRID = 10000;
35
37const double CONSERV_TOL = 1.e-3;
38
45
56
58typedef enum {
61} zmin_type;
62
64typedef enum {
67} pot_type;
68
70typedef enum {
73} ial_type;
74
76typedef enum {
79} pe_type;
80
82typedef enum {
85} strg_type;
86
88typedef enum {
92
95
97} H2_type;
98
116
124
126{
127 void p_clear0();
128 void p_clear1();
129
130public:
132 {
133 p_clear1();
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 }
167 void clear()
168 {
169 p_clear0();
170 p_clear1();
171 }
172
173 unsigned int nSubShell;
174 vector<unsigned int> nData;
175 vector<double> IonThres;
176 vector<vector<double>> AvNumber;
178 vector<vector<double>> Energy;
179};
180
194
269
283
285{
286 void p_clear0();
287 void p_clear1();
288
289 vector<ChargeBin> pool;
290public:
292 {
293 p_clear1();
294 }
295 void clear()
296 {
297 p_clear0();
298 p_clear1();
299 }
300
305
307 char chDstLab[13];
308 double eec;
309 double eyc;
310 double dustp[6];
316 double IntRadius,
327
334
340 double cnv_H_pGR,
346
348 double RSFCheck;
349
352 vector<double> dstab1;
353 vector<double> pure_sc1;
354 vector<double> asym;
355 vector<double> dstab1_x_anu;
356
358 double dstems[NDEMS],
361
366
373 long LowestZg;
374 long nfill;
375 vector<ShellData> sd;
376 vector<realnum> y0b06;
377 double AveDustZ;
378 long ZloSave;
379 double Capacity;
380 double dstpot,
387 vector<realnum> inv_att_len;
389
391 double BolFlux,
400
402 bool lgQHeat,
409 double qtmin;
410 double qtmin_zone1;
412 double DustEnth[NDEMS],
415
423
427
428 long nChrgOrg;
429 long nChrg;
430 long ichrg[NCHS];
431 ChargeBin& chrg(long nz) { return pool[ichrg[nz]]; }
432 const ChargeBin& chrg(long nz) const { return pool[ichrg[nz]]; }
433};
434
442
444{
445 void p_clear0();
446 void p_clear1();
447
448public:
450 {
451 p_clear1();
452 }
453 void clear()
454 {
455 p_clear0();
456 p_clear1();
457 }
458
460 bool lgDustOn() const
461 {
462 return ( bin.size() > 0 );
463 }
464 bool lgWD01,
472
474 bool lgDHetOn,
476
479 bool lgDColOn;
480
484
486
487 vector<string> ReadRecord;
488
490
492
496
499
509
511 long nzone;
512 vector<double> dstab;
513 vector<double> dstsc;
514
516 double TotalEden;
520 double GrnRecomTe;
522
524
529
531 double GasCoolColl,
541
542 double dHeatdT;
543
545
549
551 double dsttmp[NDEMS];
552
559
563
565 vector<realnum> GrainEmission;
566 vector<realnum> GraphiteEmission;
567 vector<realnum> SilicateEmission;
568
570 vector<GrainBin> bin;
571};
572
573extern GrainVar gv;
574
575#endif /* GRAINVAR_H_ */
const int LIMELM
Definition cddefines.h:318
float realnum
Definition cddefines.h:127
Definition grainvar.h:158
void clear()
Definition grainvar.h:167
vector< unsigned int > nData
Definition grainvar.h:174
void p_clear0()
Definition grainvar.cpp:26
vector< vector< double > > Energy
Definition grainvar.h:178
AEInfo()
Definition grainvar.h:163
vector< vector< double > > AvNumber
Definition grainvar.h:176
vector< double > IonThres
Definition grainvar.h:175
void p_clear1()
Definition grainvar.cpp:34
unsigned int nSubShell
Definition grainvar.h:173
Definition grainvar.h:196
double ThresInfInc
Definition grainvar.h:222
flex_arr< realnum > yhat
Definition grainvar.h:228
flex_arr< double > cs_pdt
Definition grainvar.h:231
double ThresSurfInc
Definition grainvar.h:225
flex_arr< realnum > ehat
Definition grainvar.h:230
double ThresSurf
Definition grainvar.h:224
double hots1
Definition grainvar.h:247
double GasHeatTherm
Definition grainvar.h:261
double ESum1b
Definition grainvar.h:241
realnum tedust
Definition grainvar.h:245
double FracPop
Definition grainvar.h:216
double ESum2
Definition grainvar.h:242
double GasHeatPhotoEl
Definition grainvar.h:260
double Emin
Definition grainvar.h:217
long ipThresInfVal
Definition grainvar.h:214
void p_clear0()
Definition grainvar.cpp:39
long RecomZ0[LIMELM][LIMELM+1]
Definition grainvar.h:233
double BolFlux
Definition grainvar.h:257
double PotSurfInc
Definition grainvar.h:220
double PotSurf
Definition grainvar.h:219
double bolflux1
Definition grainvar.h:248
double ThermRate
Definition grainvar.h:227
flex_arr< double > fac2
Definition grainvar.h:251
double GrainHeatColl
Definition grainvar.h:259
double xi[LIMELM+2]
Definition grainvar.h:236
double HeatingRate2
Definition grainvar.h:267
double GrainHeat
Definition grainvar.h:258
double ESum1a
Definition grainvar.h:240
ChargeBin()
Definition grainvar.h:201
flex_arr< realnum > yhat_primary
Definition grainvar.h:229
long nfill
Definition grainvar.h:215
double ThresInf
Definition grainvar.h:221
realnum RecomEn[LIMELM][LIMELM+1]
Definition grainvar.h:253
double eta[LIMELM+2]
Definition grainvar.h:235
double RSum2
Definition grainvar.h:239
void clear()
Definition grainvar.h:205
double RSum1
Definition grainvar.h:238
double ChemEnH2
Definition grainvar.h:264
long ipThresInf
Definition grainvar.h:213
double hcon1
Definition grainvar.h:246
realnum ChemEn[LIMELM][LIMELM+1]
Definition grainvar.h:254
double GrainCoolTherm
Definition grainvar.h:262
void p_clear1()
Definition grainvar.cpp:49
double ThresInfVal
Definition grainvar.h:223
double pe1
Definition grainvar.h:249
double ThresSurfVal
Definition grainvar.h:226
double EminInc
Definition grainvar.h:218
long DustZ
Definition grainvar.h:212
double ChemEnIon
Definition grainvar.h:263
flex_arr< double > fac1
Definition grainvar.h:250
realnum GrnDpth
Definition grainvar.h:338
realnum avdft
Definition grainvar.h:426
vector< realnum > y0b06
Definition grainvar.h:376
bool lgQHeat
Definition grainvar.h:402
bool lgEverQHeat
Definition grainvar.h:404
double GrainGasCool
Definition grainvar.h:396
double RateUp
Definition grainvar.h:381
vector< double > pure_sc1
Definition grainvar.h:353
double cnv_CM3_pH
Definition grainvar.h:343
double cnv_GR_pCM3
Definition grainvar.h:345
long qnflux2
Definition grainvar.h:408
realnum avdpot
Definition grainvar.h:385
double GrainHeatColl
Definition grainvar.h:395
bool lgQHTooWide
Definition grainvar.h:405
double BolFlux
Definition grainvar.h:391
double AveDustZ
Definition grainvar.h:377
long ZloSave
Definition grainvar.h:378
void clear()
Definition grainvar.h:295
double Capacity
Definition grainvar.h:379
realnum AvRadius
Definition grainvar.h:313
double GrainCoolTherm
Definition grainvar.h:392
bool lgIterStart
Definition grainvar.h:304
vector< double > dstab1_x_anu
Definition grainvar.h:355
double ChemEnH2
Definition grainvar.h:398
double rate_h2_form_grains_used
Definition grainvar.h:421
realnum atomWeight
Definition grainvar.h:320
double StickElecPos
Definition grainvar.h:384
bool lgPAHsInIonizedRegion
Definition grainvar.h:303
double EnthSlp2[NDEMS]
Definition grainvar.h:414
realnum ThermEff
Definition grainvar.h:324
realnum TeGrainMax
Definition grainvar.h:364
long nfill
Definition grainvar.h:374
double cnv_CM3_pGR
Definition grainvar.h:342
double DustEnth[NDEMS]
Definition grainvar.h:412
GrainBin()
Definition grainvar.h:291
long QHeatFailures
Definition grainvar.h:406
double rate_h2_form_grains_ELRD
Definition grainvar.h:419
double IntRadius
Definition grainvar.h:316
long nChrgOrg
Definition grainvar.h:428
long LowestZg
Definition grainvar.h:373
realnum AvVol
Definition grainvar.h:315
double qtmin
Definition grainvar.h:409
bool lgTdustConverged
Definition grainvar.h:362
realnum tedust
Definition grainvar.h:363
double HeatingRate1
Definition grainvar.h:411
double ChemEn
Definition grainvar.h:397
double IntVol
Definition grainvar.h:318
vector< ShellData > sd
Definition grainvar.h:375
double cnv_GR_pH
Definition grainvar.h:344
long qnflux
Definition grainvar.h:407
long nChrg
Definition grainvar.h:429
double StickElecNeg
Definition grainvar.h:383
vector< double > dstab1
Definition grainvar.h:352
double rate_h2_form_grains_CT02
Definition grainvar.h:418
double dustp[6]
Definition grainvar.h:310
realnum dstfactor
Definition grainvar.h:336
double eyc
Definition grainvar.h:309
double RSFCheck
Definition grainvar.h:348
vector< double > asym
Definition grainvar.h:354
double dstslp2[NDEMS]
Definition grainvar.h:360
ChargeBin & chrg(long nz)
Definition grainvar.h:431
void p_clear0()
Definition grainvar.cpp:57
realnum BandGap
Definition grainvar.h:323
realnum avdust
Definition grainvar.h:365
realnum Tsublimat
Definition grainvar.h:321
double AccomCoef[LIMELM]
Definition grainvar.h:388
double thermionic
Definition grainvar.h:399
double dstpot
Definition grainvar.h:380
double eec
Definition grainvar.h:308
char chDstLab[13]
Definition grainvar.h:307
mat_type matType
Definition grainvar.h:326
const ChargeBin & chrg(long nz) const
Definition grainvar.h:432
realnum dstAbund
Definition grainvar.h:337
double cnv_H_pGR
Definition grainvar.h:340
bool lgUseQHeat
Definition grainvar.h:403
double RateDn
Definition grainvar.h:382
double EnthSlp[NDEMS]
Definition grainvar.h:413
double dstems[NDEMS]
Definition grainvar.h:358
void p_clear1()
Definition grainvar.cpp:69
double cnv_H_pCM3
Definition grainvar.h:341
vector< realnum > inv_att_len
Definition grainvar.h:387
realnum DustDftVel
Definition grainvar.h:425
realnum le_thres
Definition grainvar.h:386
realnum DustWorkFcn
Definition grainvar.h:322
double dstslp[NDEMS]
Definition grainvar.h:359
realnum AvArea
Definition grainvar.h:314
realnum avDGRatio
Definition grainvar.h:325
double rate_h2_form_grains_HM79
Definition grainvar.h:417
double qtmin_zone1
Definition grainvar.h:410
double IntArea
Definition grainvar.h:317
double elmAbund[LIMELM]
Definition grainvar.h:319
vector< ChargeBin > pool
Definition grainvar.h:289
df_type nDustFunc
Definition grainvar.h:302
double GasHeatPhotoEl
Definition grainvar.h:393
double GrainHeat
Definition grainvar.h:394
long ichrg[NCHS]
Definition grainvar.h:430
Definition grainvar.h:444
bool lgDColOn
Definition grainvar.h:479
ial_type which_ial[MAT_TOP]
Definition grainvar.h:505
double GrainHeatCollSum
Definition grainvar.h:539
double TotalEden
Definition grainvar.h:516
vector< GrainBin > bin
Definition grainvar.h:570
void p_clear1()
Definition grainvar.cpp:156
bool lgNegGrnDrg
Definition grainvar.h:471
long nzone
Definition grainvar.h:511
bool lgBakesPAH_heat
Definition grainvar.h:470
double GrainHeatDif
Definition grainvar.h:537
void clear()
Definition grainvar.h:453
FILE * QHSaveFile
Definition grainvar.h:558
vector< realnum > GraphiteEmission
Definition grainvar.h:566
bool lgGrainElectrons
Definition grainvar.h:483
bool lgQHeatOn
Definition grainvar.h:475
double GrainHeatSum
Definition grainvar.h:535
double GasHeatPhotoEl
Definition grainvar.h:532
GrainVar()
Definition grainvar.h:449
strg_type which_strg[MAT_TOP]
Definition grainvar.h:507
vector< double > dstsc
Definition grainvar.h:513
double GrainHeatChem
Definition grainvar.h:540
bool lgGrainPhysicsOn
Definition grainvar.h:468
realnum dclmax
Definition grainvar.h:548
vector< realnum > GrainEmission
Definition grainvar.h:565
bool lgQHPunLast
Definition grainvar.h:557
double GasHeatNet
Definition grainvar.h:534
void p_clear0()
Definition grainvar.cpp:143
bool lgReevaluate
Definition grainvar.h:466
realnum GrainMetal
Definition grainvar.h:497
H2_type which_H2distr[MAT_TOP]
Definition grainvar.h:508
string chPAH_abundance
Definition grainvar.h:489
realnum dphmax
Definition grainvar.h:547
realnum elmSumAbund[LIMELM]
Definition grainvar.h:498
pot_type which_pot[MAT_TOP]
Definition grainvar.h:504
zmin_type which_zmin[MAT_TOP]
Definition grainvar.h:503
bool lgDustOn() const
Definition grainvar.h:460
realnum GrnElecHoldMax
Definition grainvar.h:519
enth_type which_enth[MAT_TOP]
Definition grainvar.h:502
realnum dstAbundThresholdNear
Definition grainvar.h:554
bool lgQHeatAll
Definition grainvar.h:556
vector< double > dstab
Definition grainvar.h:512
vector< string > ReadRecord
Definition grainvar.h:487
double dHeatdT
Definition grainvar.h:542
realnum GrainHeatScaleFactor
Definition grainvar.h:544
double rate_h2_form_grains_used_total
Definition grainvar.h:561
double GasCoolColl
Definition grainvar.h:531
realnum TotalDustHeat
Definition grainvar.h:546
double dsttmp[NDEMS]
Definition grainvar.h:551
long nChrgRequested
Definition grainvar.h:521
pe_type which_pe[MAT_TOP]
Definition grainvar.h:506
long nCalledGrainDrive
Definition grainvar.h:485
realnum GrnElecDonateMax
Definition grainvar.h:518
bool lgAnyDustVary
Definition grainvar.h:469
bool lgWD01
Definition grainvar.h:464
realnum GrainChTrRate[LIMELM][LIMELM+1][LIMELM+1]
Definition grainvar.h:528
bool lgDHetOn
Definition grainvar.h:474
double GrainHeatLya
Definition grainvar.h:536
AEInfo AugerData[LIMELM]
Definition grainvar.h:523
vector< realnum > SilicateEmission
Definition grainvar.h:567
double GasHeatTherm
Definition grainvar.h:533
double GrainHeatInc
Definition grainvar.h:538
realnum dstAbundThresholdFar
Definition grainvar.h:555
double GrnRecomTe
Definition grainvar.h:520
void p_clear1()
Definition grainvar.cpp:17
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
vector< flex_arr< realnum > > y01A
Definition grainvar.h:150
void clear()
Definition grainvar.h:135
void p_clear0()
Definition grainvar.cpp:8
long ipLo
Definition grainvar.h:144
flex_arr< realnum > y01
Definition grainvar.h:146
vector< double > Ener
Definition grainvar.h:149
ShellData()
Definition grainvar.h:131
vector< double > AvNr
Definition grainvar.h:148
Definition container_classes.h:1748
GrainVar gv
Definition grainvar.cpp:6
const double CONSERV_TOL
Definition grainvar.h:37
const bool ENABLE_QUANTUM_HEATING
Definition grainvar.h:13
const int NDEMS
Definition grainvar.h:16
const double GRAIN_TMIN
Definition grainvar.h:19
const int NCHU
Definition grainvar.h:27
df_type
Definition grainvar.h:40
@ DF_SUBLIMATION
Definition grainvar.h:43
@ DF_USER_FUNCTION
Definition grainvar.h:42
@ DF_STANDARD
Definition grainvar.h:41
const double GRAIN_TMID
Definition grainvar.h:20
strg_type
Definition grainvar.h:82
@ STRG_SIL
Definition grainvar.h:84
@ STRG_CAR
Definition grainvar.h:83
mat_type
Definition grainvar.h:102
@ MAT_PAH
Definition grainvar.h:106
@ MAT_USR
Definition grainvar.h:103
@ MAT_SIC
Definition grainvar.h:110
@ MAT_SIL
Definition grainvar.h:105
@ MAT_PAH2
Definition grainvar.h:109
@ MAT_TOP
Definition grainvar.h:114
@ MAT_SIL2
Definition grainvar.h:108
@ MAT_CAR2
Definition grainvar.h:107
@ MAT_CAR
Definition grainvar.h:104
H2_type
Definition grainvar.h:88
@ H2_ICE
Definition grainvar.h:89
@ H2_SIL
Definition grainvar.h:90
@ H2_CAR
Definition grainvar.h:91
@ H2_TOP
Definition grainvar.h:96
const int NCHS
Definition grainvar.h:24
ial_type
Definition grainvar.h:70
@ IAL_SIL
Definition grainvar.h:72
@ IAL_CAR
Definition grainvar.h:71
const int NQGRID
Definition grainvar.h:34
const double GRAIN_TMAX
Definition grainvar.h:21
zmin_type
Definition grainvar.h:58
@ ZMIN_SIL
Definition grainvar.h:60
@ ZMIN_CAR
Definition grainvar.h:59
pot_type
Definition grainvar.h:64
@ POT_CAR
Definition grainvar.h:65
@ POT_SIL
Definition grainvar.h:66
const int NCHRG_DEFAULT
Definition grainvar.h:29
pe_type
Definition grainvar.h:76
@ PE_SIL
Definition grainvar.h:78
@ PE_CAR
Definition grainvar.h:77
enth_type
Definition grainvar.h:47
@ ENTH_SIC
Definition grainvar.h:54
@ ENTH_SIL2
Definition grainvar.h:51
@ ENTH_PAH2
Definition grainvar.h:53
@ ENTH_CAR2
Definition grainvar.h:49
@ ENTH_SIL
Definition grainvar.h:50
@ ENTH_PAH
Definition grainvar.h:52
@ ENTH_CAR
Definition grainvar.h:48
Definition grainvar.h:117
bool lgGreyGrain
Definition grainvar.h:121
bool lgRequestQHeating
Definition grainvar.h:122
df_type nDustFunc
Definition grainvar.h:119
bool lgForbidQHeating
Definition grainvar.h:120
double dep
Definition grainvar.h:118