cloudy trunk
Loading...
Searching...
No Matches
radius_increment.cpp
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/*radius_increment do work associated with geometry increments of this zone, called before RT_tau_inc */
4#include "cddefines.h"
5#include "physconst.h"
6#include "iso.h"
7#include "hydrogenic.h"
8#include "rfield.h"
9#include "colden.h"
10#include "geometry.h"
11#include "opacity.h"
12#include "thermal.h"
13#include "doppvel.h"
14#include "dense.h"
15#include "mole.h"
16#include "h2.h"
17#include "timesc.h"
18#include "hmi.h"
19#include "lines_service.h"
20#include "taulines.h"
21#include "trace.h"
22#include "wind.h"
23#include "phycon.h"
24#include "pressure.h"
25#include "grainvar.h"
26#include "molcol.h"
27#include "conv.h"
28#include "hyperfine.h"
29#include "mean.h"
30#include "struc.h"
31#include "radius.h"
32#include "gravity.h"
33
35{
36
37 long int nelem,
38 i,
39 ion,
40 nzone_minus_1 ,
41 mol;
42 double
43 avWeight,
44 t;
45
46 double ajmass,
47 Error,
48 rjeans;
49
50 DEBUG_ENTRY( "radius_increment()" );
51
52 /* when this sub is called radius is the outer edge of zone */
53
54 /* save information about structure of model
55 * first zone is 1 but array starts at 0 - nzone_minus_1 is current zone
56 * max nzone because abort during search phase gets here with nzone = -1 */
57 nzone_minus_1 = MAX2( 0, nzone-1 );
58 ASSERT(nzone_minus_1>=0 && nzone_minus_1 < struc.nzlim );
59
60 struc.heatstr[nzone_minus_1] = thermal.htot;
61 struc.coolstr[nzone_minus_1] = thermal.ctot;
62 struc.testr[nzone_minus_1] = (realnum)phycon.te;
63
64 /* number of particles per unit vol */
65 struc.DenParticles[nzone_minus_1] = dense.pden;
66 /* rjrw: add hden for dilution */
67 struc.hden[nzone_minus_1] = (realnum)dense.gas_phase[ipHYDROGEN];
68 /* total grams per unit vol */
69 struc.DenMass[nzone_minus_1] = dense.xMassDensity;
70 struc.volstr[nzone_minus_1] = (realnum)radius.dVeffAper;
71 struc.drad[nzone_minus_1] = (realnum)radius.drad;
73 struc.histr[nzone_minus_1] = dense.xIonDense[ipHYDROGEN][0];
74 struc.hiistr[nzone_minus_1] = dense.xIonDense[ipHYDROGEN][1];
75 struc.ednstr[nzone_minus_1] = (realnum)dense.eden;
76 struc.o3str[nzone_minus_1] = dense.xIonDense[ipOXYGEN][2];
77 struc.pressure[nzone_minus_1] = (realnum)pressure.PresTotlCurr;
78 struc.windv[nzone_minus_1] = (realnum)wind.windv;
80 struc.AccelGravity[nzone_minus_1] = wind.AccelGravity;
83 struc.depth[nzone_minus_1] = (realnum)radius.depth;
84 /* save absorption optical depth from illuminated face to current position */
85 struc.xLyman_depth[nzone_minus_1] = opac.TauAbsFace[iso_sp[ipH_LIKE][ipHYDROGEN].fb[ipH1s].ipIsoLevNIonCon];
86 for( nelem=ipHYDROGEN; nelem<LIMELM; ++nelem)
87 {
88 struc.gas_phase[nelem][nzone_minus_1] = dense.gas_phase[nelem];
89 for( ion=0; ion<nelem+2; ++ion )
90 {
91 struc.xIonDense[nelem][ion][nzone_minus_1] = dense.xIonDense[nelem][ion];
92 }
93 }
94 for( long ipISO=ipH_LIKE; ipISO<NISO; ++ipISO )
95 {
96 for( nelem=ipISO; nelem<LIMELM; ++nelem)
97 {
98 if( dense.lgElmtOn[nelem] )
99 {
100 for( long level=0; level < iso_sp[ipISO][nelem].numLevels_max; ++level )
101 {
102 struc.StatesElem[nelem][nelem-ipISO][level][nzone_minus_1] = (realnum)iso_sp[ipISO][nelem].st[level].Pop();
103 }
104 }
105 }
106 }
107
108 /* the hydrogen molecules */
109 for(mol=0;mol<mole_global.num_calc;mol++)
110 {
111 struc.molecules[mol][nzone_minus_1] = (realnum) mole.species[mol].den;
112 }
113 struc.H2_abund[nzone_minus_1] = hmi.H2_total;
114
115 // during abort many quantities used in this routine are in ill-defined
116 // state - safer to do nothing here
117 if( lgAbort )
118 {
119 return;
120 }
121
122 if( trace.lgTrace )
123 {
124 fprintf( ioQQQ,
125 " radius_increment called; radius=%10.3e rinner=%10.3e DRAD=%10.3e drNext=%10.3e ROUTER=%10.3e DEPTH=%10.3e\n",
128 }
129
130 /* remember mean and largest errors on electron density */
131 Error = fabs(dense.eden - dense.EdenTrue)/SDIV(dense.EdenTrue);
132 if( Error > conv.BigEdenError )
133 {
134 conv.BigEdenError = (realnum)Error;
136 }
137 conv.AverEdenError += (realnum)Error;
138
141
142 /* remember mean and largest errors between heating and cooling */
143 Error = fabs(thermal.ctot - thermal.htot) / thermal.ctot;
146
147 /* remember mean and largest pressure errors */
148 Error = fabs(pressure.PresTotlError);
150 conv.AverPressError += (realnum)Error;
151
152 /* integrate total mass over model (relative to 4pi rinner^2) */
154
155 /* check cooling time for this zone, remember longest */
157 thermal.ctot);
158
159 /* H 21 cm equilibrium timescale, H21cm returns H (not e) collisional
160 * deexcitation rate (not cs) */
162 /* >>chng 02 feb 14, add electron term as per discussion in */
163 /* >>refer H1 21cm Liszt, H., 2001, A&A, 371, 698 */
165
166 /* only update time scale if t is significant */
167 if( t > SMALLFLOAT )
169
170 /* remember longest CO timescale */
171 if( (double)dense.xIonDense[ipCARBON][0]*(double)dense.xIonDense[ipOXYGEN][0] > SMALLFLOAT )
172 {
173 int ipCO = findspecies("CO")->index;
174 /* this is rate CO is destroyed, equal to formation rate in equilibrium */
175 if (ipCO != -1)
177 }
178
179 /* remember longest H2 destruction timescale timescale */
181
182 /* remember longest H2 formation timescale timescale */
184
185 /* increment counter if this zone possibly thermally unstable
186 * this flag was set in conv_temp_eden_ioniz.cpp,
187 * derivative of heating and cooling negative */
188 if( thermal.lgUnstable )
189 thermal.nUnstable += 1;
190
191 /* remember Stromgren radius - where hydrogen ionization falls below half */
193 {
195 rfield.lgUSphON = true;
196 }
197
198 /* remember the largest value */
200
201 /* keep track of average acceleration */
204
205 /* following is integral of radiative force */
208 /*fprintf(ioQQQ," debuggg pinzon %.2f %.2e %.2e %.2e\n",
209 fnzone,pressure.pinzon,dense.xMassDensity,wind.AccelTotalOutward);*/
211
212 // the integrated acceleration due to electron scattering, neglecting
213 // absorption
214 static realnum AccelElecScatZone1;
215 if( nzone == 1 )
216 AccelElecScatZone1 = wind.AccelElectron;
220
221 /* integrate gravitational pressure term */
224
225 /* sound is sound travel time, sqrt term is sound speed */
227 /* adiabatic sound speed assuming mono-atomic gas - gamma is 5/3*/
230
231 /* save largest relative change in heating or cooling between this
232 * iteration and previous iteration at this zone
233 * may be used to set time step in time dependent sims
234 * nzonePreviousIteration is number of zones in previous iteration,
235 * 1 if only 1 done, while nzone_minus_1 is 1 on first zone */
236 if( iteration > 1 && nzone_minus_1 < struc.nzonePreviousIteration )
237 {
238 /* set largest relative changes in heating/cooling between current
239 * and previous zones */
241 fabs( (phycon.te-struc.testr[nzone_minus_1])/phycon.te);
242
244 }
245 else
246 {
247 /* zero out on first iteration */
248 struc.TempChangeMax = 0.;
249 }
250 /*fprintf(ioQQQ,"DEBUG radius_increment iteration %li Heat %.2e Cool %.2e change max \n",
251 iteration , struc.HeatChangeMax , struc.CoolChangeMax);*/
252
257
258 // column densities of all states
259 for( unsigned i = 0; i < mole.species.size(); ++i )
260 {
261 if( mole.species[i].levels != NULL )
262 {
263 for( qList::iterator st = mole.species[i].levels->begin(); st != mole.species[i].levels->end(); ++st )
264 {
265 (*st).ColDen() += radius.drad_x_fillfac * (*st).Pop();
266 }
267 }
268 }
269
270 /* integral of n(H0) / Tspin - related to 21 cm optical depth*/
273
274 /* >>chng 05 Mar 07, add integral of n(OH) / Tspin */
276
277 /* this is Lya excitation temperature */
279
280 /* count number of times Lya excitation temp hotter than gas */
281 if( hydro.TexcLya > phycon.te )
282 {
283 hydro.nLyaHot += 1;
284 if( hydro.TexcLya > hydro.TLyaMax )
285 {
289 }
290 }
291
292 /* column densities in various species */
296 /* >>chng 02 sep 20, from htwo to H2_total */
297 /* >>chng 05 mar 14, rather than H2_total, give H2g and H2s */
300 /* this is a special form of column density - should be proportional to total shielding */
307
309 /* He I t2S column density*/
311
312 /* the ortho and para column densities */
315 if( hmi.H2_total > SMALLFLOAT )
316 ASSERT( fabs( h2.ortho_density + h2.para_density - hmi.H2_total ) / hmi.H2_total < 1e-4 );
317 /*fprintf(ioQQQ,"DEBUG ortho para\t%.3e\t%.3e\ttot\t%.3e\t or pa colden\t%.3e\t%.3e\n",
318 h2.ortho_density, h2.para_density,hmi.H2_total,
319 h2.ortho_colden , h2.para_colden);*/
320
321 /*>>chng 27mar, GS, Column density of F=0 and F=1 levels of H0*/
322 colden.H0_21cm_upper += ((*HFLines[0].Hi()).Pop()*radius.drad_x_fillfac);
323 colden.H0_21cm_lower += ((*HFLines[0].Lo()).Pop()*radius.drad_x_fillfac);
324 /*fprintf(ioQQQ,"DEBUG pophi-poplo\t%.3e\t%.3e\radius\t%.3e\t col_hi\t%.3e\t%.3e\n",
325 HFLines[0].PopHi, HFLines[0].PopLo, radius.drad_x_fillfac,
326 HFLines[0].PopHi*radius.drad_x_fillfac,colden.H0_21cm_upper );*/
327
328 /* the CII and SiII atoms are resolved */
329 for( i=0; i < 5; i++ )
330 {
331 /* pops and column density for C II atom */
333 /* pops and column density for SiII atom */
335 }
336 for( i=0; i < 3; i++ )
337 {
338 /* pops and column density for CI atom */
340 /* pops and column density for OI atom */
342 }
343 for( i=0; i < 4; i++ )
344 {
345 /* pops and column density for CIII atom */
347 }
348
349 /* now add total molecular column densities */
350 molcol("ADD ",ioQQQ);
351
352 /* increment forming the mean ionization and temperature */
353 mean.MeanInc();
354
355 /*-----------------------------------------------------------------------*/
356
357 /* calculate average atomic weight per hydrogen of the plasma */
358 avWeight = 0.;
359 for( nelem=0; nelem < LIMELM; nelem++ )
360 {
361 avWeight += dense.gas_phase[nelem]*dense.AtomicWeight[nelem];
362 }
363 avWeight /= dense.gas_phase[ipHYDROGEN];
364
365 /* compute some average grain properties */
370 for( size_t nd=0; nd < gv.bin.size(); nd++ )
371 {
372 /* this is total extinction in magnitudes at V and B, for a point source
373 * total absorption and scattering,
374 * does not discount forward scattering to be similar to stellar extinction
375 * measurements made within ism */
376 rfield.opac_mag_B_point += (gv.bin[nd]->dstab1[rfield.ipB_filter-1] +
377 gv.bin[nd]->pure_sc1[rfield.ipB_filter-1])*double(gv.bin[nd]->dstAbund)*
379
380 rfield.opac_mag_V_point += (gv.bin[nd]->dstab1[rfield.ipV_filter-1] +
381 gv.bin[nd]->pure_sc1[rfield.ipV_filter-1])*double(gv.bin[nd]->dstAbund)*
383
384 /* this is total extinction in magnitudes at V and B, for an extended source
385 * total absorption and scattering,
386 * DOES discount forward scattering to apply for extended source like Orion */
387 rfield.opac_mag_B_extended += (gv.bin[nd]->dstab1[rfield.ipB_filter-1] +
388 gv.bin[nd]->pure_sc1[rfield.ipB_filter-1]*gv.bin[nd]->asym[rfield.ipB_filter-1])*
389 double(gv.bin[nd]->dstAbund)*double(dense.gas_phase[ipHYDROGEN]) * OPTDEP2EXTIN;
390
391 rfield.opac_mag_V_extended += (gv.bin[nd]->dstab1[rfield.ipV_filter-1] +
392 gv.bin[nd]->pure_sc1[rfield.ipV_filter-1]*gv.bin[nd]->asym[rfield.ipV_filter-1])*
393 double(gv.bin[nd]->dstAbund)*double(dense.gas_phase[ipHYDROGEN]) * OPTDEP2EXTIN;
394
395 gv.bin[nd]->avdust += gv.bin[nd]->tedust*(realnum)radius.drad_x_fillfac;
396 gv.bin[nd]->avdft += gv.bin[nd]->DustDftVel*(realnum)radius.drad_x_fillfac;
397 gv.bin[nd]->avdpot += (realnum)(gv.bin[nd]->dstpot*EVRYD*radius.drad_x_fillfac);
398 gv.bin[nd]->avDGRatio += (realnum)(gv.bin[nd]->dustp[1]*gv.bin[nd]->dustp[2]*
399 gv.bin[nd]->dustp[3]*gv.bin[nd]->dustp[4]*gv.bin[nd]->dstAbund/avWeight*
401 }
402
403 // doing the update outside the loop not only safes a few cycles, but also
404 // minimizes the chance of the update getting lost in the numerical precision
405 // that could lead to the sim never hitting A_V to go, and getting indefinitely
406 // stuck at an epsilon distance before the requested A_V instead...
411
412 /* there are some quantities needed to calculation the Jeans mass and radius */
416
417 /* now find minimum Jeans length and mass; length in cm */
418 double meanDensity = double(dense.xMassDensity)*geometry.FillFac;
419 rjeans = 7.79637 + (phycon.alogte - log10(dense.wmole) -
420 log10(meanDensity))/2.;
421
422 /* minimum Jeans mass in gm */
423 ajmass = 3.*(rjeans - 0.30103) + log10(4.*PI/3.*meanDensity);
424
425 /* now remember smallest */
428
429 if( trace.lgTrace )
430 {
431 fprintf( ioQQQ, " radius_increment returns\n" );
432 }
433 return;
434}
double H21cm_electron(double temp)
double H21cm_H_atom(double temp)
long int nzone
Definition: cddefines.cpp:14
FILE * ioQQQ
Definition: cddefines.cpp:7
bool lgAbort
Definition: cddefines.cpp:10
long int iteration
Definition: cddefines.cpp:16
#define ASSERT(exp)
Definition: cddefines.h:578
const int ipCARBON
Definition: cddefines.h:310
#define MIN2
Definition: cddefines.h:761
const int ipOXYGEN
Definition: cddefines.h:312
const int LIMELM
Definition: cddefines.h:258
const int NISO
Definition: cddefines.h:261
const int ipHELIUM
Definition: cddefines.h:306
float realnum
Definition: cddefines.h:103
#define MAX2
Definition: cddefines.h:782
sys_float SDIV(sys_float x)
Definition: cddefines.h:952
const int ipHYDROGEN
Definition: cddefines.h:305
#define DEBUG_ENTRY(funcname)
Definition: cddefines.h:684
vector< GrainBin * > bin
Definition: grainvar.h:583
double para_density
Definition: h2_priv.h:321
double ortho_colden
Definition: h2_priv.h:328
double ortho_density
Definition: h2_priv.h:319
double para_colden
Definition: h2_priv.h:329
int index
Definition: mole.h:169
double den
Definition: mole.h:358
long int numLevels_max
Definition: iso.h:493
vector< freeBound > fb
Definition: iso.h:452
qList st
Definition: iso.h:453
int num_calc
Definition: mole.h:314
valarray< class molezone > species
Definition: mole.h:398
t_colden colden
Definition: colden.cpp:5
#define ipCOL_elec
Definition: colden.h:30
#define ipCOL_HTOT
Definition: colden.h:12
#define ipCOL_HeHp
Definition: colden.h:24
#define ipCOL_H2s
Definition: colden.h:18
#define ipCOL_H2g
Definition: colden.h:16
#define ipCOL_Hp
Definition: colden.h:26
#define ipCOL_HMIN
Definition: colden.h:14
#define ipCOL_H0
Definition: colden.h:22
#define ipCOL_H2p
Definition: colden.h:20
#define ipCOL_H3p
Definition: colden.h:28
t_conv conv
Definition: conv.cpp:5
const realnum SMALLFLOAT
Definition: cpu.h:191
t_dense dense
Definition: dense.cpp:24
realnum GetDopplerWidth(realnum massAMU)
t_geometry geometry
Definition: geometry.cpp:5
GrainVar gv
Definition: grainvar.cpp:5
void GravitationalPressure(void)
Definition: gravity.cpp:12
diatomics h2("h2", 4100., &hmi.H2_total, Yan_H2_CS)
t_hmi hmi
Definition: hmi.cpp:5
t_hydro hydro
Definition: hydrogenic.cpp:5
t_hyperfine hyperfine
Definition: hyperfine.cpp:5
t_iso_sp iso_sp[NISO][LIMELM]
Definition: iso.cpp:8
const int ipH1s
Definition: iso.h:27
const int ipHe2s3S
Definition: iso.h:44
const int ipHE_LIKE
Definition: iso.h:63
const int ipH2p
Definition: iso.h:29
const int ipH_LIKE
Definition: iso.h:62
t_mean mean
Definition: mean.cpp:17
void molcol(const char *chLabel, FILE *ioMEAN)
Definition: molcol.cpp:12
t_mole_global mole_global
Definition: mole.cpp:6
t_mole_local mole
Definition: mole.cpp:7
molezone * findspecieslocal(const char buf[])
molecule * findspecies(const char buf[])
t_opac opac
Definition: opacity.cpp:5
t_phycon phycon
Definition: phycon.cpp:6
UNUSED const double PI
Definition: physconst.h:29
UNUSED const double BOLTZMANN
Definition: physconst.h:97
UNUSED const double EVRYD
Definition: physconst.h:189
UNUSED const double OPTDEP2EXTIN
Definition: physconst.h:60
t_pressure pressure
Definition: pressure.cpp:5
t_radius radius
Definition: radius.cpp:5
void radius_increment(void)
t_rfield rfield
Definition: rfield.cpp:8
t_struc struc
Definition: struc.cpp:6
realnum windv
Definition: wind.h:18
realnum acldr
Definition: wind.h:46
realnum AccelAver
Definition: wind.h:46
realnum AccelTotalOutward
Definition: wind.h:52
realnum AccelMax
Definition: wind.h:68
realnum AccelElectron
Definition: wind.h:58
realnum AccelGravity
Definition: wind.h:49
realnum Si2Pops[5]
Definition: colden.h:72
realnum rjnmin
Definition: colden.h:88
realnum O1Colden[3]
Definition: colden.h:81
realnum ajmmin
Definition: colden.h:89
double dlnenHep
Definition: colden.h:49
realnum tmas
Definition: colden.h:91
double He123S
Definition: colden.h:84
double dlnenHepp
Definition: colden.h:52
double H0_ov_Tspin
Definition: colden.h:58
realnum C3Pops[4]
Definition: colden.h:68
realnum TotMassColl
Definition: colden.h:90
realnum C2Colden[5]
Definition: colden.h:65
realnum Si2Colden[5]
Definition: colden.h:73
realnum C1Colden[3]
Definition: colden.h:77
realnum C2Pops[5]
Definition: colden.h:64
double dlnenCp
Definition: colden.h:55
double H0_21cm_lower
Definition: colden.h:96
realnum C3Colden[4]
Definition: colden.h:69
double OH_ov_Tspin
Definition: colden.h:61
double dlnenp
Definition: colden.h:46
realnum colden[NCOLD]
Definition: colden.h:38
realnum wmas
Definition: colden.h:92
realnum C1Pops[3]
Definition: colden.h:76
realnum O1Pops[3]
Definition: colden.h:80
double H0_21cm_upper
Definition: colden.h:95
realnum coldenH2_ov_vel
Definition: colden.h:43
realnum BigEdenError
Definition: conv.h:220
realnum AverPressError
Definition: conv.h:186
realnum AverHeatCoolError
Definition: conv.h:182
realnum BigHeatCoolError
Definition: conv.h:181
realnum BigPressError
Definition: conv.h:185
realnum AverEdenError
Definition: conv.h:178
realnum pden
Definition: dense.h:98
double EdenMin
Definition: dense.h:193
double eden
Definition: dense.h:190
bool lgElmtOn[LIMELM]
Definition: dense.h:146
long int nzEdenBad
Definition: dense.h:200
double xIonDense[LIMELM][LIMELM+1]
Definition: dense.h:125
realnum xMassTotal
Definition: dense.h:107
realnum gas_phase[LIMELM]
Definition: dense.h:71
double EdenTrue
Definition: dense.h:221
realnum AtomicWeight[LIMELM]
Definition: dense.h:75
realnum xMassDensity
Definition: dense.h:91
double EdenMax
Definition: dense.h:193
realnum wmole
Definition: dense.h:101
realnum DirectionalCosin
Definition: geometry.h:15
realnum FillFac
Definition: geometry.h:19
double H2_total
Definition: hmi.h:16
realnum TexcLya
Definition: hydrogenic.h:66
realnum TLyaMax
Definition: hydrogenic.h:72
long int nLyaHot
Definition: hydrogenic.h:69
long int nZTLaMax
Definition: hydrogenic.h:77
realnum TeLyaMax
Definition: hydrogenic.h:74
double Tspin21cm
Definition: hyperfine.h:47
void MeanInc()
Definition: mean.cpp:72
realnum * TauAbsFace
Definition: opacity.h:91
double te
Definition: phycon.h:11
double alogte
Definition: phycon.h:82
double PresTotlError
Definition: pressure.h:87
double PresGasCurr
Definition: pressure.h:89
double IntegRhoGravity
Definition: pressure.h:123
realnum pinzon_PresIntegElecThin
Definition: pressure.h:116
double RhoGravity
Definition: pressure.h:122
realnum PresInteg
Definition: pressure.h:109
realnum pinzon
Definition: pressure.h:110
realnum PresIntegElecThin
Definition: pressure.h:115
double pres_radiation_lines_curr
Definition: pressure.h:101
double PresTotlCurr
Definition: pressure.h:86
double drad
Definition: radius.h:31
double r1r0sq
Definition: radius.h:49
double rinner
Definition: radius.h:22
double drad_x_fillfac
Definition: radius.h:71
double dVeffAper
Definition: radius.h:87
double * StopThickness
Definition: radius.h:55
double dVeffVol
Definition: radius.h:81
double drNext
Definition: radius.h:61
double Radius
Definition: radius.h:25
double depth
Definition: radius.h:38
double extin_mag_V_extended
Definition: rfield.h:281
bool lgUSphON
Definition: rfield.h:370
double opac_mag_B_point
Definition: rfield.h:284
double extin_mag_B_extended
Definition: rfield.h:281
double opac_mag_B_extended
Definition: rfield.h:284
long int ipV_filter
Definition: rfield.h:259
double extin_mag_V_point
Definition: rfield.h:277
double opac_mag_V_point
Definition: rfield.h:284
double opac_mag_V_extended
Definition: rfield.h:284
long int ipB_filter
Definition: rfield.h:259
double extin_mag_B_point
Definition: rfield.h:277
realnum rstrom
Definition: rfield.h:372
realnum * AccelGravity
Definition: struc.h:39
realnum * depth
Definition: struc.h:51
realnum *** xIonDense
Definition: struc.h:64
realnum ** molecules
Definition: struc.h:71
realnum * drad_x_fillfac
Definition: struc.h:27
long int nzlim
Definition: struc.h:19
realnum * windv
Definition: struc.h:35
double * heatstr
Definition: struc.h:79
realnum * testr
Definition: struc.h:25
realnum * volstr
Definition: struc.h:26
realnum * drad
Definition: struc.h:53
realnum TempChangeMax
Definition: struc.h:61
long int nzonePreviousIteration
Definition: struc.h:22
realnum * histr
Definition: struc.h:28
realnum ** gas_phase
Definition: struc.h:75
double * coolstr
Definition: struc.h:78
realnum * o3str
Definition: struc.h:31
realnum * pressure
Definition: struc.h:33
realnum * H2_abund
Definition: struc.h:72
realnum **** StatesElem
Definition: struc.h:67
realnum * ednstr
Definition: struc.h:30
realnum * hden
Definition: struc.h:45
realnum * GasPressure
Definition: struc.h:41
realnum * xLyman_depth
Definition: struc.h:55
realnum * pres_radiation_lines_curr
Definition: struc.h:43
realnum * DenMass
Definition: struc.h:49
realnum * AccelTotalOutward
Definition: struc.h:37
realnum * hiistr
Definition: struc.h:29
realnum * DenParticles
Definition: struc.h:47
long int nUnstable
Definition: thermal.h:52
double ctot
Definition: thermal.h:112
double htot
Definition: thermal.h:149
bool lgUnstable
Definition: thermal.h:53
double time_H2_Dest_here
Definition: timesc.h:37
double sound
Definition: timesc.h:27
double time_H2_Dest_longest
Definition: timesc.h:35
double sound_speed_adiabatic
Definition: timesc.h:45
double time_H2_Form_here
Definition: timesc.h:38
double TimeH21cm
Definition: timesc.h:51
double BigCOMoleForm
Definition: timesc.h:39
double time_therm_long
Definition: timesc.h:19
double time_H2_Form_longest
Definition: timesc.h:36
double sound_speed_isothermal
Definition: timesc.h:42
bool lgTrace
Definition: trace.h:12
TransitionList HFLines("HFLines", &AnonStates)
void TempChange(double TempNew, bool lgForceUpdate)
Definition: temp_change.cpp:51
t_thermal thermal
Definition: thermal.cpp:5
t_timesc timesc
Definition: timesc.cpp:5
t_trace trace
Definition: trace.cpp:5
double TexcLine(const TransitionProxy &t)
Definition: transition.cpp:169
Wind wind
Definition: wind.cpp:5