cloudy  trunk
rfield.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 RFIELD_H_
5 #define RFIELD_H_
6 
7 /* rfield.h */
8 #include "energy.h"
9 
11 const double WL_V_FILT = 5500.;
12 
14 const double WL_B_FILT = 4400.;
15 
18 const int LIMSPC = 100;
19 
21 const int NCELL = 130000;
22 
24 void rfield_opac_zero( long lo , long ihi );
25 
27 extern bool lgRfieldMalloced;
28 
29 namespace Illuminate {
30  typedef enum { FORWARD , REVERSE , SYMMETRIC } IlluminationType ;
31 }
32 
33 struct t_rfield {
34 
43  long int nflux;
44 
46  long int nupper;
47 
50 
53 
56 
58  double *anu;
59 
62  double *AnuOrg;
63 
66 
68  long int *line_count;
69 
72 
75 
78  *anusqr,
79  *anu2,
80  *anu3;
81 
87 
90 
93 
96 
106 
111 
112  /* this is set true if H-ionizing radiation is blocked with extinguish
113  * command */
115 
118 
122 
124  bool lgCMB_set;
125 
129 
132 
135 
139 
142 
145  double *ContBoltz;
146 
149  realnum **ConEmitLocal/* [depth][energy]*/;
150 
152  realnum **ConSourceFcnLocal/* [depth][energy]*/;
153 
156 
162 
165 
168 
171  double *SummedCon;
175 
181 
185 
188 
191  realnum
193  *otslin/*[NC_ELL]*/,
195  *otscon/*[NC_ELL]*/,
196  **otssav/*[NC_ELL][2]*/;
197 
201 
204 
206  realnum **reflin/*[NC_ELL]*/;
207 
211 
214 
218 
220  char **chLineLabel/*[NC_ELL][5]*/;
221 
223  char **chContLabel/*[NC_ELL][5]*/;
224 
227  realnum **gff/*[LIMELM][NC_ELL]*/;
228 
233 
236  char chDffTrns[4];
237 
241  bool lgOutOnly;
242 
247 
249  long int ipMaxBolt;
250 
253 
255  double *comup,
257 
259  long int ipB_filter , ipV_filter;
260 
264 
268 
271 
273  long int ip1000A;
274 
278 
282 
285 
290 
291  double comtot,
296 
298  bool lgComUndr;
299 
300  double totpow[LIMSPC],
304 
307 
308  /* beamed or isotropic continuum? if isotropic then does not vary
309  * with time */
311 
315 
317 
322  long int nShape,
324 
330  vector<Energy> tNu[LIMSPC];
331  vector<realnum> tslop[LIMSPC];
333  vector<realnum> tFluxLog[LIMSPC];
334 
335  long ncont[LIMSPC];
336 
339  double RSFCheck[LIMSPC];
340 
344 
347  double range[LIMSPC][2];
348 
351  char chSpNorm[LIMSPC][5],
354 
357  qhe,
362 
365 
368 
370  bool lgUSphON;
373 
376  bool lgHabing;
377 
380  long int fine_opac_nelem;
381 
384 
387 
388 private:
391 
392 public:
394 
398 
402  long nfine;
406  double fine_resol;
413 
419 
424 
427  bool lgLyaOTS;
428 
431  bool lgHeIIOTS;
432 
435 
438 
441 
445  bool lgPlasNu;
450  // the zone where the plasma frequency is evaluated
451  long int nZonePlsFrqEval;
453  long int ipPlasma,
456 
459  bool lgMMok,
463 
466  long int ipEnerGammaRay;
467 
469  bool lgHionRad;
470 
478 
480  bool lgOcc1Hi;
481 
486 
487  // constructor
489  {
490  nZonePlsFrqEval = -1;
491 
492  // the constant that multiplies the column density to get optical depth at 1 Ryd
494  // the power on the energy for the extinction
496 
497  // these are the low and high energy bounds of the continuum
498  emm = 1.001e-8f;
499  egamry = 7.354e6f;
500 
501  // space not created yet
502  for( long i=0; i < LIMSPC; i++ )
503  lgContMalloc[i] = false;
504  }
505 
506  const realnum *getCoarseTransCoef();
507 
509  {
510  trans_coef_total = ptr;
511  }
513  {
514  for (long i=0; i<nupper; ++i)
515  trans_coef_total[i] = 1.0;
516  trans_coef_total_stale = true;
517  }
518 };
519 extern t_rfield rfield;
520 
521 
522 #endif /* RFIELD_H_ */
t_rfield::lgCompileGauntFF
bool lgCompileGauntFF
Definition: rfield.h:232
rfield_opac_zero
void rfield_opac_zero(long lo, long ihi)
Definition: cont_createmesh.cpp:802
t_rfield::lgHionRad
bool lgHionRad
Definition: rfield.h:469
t_rfield::plsfrq
realnum plsfrq
Definition: rfield.h:447
t_rfield::chDffTrns
char chDffTrns[4]
Definition: rfield.h:236
t_rfield::totpow
double totpow[LIMSPC]
Definition: rfield.h:300
t_rfield::fine_opac_nelem
long int fine_opac_nelem
Definition: rfield.h:380
t_rfield::lgOpacityReevaluate
bool lgOpacityReevaluate
Definition: rfield.h:121
t_rfield::gff
realnum ** gff
Definition: rfield.h:227
t_rfield::extin_mag_B_point
double extin_mag_B_point
Definition: rfield.h:277
t_rfield::fine_opt_depth
realnum * fine_opt_depth
Definition: rfield.h:410
t_rfield::trans_coef_total
realnum * trans_coef_total
Definition: rfield.h:390
t_rfield::lgMeshSetUp
bool lgMeshSetUp
Definition: rfield.h:131
t_rfield::resetCoarseTransCoef
void resetCoarseTransCoef()
Definition: rfield.h:512
rfield
t_rfield rfield
Definition: rfield.cpp:8
t_rfield::lgComptonOn
bool lgComptonOn
Definition: rfield.h:295
energy.h
t_rfield::flux
realnum ** flux
Definition: rfield.h:86
t_rfield::ipG0_spec_hi
long int ipG0_spec_hi
Definition: rfield.h:270
t_rfield::ExtinguishLowEnergyLimit
realnum ExtinguishLowEnergyLimit
Definition: rfield.h:101
t_rfield::tNu
vector< Energy > tNu[LIMSPC]
Definition: rfield.h:330
t_rfield::lgKillOTSLine
bool lgKillOTSLine
Definition: rfield.h:440
realnum
float realnum
Definition: cddefines.h:103
t_rfield::ConSourceFcnLocal
realnum ** ConSourceFcnLocal
Definition: rfield.h:152
t_rfield::ipEnerGammaRay
long int ipEnerGammaRay
Definition: rfield.h:466
t_rfield::qbal
realnum qbal
Definition: rfield.h:359
t_rfield::DiffPumpOn
realnum DiffPumpOn
Definition: rfield.h:217
t_rfield::occ1nu
realnum occ1nu
Definition: rfield.h:477
lgRfieldMalloced
bool lgRfieldMalloced
Definition: cdinit.cpp:98
t_rfield::convoc
realnum * convoc
Definition: rfield.h:134
t_rfield::csigh
realnum * csigh
Definition: rfield.h:288
t_rfield::flux_isotropic
realnum * flux_isotropic
Definition: rfield.h:89
t_rfield::lgBlockHIon
bool lgBlockHIon
Definition: rfield.h:114
t_rfield::fine_opac_nresolv
long int fine_opac_nresolv
Definition: rfield.h:383
t_rfield::ipFineConVelShift
long int ipFineConVelShift
Definition: rfield.h:418
Illuminate
Definition: rfield.h:29
t_rfield::otscon
realnum * otscon
Definition: rfield.h:195
t_rfield::ipPlasma
long int ipPlasma
Definition: rfield.h:453
t_rfield::RSFCheck
double RSFCheck[LIMSPC]
Definition: rfield.h:339
t_rfield::anulog
realnum * anulog
Definition: rfield.h:77
t_rfield
Definition: rfield.h:33
t_rfield::qtot
realnum qtot
Definition: rfield.h:361
t_rfield::chSpType
char chSpType[LIMSPC][6]
Definition: rfield.h:353
t_rfield::occmnu
realnum occmnu
Definition: rfield.h:473
t_rfield::qhtot
realnum qhtot
Definition: rfield.h:356
t_rfield::outlin
realnum ** outlin
Definition: rfield.h:199
t_rfield::ipG0_TH85_lo
long int ipG0_TH85_lo
Definition: rfield.h:263
t_rfield::lgLyaOTS
bool lgLyaOTS
Definition: rfield.h:427
LIMSPC
const int LIMSPC
Definition: rfield.h:18
t_rfield::lgOpacityFine
bool lgOpacityFine
Definition: rfield.h:421
t_rfield::lgContMalloc
bool lgContMalloc[LIMSPC]
Definition: rfield.h:343
t_rfield::ExtinguishConvertColDen2OptDepth
realnum ExtinguishConvertColDen2OptDepth
Definition: rfield.h:103
Illuminate::FORWARD
@ FORWARD
Definition: rfield.h:30
t_rfield::extin_mag_V_point
double extin_mag_V_point
Definition: rfield.h:277
t_rfield::cutoff
double cutoff[LIMSPC][3]
Definition: rfield.h:302
t_rfield::slope
double slope[LIMSPC]
Definition: rfield.h:301
t_rfield::tslop
vector< realnum > tslop[LIMSPC]
Definition: rfield.h:331
t_rfield::FluxFaint
realnum FluxFaint
Definition: rfield.h:55
t_rfield::nZonePlsFrqEval
long int nZonePlsFrqEval
Definition: rfield.h:451
t_rfield::cinrat
double cinrat
Definition: rfield.h:294
t_rfield::lgMustBlockHIon
bool lgMustBlockHIon
Definition: rfield.h:110
t_rfield::comup
double * comup
Definition: rfield.h:255
t_rfield::flux_beam_const_save
realnum * flux_beam_const_save
Definition: rfield.h:210
t_rfield::DiffuseEscape
realnum * DiffuseEscape
Definition: rfield.h:184
t_rfield::lgDoLineTrans
bool lgDoLineTrans
Definition: rfield.h:117
t_rfield::ConEmitLocal
realnum ** ConEmitLocal
Definition: rfield.h:149
t_rfield::otssav
realnum ** otssav
Definition: rfield.h:196
t_rfield::uh
realnum uh
Definition: rfield.h:364
t_rfield::egamry
realnum egamry
Definition: rfield.h:52
t_rfield::opac_mag_V_point
double opac_mag_V_point
Definition: rfield.h:284
t_rfield::chRSpec
char chRSpec[LIMSPC][5]
Definition: rfield.h:352
t_rfield::uheii
realnum uheii
Definition: rfield.h:367
t_rfield::setCoarseTransCoefPtr
void setCoarseTransCoefPtr(realnum *ptr)
Definition: rfield.h:508
t_rfield::lgOcc1Hi
bool lgOcc1Hi
Definition: rfield.h:480
t_rfield::ExtinguishFactor
realnum * ExtinguishFactor
Definition: rfield.h:98
t_rfield::ExtinguishEnergyPowerLow
realnum ExtinguishEnergyPowerLow
Definition: rfield.h:105
t_rfield::lgHeIIOTS
bool lgHeIIOTS
Definition: rfield.h:431
t_rfield::opac_mag_V_extended
double opac_mag_V_extended
Definition: rfield.h:284
t_rfield::ipG0_TH85_hi
long int ipG0_TH85_hi
Definition: rfield.h:263
t_rfield::OccNumbContEmitOut
realnum * OccNumbContEmitOut
Definition: rfield.h:74
t_rfield::cmcool
double cmcool
Definition: rfield.h:293
t_rfield::flux_time_beam_save
realnum * flux_time_beam_save
Definition: rfield.h:210
t_rfield::chLineLabel
char ** chLineLabel
Definition: rfield.h:220
Illuminate::SYMMETRIC
@ SYMMETRIC
Definition: rfield.h:30
t_rfield::tFluxLog
vector< realnum > tFluxLog[LIMSPC]
Definition: rfield.h:333
t_rfield::ExtinguishColumnDensity
realnum ExtinguishColumnDensity
Definition: rfield.h:100
t_rfield::lgMMok
bool lgMMok
Definition: rfield.h:459
t_rfield::comdn
double * comdn
Definition: rfield.h:256
t_rfield::lgIonizReevaluate
bool lgIonizReevaluate
Definition: rfield.h:128
t_rfield::Illumination
Illuminate::IlluminationType Illumination[LIMSPC]
Definition: rfield.h:316
t_rfield::ncont
long ncont[LIMSPC]
Definition: rfield.h:335
t_rfield::AnuOrg
double * AnuOrg
Definition: rfield.h:62
t_rfield::ExtinguishLeakage
realnum ExtinguishLeakage
Definition: rfield.h:99
t_rfield::ipG0_DB96_lo
long int ipG0_DB96_lo
Definition: rfield.h:267
t_rfield::fine_resol
double fine_resol
Definition: rfield.h:406
t_rfield::SummedDif
realnum * SummedDif
Definition: rfield.h:172
t_rfield::nflux
long int nflux
Definition: rfield.h:43
t_rfield::nfine_malloc
long nfine_malloc
Definition: rfield.h:404
t_rfield::flux_accum
realnum * flux_accum
Definition: rfield.h:95
t_rfield::lgXRayOK
bool lgXRayOK
Definition: rfield.h:461
t_rfield::lgKillOutCont
bool lgKillOutCont
Definition: rfield.h:437
NCELL
const int NCELL
Definition: rfield.h:21
t_rfield::SummedCon
double * SummedCon
Definition: rfield.h:171
WL_V_FILT
const double WL_V_FILT
Definition: rfield.h:11
t_rfield::lgHPhtOK
bool lgHPhtOK
Definition: rfield.h:460
t_rfield::lgCMB_set
bool lgCMB_set
Definition: rfield.h:124
t_rfield::cmheat
double cmheat
Definition: rfield.h:292
t_rfield::trans_coef_total_stale
bool trans_coef_total_stale
Definition: rfield.h:393
t_rfield::OccNumbDiffCont
realnum * OccNumbDiffCont
Definition: rfield.h:141
t_rfield::lgHabing
bool lgHabing
Definition: rfield.h:376
t_rfield::occmax
realnum occmax
Definition: rfield.h:472
t_rfield::getCoarseTransCoef
const realnum * getCoarseTransCoef()
Definition: rfield.cpp:10
t_rfield::fine_ener_lo
realnum fine_ener_lo
Definition: rfield.h:400
t_rfield::spfac
double spfac[LIMSPC]
Definition: rfield.h:303
t_rfield::nupper
long int nupper
Definition: rfield.h:46
t_rfield::anu2
realnum * anu2
Definition: rfield.h:79
t_rfield::ConOTS_local_photons
realnum * ConOTS_local_photons
Definition: rfield.h:178
t_rfield::ip1000A
long int ip1000A
Definition: rfield.h:273
t_rfield::otslin
realnum * otslin
Definition: rfield.h:193
t_rfield::time_continuum_scale
realnum time_continuum_scale
Definition: rfield.h:213
t_rfield::reflin
realnum ** reflin
Definition: rfield.h:206
t_rfield::lgOutOnly
bool lgOutOnly
Definition: rfield.h:241
t_rfield::fine_ener_hi
realnum fine_ener_hi
Definition: rfield.h:400
t_rfield::fine_opac_zone
realnum * fine_opac_zone
Definition: rfield.h:408
t_rfield::extin_mag_V_extended
double extin_mag_V_extended
Definition: rfield.h:281
t_rfield::lgPlasNu
bool lgPlasNu
Definition: rfield.h:445
t_rfield::opac_mag_B_point
double opac_mag_B_point
Definition: rfield.h:284
t_rfield::ConOTS_local_OTS_rate
realnum * ConOTS_local_OTS_rate
Definition: rfield.h:180
t_rfield::nfine
long nfine
Definition: rfield.h:402
t_rfield::lgTimeVary
bool lgTimeVary[LIMSPC]
Definition: rfield.h:306
t_rfield::lgBeamed
bool lgBeamed[LIMSPC]
Definition: rfield.h:310
t_rfield::range
double range[LIMSPC][2]
Definition: rfield.h:347
t_rfield::ipPlasmax
long int ipPlasmax
Definition: rfield.h:455
t_rfield::lgGamrOK
bool lgGamrOK
Definition: rfield.h:462
t_rfield::anu
double * anu
Definition: rfield.h:58
t_rfield::rstrom
realnum rstrom
Definition: rfield.h:372
t_rfield::SummedDifSave
realnum * SummedDifSave
Definition: rfield.h:174
t_rfield::OccNumbIncidCont
realnum * OccNumbIncidCont
Definition: rfield.h:138
t_rfield::EnergyIncidCont
realnum EnergyIncidCont
Definition: rfield.h:484
t_rfield::t_rfield
t_rfield()
Definition: rfield.h:488
t_rfield::opac_mag_B_extended
double opac_mag_B_extended
Definition: rfield.h:284
t_rfield::tbrmnu
realnum tbrmnu
Definition: rfield.h:475
t_rfield::ipG0_DB96_hi
long int ipG0_DB96_hi
Definition: rfield.h:267
t_rfield::lgKillOutLine
bool lgKillOutLine
Definition: rfield.h:434
Illuminate::REVERSE
@ REVERSE
Definition: rfield.h:30
t_rfield::EnergyDiffCont
realnum EnergyDiffCont
Definition: rfield.h:485
t_rfield::flux_isotropic_save
realnum * flux_isotropic_save
Definition: rfield.h:210
t_rfield::flux_beam_const
realnum * flux_beam_const
Definition: rfield.h:92
t_rfield::flux_beam_time
realnum * flux_beam_time
Definition: rfield.h:92
t_rfield::lgUSphON
bool lgUSphON
Definition: rfield.h:370
t_rfield::ConEmitOut
realnum ** ConEmitOut
Definition: rfield.h:161
t_rfield::line_count
long int * line_count
Definition: rfield.h:68
t_rfield::widflx
realnum * widflx
Definition: rfield.h:65
t_rfield::ipV_filter
long int ipV_filter
Definition: rfield.h:259
t_rfield::ConInterOut
realnum * ConInterOut
Definition: rfield.h:164
t_rfield::lgComUndr
bool lgComUndr
Definition: rfield.h:298
t_rfield::outlin_noplot
realnum * outlin_noplot
Definition: rfield.h:200
Illuminate::IlluminationType
IlluminationType
Definition: rfield.h:30
t_rfield::EnergyBremsThin
realnum EnergyBremsThin
Definition: rfield.h:246
t_rfield::ipnt_coarse_2_fine
long int * ipnt_coarse_2_fine
Definition: rfield.h:397
t_rfield::anu3
realnum * anu3
Definition: rfield.h:80
t_rfield::tbrmax
realnum tbrmax
Definition: rfield.h:474
t_rfield::nShape
long int nShape
Definition: rfield.h:322
t_rfield::flux_total_incident
realnum ** flux_total_incident
Definition: rfield.h:209
t_rfield::ipG0_spec_lo
long int ipG0_spec_lo
Definition: rfield.h:270
t_rfield::ContBoltz
double * ContBoltz
Definition: rfield.h:145
t_rfield::tbr4nu
realnum tbr4nu
Definition: rfield.h:476
t_rfield::comtot
double comtot
Definition: rfield.h:291
WL_B_FILT
const double WL_B_FILT
Definition: rfield.h:14
t_rfield::OpticalDepthScaleFactor
realnum OpticalDepthScaleFactor[LIMSPC]
Definition: rfield.h:314
t_rfield::ipB_filter
long int ipB_filter
Definition: rfield.h:259
t_rfield::ConEmitReflec
realnum ** ConEmitReflec
Definition: rfield.h:155
t_rfield::DiffuseLineEmission
realnum * DiffuseLineEmission
Definition: rfield.h:203
t_rfield::emm
realnum emm
Definition: rfield.h:49
t_rfield::csigc
realnum * csigc
Definition: rfield.h:289
t_rfield::chSpNorm
char chSpNorm[LIMSPC][5]
Definition: rfield.h:351
t_rfield::qheii
realnum qheii
Definition: rfield.h:358
t_rfield::fine_anu
realnum * fine_anu
Definition: rfield.h:412
t_rfield::ipMaxBolt
long int ipMaxBolt
Definition: rfield.h:249
t_rfield::extin_mag_B_extended
double extin_mag_B_extended
Definition: rfield.h:281
t_rfield::plsfrqmax
realnum plsfrqmax
Definition: rfield.h:449
t_rfield::qrad
realnum qrad
Definition: rfield.h:360
t_rfield::fine_opac_velocity_width
realnum fine_opac_velocity_width
Definition: rfield.h:386
t_rfield::lgInducProcess
bool lgInducProcess
Definition: rfield.h:252
t_rfield::anusqr
realnum * anusqr
Definition: rfield.h:78
t_rfield::qhe
realnum qhe
Definition: rfield.h:357
t_rfield::OccNumbBremsCont
realnum * OccNumbBremsCont
Definition: rfield.h:71
t_rfield::lgSaveOpacityFine
bool lgSaveOpacityFine
Definition: rfield.h:423
t_rfield::ipSpec
long int ipSpec
Definition: rfield.h:323
t_rfield::ipEnergyBremsThin
long int ipEnergyBremsThin
Definition: rfield.h:245
t_rfield::TotDiff2Pht
realnum * TotDiff2Pht
Definition: rfield.h:187
t_rfield::ConRefIncid
realnum ** ConRefIncid
Definition: rfield.h:167
t_rfield::EnerGammaRay
realnum EnerGammaRay
Definition: rfield.h:465
t_rfield::SummedOcc
realnum * SummedOcc
Definition: rfield.h:173
t_rfield::chContLabel
char ** chContLabel
Definition: rfield.h:223