cloudy  trunk
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
init_defaults_preparse.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 /*InitDefaultsPreparse initialization at start of simulation, called from cloudy
4 * before parser, sets initial values of quantities changed by parser
5 * called for each point in a grid but one time in multi-iteration sims */
6 #include "cddefines.h"
7 #include "physconst.h"
8 #include "phycon.h"
9 #include "radius.h"
10 #include "trace.h"
11 #include "dynamics.h"
12 #include "geometry.h"
13 #include "noexec.h"
14 #include "rfield.h"
15 #include "opacity.h"
16 #include "stopcalc.h"
17 #include "atomfeii.h"
18 #include "plot.h"
19 #include "rt.h"
20 #include "fudgec.h"
21 #include "abund.h"
22 #include "h2.h"
23 #include "ionbal.h"
24 #include "hextra.h"
25 #include "wind.h"
26 #include "atmdat.h"
27 #include "pressure.h"
28 #include "thermal.h"
29 #include "continuum.h"
30 #include "optimize.h"
31 #include "save.h"
32 #include "dense.h"
33 #include "hcmap.h"
34 #include "prt.h"
35 #include "init.h"
36 #include "taulines.h"
37 #include "lines_service.h"
38 #include "grid.h"
39 
40 /*InitDefaultsPreparse initialization at start of simulation, called from cloudy
41  * before parser, will now be called one time per sim in grid but long term
42  * goal is to call parser only one time in a grid. This would be called
43  * first to set defaults that may be changed by the parser. This routine
44  * should only set defaults for variables that change in the parser.
45  * It does not initialize variables for the start of a calculation. That
46  * is done by InitSimPostparse
47  * called one time in multi iteration sim */
49 {
50  long int i,
51  ipISO,
52  nelem;
53 
54  DEBUG_ENTRY( "InitDefaultsPreparse()" );
55 
56  /* init vars before parsing commands for each sim */
57 
58  /* option to turn off collisional ionization with "no collisional ionization" cmmnd */
59  atmdat.lgCollIonOn = true;
60 
61  // default, Chianti not on, but if on use hybrid, do not print
62  atmdat.lgChiantiOn = true;
63  atmdat.lgChiantiHybrid = true;
64  atmdat.lgChiantiPrint = false;
65  //Use gbar to fill in dBase transitions if they lack collision strengths
66  atmdat.lgGbarOn = true;
67  //Tells Cloudy to exclusively use experimental energies in Chianti.
68  atmdat.lgChiantiExp = true;
69  // Set the default number of Chianti energy levels to use for Fe for photoionization case
71  // Set the default number of Chianti energy levels to use for all other elements
73  // ChiantiLevelsSet is false until the user specifies the number of chianti levels to use.
74  atmdat.lgChiantiLevelsSet = false;
75  /* nChiantiMaxLevelsFe and nChiantiMaxLevels are defaulted to 100 and 50 respectively if
76  * the coronal command is used. See parse_coronal.cpp */
77  /* Set the default number Stout max levels
78  * For now use the default Chianti Fe levels = 100 */
80 
81  /* Stout on by default, optional printout off */
82  atmdat.lgStoutOn = true;
83  atmdat.lgStoutPrint = false;
84  atmdat.lgStoutHybrid = true;
85 
86  // By default use Dima (Voronov97) data for collisional ionization rate coefficients
87  // possible options are DIMA or HYBRID
89 
91  atmdat.collstrDefault = 0.01;
92 
93  atmdat.lgLamdaOn = true;
94 # ifdef USE_CDMS
95  atmdat.lgCalpgmOn = true;
96 # else
97  atmdat.lgCalpgmOn = false;
98 # endif
99  strcpy(atmdat.chCloudyChiantiFile, "CloudyChianti.ini");
100  strcpy(atmdat.chStoutFile, "Stout.ini");
101 
102  /* drChange was reset to get orion flux in h-beta correct
103  * drChange is really tau of current zone */
104  radius.drChange = 0.15f;
105 
106  radius.glbdst = 0.;
107  radius.glbrad = 0.;
108 
109  // energy conservation check is slow, turn on with set check energy every zone
111 
112  /* option to read in all input quantities and NOT execute the actual model
113  * only check on input parameters - set by calling cdNoExec */
114  noexec.lgNoExec = false;
115 
116  /* constant for the extinguish command */
120 
121  /* parameters having to do with thermal map */
122  hcmap.RangeMap[0] = 10.f;
123  hcmap.RangeMap[1] = .99e10f;
124  /* zone where map is to be done */
125  hcmap.MapZone = -1;
126  hcmap.nMapStep = 20;
127 
128  thermal.ConstGrainTemp = 0.;
131  thermal.ConstTemp = 0.;
132  thermal.lgTeHigh = false;
133  thermal.lgTeBD96 = false;
134  thermal.lgTLaw = false;
135  thermal.lgTeSN99 = false;
136  /* try toe predict next zone's temperature in constant density models,
137  * as done in ZoneStart. Turned off with no tepred command */
138  thermal.lgPredNextTe = true;
139 
140  /* turbulent heating - set with hextra command */
141  hextra.TurbHeat = 0.;
142  /* set true with TIME option on hextra command for time dependent sims */
143  hextra.lgTurbHeatVaryTime = false;
144  /* options for for extra heating to depend on scale radius */
145  hextra.lgHextraDepth = false;
146  /* options for for extra heating to depend on density */
147  hextra.lgHextraDensity = false;
148  /* options for alpha disk model heating */
149  hextra.lgHextraSS = false;
150 
151  /* options set by cosmic ray command */
152  hextra.cryden = 0.;
155  hextra.crtemp = 0.;
156  hextra.crpowr = 0.;
158 
159  /* set with coronal equilibrium init time command */
161  dynamics.lgTracePrint = false;
162 
163  /* parameters to do with wind */
164  wind.lgWindOK = true;
165  wind.DiskRadius = 0;
166  wind.lgDisk = false;
167  wind.windv0 = 0.;
168  wind.setStatic();
169  wind.comass = 0.;
170  wind.windv = 0.;
171  wind.dvdr = 0.;
172  wind.emdot = 0.;
173  wind.AccelAver = 0.;
174  wind.acldr = 0.;
175  wind.AccelGravity = 0.;
176  wind.AccelTotalOutward = 0.;
177  wind.AccelCont = 0.;
178  wind.AccelElectron = 0.;
179  wind.AccelLine = 0.;
180  wind.AccelMax = 0.;
181  wind.fmul = 0.;
182  wind.lgVelPos = true;
183 
184  /* argument on ELEMENT LIMIT OFF XXX command, lowest abundance
185  * element to include in the calculation */
186  dense.AbundanceLimit = 0.;
187 
188  /* controls density fluctuations, when true variations are due to density changing,
189  * when false are due to abundances changing if changes are on */
190  dense.lgDenFlucOn = true;
191  dense.lgDenFlucRadius = true;
192  dense.flong = 0.;
193  dense.flcPhase = 0.;
194 
195  /* this says keep initial density constant,
196  * so pressure from iter to iter not really const */
197  dense.lgDenseInitConstant = true;
198 
199  // pressure does not vary with time by default
200  dense.lgPressureVaryTime = false;
201  // required number is timescale for time variation
203  // optional number is index for time variation
205 
206  /* extra electron density, set with eden command */
207  dense.EdenExtra = 0.;
208 
209  /* forced electron density, set with set eden command */
210  dense.EdenSet = 0.;
211 
212  /* option to set electron fraction, n_e/n_H */
213  dense.EdenFraction = 0.;
214 
215  /* individual terms for the pressure equation of state */
216  /* >>chng 05 jan 01, all three are set true at start *
217  * code default is constant density, so all this is ignored
218  * is turned to constant pressure then these flags must be adjusted so
219  * that we get the pressure we expect. with all true, all three
220  * contributors to pressure will be counted - with constant gas pressure
221  * these are turned off */
224  pressure.lgPres_ram_ON = true;
225  /* flag for constant pressure, include continuum too */
226  pressure.lgContRadPresOn = true;
227  /* constant density is the default */
228  strcpy( dense.chDenseLaw, "CDEN" );
229  /* number on line is log of nT - option to specify initial pressure */
231  /* this is log of nT product - if not present then set zero */
233 
234  /* select certain atomic data, changed with set atomic data command
235  * this says to use Zeippen 1982 [OII] transition probabilities */
236  dense.lgAsChoose[ipOXYGEN][1] = false;
237 
238  abund.lgAbnSolar = false;
239 
240  /* the ipSolar array is a set of pointers used for reading
241  * in abundances with the "abundances" command
242  * the hydrogen abundance of unity is not read in */
243  abund.npSolar = LIMELM - 1;
244  for( i=0; i < abund.npSolar; i++ )
245  {
246  abund.ipSolar[i] = i + 2;
247  }
248 
249  /* option to turn off an element */
250  for( nelem=0; nelem < LIMELM; nelem++ )
251  {
252  /* set of scale factors for changing abundances with elements command */
253  abund.ScaleElement[nelem] = 1.;
254  abund.solar[nelem] = abund.SolarSave[nelem];
255 
256  // default scale factors for SET DIELECTRONIC RECOMBINATION KLUDGE SCALE
257  ionbal.DR_mean_scale[nelem] = 1.;
258  }
259 
260  abund.lgAbTaON = false;
261 
262  /* option to turn off an element */
263  for( nelem=0; nelem < LIMELM; nelem++ )
264  {
265  /* option to have abundances from table */
266  abund.lgAbunTabl[nelem] = false;
267  }
268 
269  /* threshold for faintest heating cooling to save with save heating or
270  * save cooling commands, reset with PUNCH WEAKHEATCOOL command */
271  save.WeakHeatCool = 0.05f;
272 
273  /* set of variables used to control save command */
274  save.nsave = 0;
275  save.lgPunContinuum = false;
276  save.lgDRPLst = false;
277  save.lgDRHash = true;
279  /* this is the string that will appear after each model in the save output,
280  * reset with the "set save hash" command */
281  strcpy( save.chHashString , "###########################" );
282  /* save every one continuum point, set skip save command */
283  save.ncSaveSkip = 1;
284  /* flush file after every iteration - set save flush */
285  save.lgFLUSH = false;
286  for( i=0; i<LIMPUN; ++i )
287  {
288  save.lgHashEndIter[i] = true;
289  /* set false for time dependent calculations*/
290  save.lg_separate_iterations[i] = true;
291  save.lgSaveEveryZone[i] = false;
292  save.nSaveEveryZone[i] = -1;
293  save.emisfreq[i].set( -1. );
294  save.ipEmisFreq[i] = -1;
295  }
296 
297  /* default is to conserve energy, reset with
298  * set save line width / resolution command */
299  save.Resolution = realnum(-1.);
300  save.ResolutionAbs = realnum(-1.);
301 
302  /* punch dominant rates variables */
303  for( long i=0; i<LIMPUN; i++ )
304  strcpy( save.chSpeciesDominantRates[i], "" );
305 
306  /* default no printing of optical depths, TooFaint is .1 */
307  prt.lgPrtTau = false;
308  prt.PrtTauFnt = 0.1f;
309  prt.lgPrtShort = false;
310  prt.TooFaint = 1e-3f;
311  prt.lgFaintOn = true;
312  prt.lgFntSet = false;
313  prt.lgPrnLineCell = false;
314  prt.nPrnLineCell = -1000;
315  prt.lgPrtCitations = false;
316 
317  /* change angle of illumination
318  * this is angle away from the normal, so 0 is a normal ray, the default*/
320  geometry.size = 1.f;
321  geometry.lgSizeSet = false;
322  geometry.covaper = -1.f;
323 
324  /* if true then print main block of lines as array,
325  * set false with print lines column, will then
326  * do a single column of lines */
327  prt.lgPrtLineArray = true;
328 
329  /* when printing a column this is option to print linear rather than log */
330  prt.lgPrtLineLog = true;
331 
332  /* print ages */
333  prt.lgPrnAges = false;
334 
335  /* print column densities */
336  prt.lgPrintColumns = true;
337 
338  /* option to sort lines by wavelength, print sort command */
339  prt.lgSortLines = false;
340 
341  prt.lgPrtMaser = false;
342  prt.lgPrintTime = true;
343 
344  prt.lgPrtContIndices = false;
345  prt.lgPrnPump = false;
346  prt.lgPrnInwd = false;
347  prt.lgPrnColl = false;
348  prt.lgPrnHeat = false;
349  /* >>chng 00 dec 08, these determine the standard items included in "nFnu", PvH */
350  prt.lgSourceReflected = true;
351  prt.lgSourceTransmitted = false;
352  prt.lgDiffuseInward = true;
353  prt.lgDiffuseOutward = true;
354  prt.lgPrtLastIt = false;
355  prt.lgOnlyZone = false;
356  prt.lgOnlyHead = false;
357  prt.lgPrtStart = false;
358  prt.nstart = 0;
359  /* print predictions from collapsed levels of iso sequences */
360  prt.lgPrnIsoCollapsed = false;
361 
362  /* turn off printing of heating agents */
363  prt.lgPrintHeating = false;
364 
365  /* flag saying to print all matrix elements for ionization balance
366  * set with PRINT ARRAYS command */
367  for( nelem=ipHYDROGEN; nelem<LIMELM; ++nelem )
368  {
369  prt.lgPrtArry[nelem] = false;
370  }
371 
372  /* print line flux at earth */
373  prt.lgPrintFluxEarth = false;
374 
375  /* print line surface brightness, def sr, option arcsec */
376  prt.lgSurfaceBrightness = false;
378 
379  /* print line cumulative sets true, print integrated line intensity over
380  * time in temp dependent simulation */
381  prt.lgPrintLineCumulative = false;
382 
383  prt.nzdump = -100;
384 
385  trace.lgSecIon = false;
386  trace.lgTrOvrd = true;
387  trace.lgOpacBug = false;
388  trace.nTrConvg = 0;
389  trace.lgTr8446 = false;
390  trace.lgTrLevN = false;
391  trace.lgTrGant = false;
392  trace.lgOptcBug = false;
393  trace.lgTrace3Bod = false;
394  trace.lgOTSBug = false;
395  trace.lgESOURCE = false;
396  trace.lgTraceMole = false;
397  trace.lgHeatBug = false;
398  trace.lgHeavyBug = false;
399  trace.lgBug2nu = false;
400  trace.lgDrBug = false;
401  trace.lgWind = false;
402  trace.lgPtrace = false;
403  trace.lgDrv_cdLine = false;
404  trace.lgDustBug = false;
405  trace.lgComBug = false;
406  trace.lgHeBug = false;
407  trace.lgCarBug = false;
408  trace.lgCalBug = false;
409  trace.lgConBug = false;
410  trace.lgNeBug = false;
411  trace.lgFeBug = false;
412  trace.lgHBug = false;
413  trace.lgTrLine = false;
414  trace.nznbug = 10000;
415  trace.npsbug = 10000;
416  trace.lgTrace = false;
417  trace.lgPointBug = false;
418  trace.lgNeonBug = false;
419  trace.lgCoolTr = false;
420  trace.lgTrDiff = false;
421  for( ipISO=ipH_LIKE; ipISO<NISO; ++ipISO )
422  trace.lgIsoTraceFull[ipISO] = false;
423 
424  /* variables used in stop ... command */
425 
426  /* various criteria for stopping model */
427  /* >>chng 04 dec 21, remove from here and init to 1e30 in zero */
428  /*StopCalc.tauend = 0.;*/
429  StopCalc.tauend = 1e30f;
430 
431  /* >>chng 05 nov 22 - NPA. Stop calculation when fraction of oxygen frozen
432  * out on grains ices gets too high - formation of ices */
433  /*StopCalc.StopDepleteFrac = 0.99f;*/
434  /* >>chng 05 dec 16, with revised ion solver logic, code should be able to
435  * converge away from situation where ices have disturbed the chemistry and
436  * net negative atomic abundances result. now we say solution not converged and
437  * soldier on
438  * this test should not be necessary */
439  StopCalc.StopDepleteFrac = 1.02f;
440 
441  StopCalc.xMass = 0.;
442  StopCalc.taunu = 0.;
443  StopCalc.iptnu = -1;
444  /* stopping AV */
445  StopCalc.AV_extended = 1e30f;
446  StopCalc.AV_point = 1e30f;
447  /* highest allowed temperature */
450 
451  /* the floor sets a limit to the temperature in the calculation -
452  * if te falls below this, we do a constant temperature cloud at
453  * this temperature */
454  StopCalc.TeFloor = 0.;
455 
456  /* stop zone calculations when Te falls below this,
457  * TEMP_STOP_DEFAULT in cddefines.h and is 4000 */
459  /* stop iterations, used to stop time dependent command */
461 
462  /* ending column densities */
470 
472  StopCalc.chSpeciesColumn[0] = '\0';
474 
475  /* stopping electron density */
477 
478  /* stopping electron and molecular fractions */
479  StopCalc.StopElecFrac = -FLT_MAX;
480  StopCalc.StopHPlusFrac = -FLT_MAX;
481  /* stopping molecular fraction has opposite sign - want to stop when 2H_2/NH gt this */
482  StopCalc.StopH2MoleFrac = FLT_MAX;
483  /* this flag says that 21cm line optical depth is the stop quantity */
484  StopCalc.lgStop21cm = false;
485  /* debugging aid - stop when conv.nTotalIoniz reaches this value */
487  /* stop when absolute value of velocity falls below this */
488  StopCalc.StopVelocity = 0.;
489  /* number of stop line commands entered */
490  StopCalc.nstpl = 0;
491 
492  /* initialize some variables for the optimizer */
493  optimize.nIterOptim = 400;
494  optimize.OptGlobalErr = 0.10f;
495  optimize.nEmergent.clear();
496  optimize.chLineLabel.clear();
497  optimize.wavelength.clear();
498  optimize.errorwave.clear();
499  optimize.ipobs.clear();
500  optimize.xLineInt_Obs.clear();
501  optimize.xLineInt_error.clear();
502  optimize.chTempLab.clear();
503  optimize.ionTemp.clear();
504  optimize.temp_obs.clear();
505  optimize.temp_error.clear();
506  optimize.chTempWeight.clear();
507  optimize.chColDen_label.clear();
508  optimize.ion_ColDen.clear();
509  optimize.ColDen_Obs.clear();
510  optimize.ColDen_error.clear();
511  optimize.ContIndex.clear();
512  optimize.ContEner.clear();
513  optimize.ContNFnu.clear();
514  optimize.ContNFnuErr.clear();
515  optimize.nRangeSet = 0;
516  strcpy( optimize.chOptRtn, "PHYM" );
517 
518  /* flags says what is to be matched */
519  optimize.lgOptLum = false;
520  optimize.lgOptDiam = false;
521  optimize.lgOptimize = false;
522 
523  /* trace flag for optimization process */
524  optimize.lgTrOpt = false;
525 
526  optimize.lgOptimFlow = false;
527  optimize.optint = 0.;
528  optimize.optier = 0.;
529 # if defined(__unix) || defined(__APPLE__)
531 # else
532  optimize.lgParallel = false;
533 # endif
534  if( optimize.lgParallel )
535  optimize.useCPU = cpu.i().nCPU();
536  else
537  optimize.useCPU = 1;
538  optimize.lgOptCont = false;
539 
540  /* the fudge factors command */
541  fudgec.nfudge = 0;
542  fudgec.lgFudgeUsed = false;
543  for( i=0; i < NFUDGC; i++ )
544  fudgec.fudgea[i] = 0.;
545 
547  TauZero( DummyEmis );
548  DummyEmis.iRedisFun() = 0;
549  DummyEmis.ipFine() = -1;
550  DummyEmis.gf() = 0.;
551  DummyEmis.damp() = 0.;
552  DummyEmis.dampXvel() = 0.;
553  DummyEmis.opacity() = 0.;
554  DummyEmis.Aul() = 1e-30f;
555 
556  /* parameters dealing with printer plots */
557  for( i=0; i < NDPLOT; i++ )
558  {
559  plotCom.lgPltTrace[i] = false;
560  }
561 
562  /* this says what types of printer plots we will make */
563  for( i=0; i < NDPLOT; i++ )
564  {
565  strcpy( plotCom.chPType[i], "NONE" );
566  }
567  plotCom.lgPlotON = false;
568 
569  /* following were block data logic */
570  rt.lgStarkON = true;
571 
572  /* by default use Federman form of shielding function */
574 
575  /* parameters set with Case A and Case B commands */
576  /* this is flag for turning on case b */
577  opac.lgCaseB = false;
578 
579  /* this is separate flag for turning off collisions from n=2 */
580  opac.lgCaseB_HummerStorey = false;
581 
582  /* this is separate flag for turning off excited state photoionization */
583  opac.lgCaseB_no_photo = false;
584  /* another case b option, turn off background opacities, no Pdest */
585  opac.lgCaseB_no_pdest = false;
586 
587  /* smallest allowed line and Lya optical depths, reset with
588  * Case B command */
589  opac.tlamin = 1e-20f;
590 
591  /* taumin command minimum optical depths for lines default 1e-20 */
592  opac.taumin = 1e-20f;
593 
594  /* set false with no induced processes */
595  rfield.lgInducProcess = true;
596 
597  /* this flag says that CMB has been set */
598  rfield.lgCMB_set = false;
599 
600  rfield.lgComptonOn = true;
601 
602  for( i=0; i < LIMSPC; i++ )
603  {
604  /* this is set true if particular continuum source can vary with time
605  * set true if TIME appears on intensity / luminosity command line */
606  rfield.lgTimeVary[i] = false;
607  /* most continua enter as a beam rather than isotropic */
608  rfield.lgBeamed[i] = true;
609  // default is radiation from the "illuminated" face
611  // optical depth = normal optical depth * this scale factor,
612  // is 1 / cos theta
614  /* default energy range is H-ionizing radiation */
615  rfield.range[i][0] = HIONPOT;
616  rfield.range[i][1] = rfield.egamry;
617  rfield.RSFCheck[i] = 0.;
618  }
619 
620  /* line overlap opacity, turn off with no fine opacity command */
621  rfield.lgOpacityFine = true;
622 
623  /* lower and upper wavelength bounds, Angstroms, for the FeII continuum */
624  FeII.feconwlLo = 1000.;
625  FeII.feconwlHi = 7000.;
626  FeII.nfe2con = 1000;
627 
628  /* this is the faintest the high-energy tail of the continuum be */
629  rfield.FluxFaint = 1e-10f;
630 
631  /* >>chng 01 jul 26, moved next statement from below loop to avoid bug in gcc 2.95.3, PvH */
632  /* default diffuse fields is outward only */
633  strcpy( rfield.chDffTrns, "OU2" );
634  rfield.lgOutOnly = true;
635 
636  /* flags for whether continuum is defined over all energies */
637  rfield.lgMMok = true;
638  rfield.lgHPhtOK = true;
639  rfield.lgXRayOK = true;
640  rfield.lgGamrOK = true;
641 
642  for( rfield.ipSpec=0; rfield.ipSpec < LIMSPC; rfield.ipSpec++ )
643  {
645  {
646  rfield.tNu[rfield.ipSpec].clear();
647  rfield.tslop[rfield.ipSpec].clear();
648  rfield.tFluxLog[rfield.ipSpec].clear();
649  rfield.lgContMalloc[rfield.ipSpec] = false;
650  }
651  }
652 
653  grid.lgNegativeIncrements = false;
654  grid.lgSaveXspec = false;
655 
656  return;
657 }
char chSpeciesDominantRates[LIMPUN][CHARS_SPECIES]
Definition: save.h:368
realnum col_h2
Definition: stopcalc.h:74
realnum StopElecDensity
Definition: stopcalc.h:92
long int & ipFine() const
Definition: emission.h:413
t_fudgec fudgec
Definition: fudgec.cpp:5
bool lgContRadPresOn
Definition: pressure.h:105
realnum optint
Definition: optimize.h:249
realnum StopDepleteFrac
Definition: stopcalc.h:61
realnum colnut
Definition: stopcalc.h:69
long int nstpl
Definition: stopcalc.h:109
t_atmdat atmdat
Definition: atmdat.cpp:6
realnum dvdr
Definition: wind.h:21
bool lgBeamed[LIMSPC]
Definition: rfield.h:310
bool lgPrtStart
Definition: prt.h:186
bool lgPunContinuum
Definition: save.h:251
realnum AccelLine
Definition: wind.h:61
t_thermal thermal
Definition: thermal.cpp:5
bool lgPrtTau
Definition: prt.h:130
int & iRedisFun() const
Definition: emission.h:403
long int iptnu
Definition: stopcalc.h:29
bool lgGamrOK
Definition: rfield.h:459
realnum & opacity() const
Definition: emission.h:593
bool lgCaseB_no_photo
Definition: opacity.h:169
bool lgStoutHybrid
Definition: atmdat.h:243
realnum StopElecFrac
Definition: stopcalc.h:48
bool lgDustBug
Definition: trace.h:79
realnum size
Definition: geometry.h:67
bool lgChiantiLevelsSet
Definition: atmdat.h:216
double PressureVaryTimeIndex
Definition: dense.h:170
char chStoutFile[FILENAME_PATH_LENGTH]
Definition: atmdat.h:268
long int nRangeSet
Definition: optimize.h:200
bool lgHeBug
Definition: trace.h:82
bool lgHeavyBug
Definition: trace.h:21
bool lgWindOK
Definition: wind.h:42
t_opac opac
Definition: opacity.cpp:5
long int npsbug
Definition: trace.h:18
realnum flong
Definition: dense.h:251
realnum ResolutionAbs
Definition: save.h:366
double PressureInitialSpecified
Definition: pressure.h:98
vector< realnum > ColDen_Obs
Definition: optimize.h:210
bool lgPtrace
Definition: trace.h:118
bool lgPrtMaser
Definition: prt.h:127
bool lgDRHash
Definition: save.h:335
bool lgDrv_cdLine
Definition: trace.h:121
bool lgTeHigh
Definition: thermal.h:60
realnum feconwlHi
Definition: atomfeii.h:239
bool lgStop21cm
Definition: stopcalc.h:120
vector< realnum > xLineInt_error
Definition: optimize.h:222
bool lgStoutOn
Definition: atmdat.h:241
bool lgPrnHeat
Definition: prt.h:147
bool lgDisk
Definition: wind.h:74
t_cpu_i & i()
Definition: cpu.h:334
bool lgPrintLineCumulative
Definition: prt.h:225
const int NISO
Definition: cddefines.h:265
realnum AV_extended
Definition: stopcalc.h:89
long int MapZone
Definition: hcmap.h:20
bool lgIsoTraceFull[NISO]
Definition: trace.h:88
bool lgTraceMole
Definition: trace.h:55
bool lgCheckEnergyEveryZone
Definition: continuum.h:130
vector< Flux > ContNFnu
Definition: optimize.h:240
bool lgTeBD96
Definition: thermal.h:72
char chDffTrns[4]
Definition: rfield.h:236
bool lgFudgeUsed
Definition: fudgec.h:19
realnum windv0
Definition: wind.h:11
void set(double energy)
Definition: energy.h:19
bool lgSecIon
Definition: trace.h:130
const int ipOXYGEN
Definition: cddefines.h:316
realnum FluxFaint
Definition: rfield.h:55
bool lgComBug
Definition: trace.h:37
bool lgTracePrint
Definition: dynamics.h:177
realnum crtemp
Definition: hextra.h:14
bool lgTrOpt
Definition: optimize.h:252
t_StopCalc StopCalc
Definition: stopcalc.cpp:5
long int nPrnLineCell
Definition: prt.h:213
t_hextra hextra
Definition: hextra.cpp:5
bool lgOpacityFine
Definition: rfield.h:421
realnum drChange
Definition: radius.h:183
bool lgDrBug
Definition: trace.h:64
t_phycon phycon
Definition: phycon.cpp:6
realnum col_monoxco
Definition: stopcalc.h:86
bool lg_CR_B_equipartition
Definition: hextra.h:19
char chHashString[INPUT_LINE_LENGTH]
Definition: save.h:295
const long nChiantiPhotoLevelsFe
Definition: atmdat.h:220
t_dense dense
Definition: dense.cpp:24
vector< string > chLineLabel
Definition: optimize.h:215
realnum EdenSet
Definition: dense.h:203
realnum AccelAver
Definition: wind.h:46
double RSFCheck[LIMSPC]
Definition: rfield.h:339
bool lgDiffuseInward
Definition: prt.h:168
vector< Energy > tNu[LIMSPC]
Definition: rfield.h:330
CollIonRC CIRCData
Definition: atmdat.h:260
vector< realnum > tFluxLog[LIMSPC]
Definition: rfield.h:333
bool lgChiantiPrint
Definition: atmdat.h:235
bool lgCollIonOn
Definition: atmdat.h:200
#define NFUDGC
Definition: fudgec.h:9
t_noexec noexec
Definition: noexec.cpp:5
bool lgFntSet
Definition: prt.h:206
realnum AccelElectron
Definition: wind.h:58
bool lgFLUSH
Definition: save.h:298
bool lgGbarOn
Definition: atmdat.h:249
vector< realnum > tslop[LIMSPC]
Definition: rfield.h:331
bool lgAsChoose[LIMELM][LIMELM]
Definition: dense.h:176
bool lgPrtCitations
Definition: prt.h:242
t_dynamics dynamics
Definition: dynamics.cpp:44
realnum SolarSave[LIMELM]
Definition: abund.h:46
long int nfe2con
Definition: atomfeii.h:241
realnum colpls
Definition: stopcalc.h:69
bool lgVelPos
Definition: wind.h:71
bool lgNoExec
Definition: noexec.h:14
bool lgWind
Definition: trace.h:109
bool lgPointBug
Definition: trace.h:34
bool lgFeBug
Definition: trace.h:46
long int nsave
Definition: save.h:222
bool lgNeBug
Definition: trace.h:115
bool lgTimeVary[LIMSPC]
Definition: rfield.h:306
double range[LIMSPC][2]
Definition: rfield.h:347
const int LIMSPC
Definition: rfield.h:18
bool lgSourceReflected
Definition: prt.h:166
realnum AccelMax
Definition: wind.h:68
bool lgTrGant
Definition: trace.h:61
realnum glbdst
Definition: radius.h:128
realnum egamry
Definition: rfield.h:52
vector< realnum > temp_error
Definition: optimize.h:228
long int nMapStep
Definition: hcmap.h:26
realnum feconwlLo
Definition: atomfeii.h:239
bool lgCaseB_no_pdest
Definition: opacity.h:172
Wind wind
Definition: wind.cpp:5
bool lgTemperatureConstant
Definition: thermal.h:32
long int nIterOptim
Definition: optimize.h:205
t_trace trace
Definition: trace.cpp:5
bool lgAbnSolar
Definition: abund.h:57
t_ionbal ionbal
Definition: ionbal.cpp:5
realnum ExtinguishLeakage
Definition: rfield.h:99
bool lgPrtArry[LIMELM]
Definition: prt.h:195
t_abund abund
Definition: abund.cpp:5
realnum AccelGravity
Definition: wind.h:49
bool lg_separate_iterations[LIMPUN]
Definition: save.h:242
t_geometry geometry
Definition: geometry.cpp:5
realnum AccelCont
Definition: wind.h:55
bool lgOutOnly
Definition: rfield.h:241
const double TEMP_STOP_DEFAULT
Definition: phycon.h:109
bool lgPrnIsoCollapsed
Definition: prt.h:154
char chSpeciesColumn[CHARS_SPECIES]
Definition: stopcalc.h:133
bool lgChiantiHybrid
Definition: atmdat.h:233
bool lgPrintHeating
Definition: prt.h:192
realnum ConstGrainTemp
Definition: thermal.h:47
realnum WeakHeatCool
Definition: save.h:358
realnum & gf() const
Definition: emission.h:513
realnum TooFaint
Definition: prt.h:201
static const long LIMPUN
Definition: save.h:11
bool lgTLaw
Definition: thermal.h:68
bool lgConBug
Definition: trace.h:100
realnum HColStop
Definition: stopcalc.h:69
bool lgPrnLineCell
Definition: prt.h:210
bool lgESOURCE
Definition: trace.h:24
bool lgSaveXspec
Definition: grid.h:37
realnum StopHPlusFrac
Definition: stopcalc.h:56
bool lgHPhtOK
Definition: rfield.h:459
bool lgDiffuseOutward
Definition: prt.h:169
bool lgPrtLastIt
Definition: prt.h:175
bool lgChiantiOn
Definition: atmdat.h:231
bool lgTrace
Definition: trace.h:12
bool lgPrtContIndices
Definition: prt.h:158
realnum & dampXvel() const
Definition: emission.h:553
void setStatic(void)
Definition: wind.h:88
bool lgCMB_set
Definition: rfield.h:124
bool lgCalpgmOn
Definition: atmdat.h:247
bool lgStopSpeciesColumn
Definition: stopcalc.h:132
realnum crpowr
Definition: hextra.h:14
t_continuum continuum
Definition: continuum.cpp:5
EmissionProxy DummyEmis
Definition: taulines.cpp:61
char chCloudyChiantiFile[FILENAME_PATH_LENGTH]
Definition: atmdat.h:271
long int ncSaveSkip
Definition: save.h:354
bool lgParallel
Definition: optimize.h:259
realnum TurbHeat
Definition: hextra.h:32
bool lgSurfaceBrightness
Definition: prt.h:138
t_plotCom plotCom
Definition: plot.cpp:19
double cr_energydensity
Definition: hextra.h:22
bool lgOnlyZone
Definition: prt.h:181
realnum AbundanceLimit
Definition: dense.h:139
const double TEMP_LIMIT_HIGH
Definition: phycon.h:113
realnum ConstTemp
Definition: thermal.h:44
double DR_mean_scale[LIMELM]
Definition: ionbal.h:220
t_pressure pressure
Definition: pressure.cpp:5
t_rfield rfield
Definition: rfield.cpp:8
double collstrDefault
Definition: atmdat.h:254
long nStoutMaxLevels
Definition: atmdat.h:218
vector< realnum > ColDen_error
Definition: optimize.h:211
realnum xMass
Definition: stopcalc.h:77
bool lgCaseB
Definition: opacity.h:161
float realnum
Definition: cddefines.h:107
long int nstart
Definition: prt.h:189
bool lgCarBug
Definition: trace.h:97
realnum AccelTotalOutward
Definition: wind.h:52
const double HIONPOT
Definition: physconst.h:119
bool lgOnlyHead
Definition: prt.h:183
realnum col_species
Definition: stopcalc.h:134
Illuminate::IlluminationType Illumination[LIMSPC]
Definition: rfield.h:316
const realnum COLUMN_INIT
Definition: stopcalc.h:14
realnum AV_point
Definition: stopcalc.h:89
long int nSaveEveryZone[LIMPUN]
Definition: save.h:262
bool lgPres_magnetic_ON
Definition: pressure.h:131
bool lgFaintOn
Definition: prt.h:202
vector< realnum > xLineInt_Obs
Definition: optimize.h:221
bool lgSurfaceBrightness_SR
Definition: prt.h:138
bool lgTurbHeatVaryTime
Definition: hextra.h:66
realnum DirectionalCosin
Definition: geometry.h:15
bool lgDRPLst
Definition: save.h:335
realnum StopH2MoleFrac
Definition: stopcalc.h:52
vector< string > chTempLab
Definition: optimize.h:225
realnum col_H0_ov_Tspin
Definition: stopcalc.h:83
bool lgCalBug
Definition: trace.h:94
bool lgTrLine
Definition: trace.h:43
bool lgPrintTime
Definition: prt.h:120
long nChiantiMaxLevels
Definition: atmdat.h:214
bool lgPltTrace[NDPLOT]
Definition: plot.h:30
bool lgCoolTr
Definition: trace.h:112
bool lgPrtShort
Definition: prt.h:178
bool lgXRayOK
Definition: rfield.h:459
t_optimize optimize
Definition: optimize.cpp:5
int nTrConvg
Definition: trace.h:27
t_grid grid
Definition: grid.cpp:5
realnum cryden_ov_background
Definition: hextra.h:25
long int nTotalIonizStop
Definition: stopcalc.h:127
vector< int > nEmergent
Definition: optimize.h:214
realnum cryden
Definition: hextra.h:14
t_radius radius
Definition: radius.cpp:5
realnum TempLoStopZone
Definition: stopcalc.h:42
bool lgNeonBug
Definition: trace.h:40
t_prt prt
Definition: prt.cpp:10
bool lgTeSN99
Definition: thermal.h:80
bool lgTrOvrd
Definition: trace.h:127
bool lgPrtLineLog
Definition: prt.h:221
long int ipSolar[LIMELM]
Definition: abund.h:90
long int nfudge
Definition: fudgec.h:17
bool lgHextraSS
Definition: hextra.h:54
realnum glbrad
Definition: radius.h:128
realnum optier
Definition: optimize.h:250
double PressureVaryTimeTimescale
Definition: dense.h:168
realnum EdenFraction
Definition: dense.h:209
realnum TempLoStopIteration
Definition: stopcalc.h:45
realnum tlamin
Definition: opacity.h:158
vector< realnum > wavelength
Definition: optimize.h:217
realnum PrtTauFnt
Definition: prt.h:141
bool lgSaveEveryZone[LIMPUN]
Definition: save.h:261
char chOptRtn[5]
Definition: optimize.h:264
#define LINE_CONT_SHIELD_FEDERMAN
Definition: rt.h:291
bool lgSortLines
Definition: prt.h:101
bool lgNegativeIncrements
Definition: grid.h:36
realnum RangeMap[2]
Definition: hcmap.h:23
realnum covaper
Definition: geometry.h:44
realnum taunu
Definition: stopcalc.h:26
void EmLineZero(EmissionList::reference t)
Definition: emission.cpp:92
bool lgStarkON
Definition: rt.h:280
bool lgDenFlucOn
Definition: dense.h:244
bool lgHeatBug
Definition: trace.h:58
const long nChiantiPhotoLevels
Definition: atmdat.h:222
vector< long > ContIndex
Definition: optimize.h:238
long int nznbug
Definition: trace.h:15
bool lgHashEndIter[LIMPUN]
Definition: save.h:291
bool lgHBug
Definition: trace.h:85
const int ipH_LIKE
Definition: iso.h:62
bool lgAbTaON
Definition: abund.h:70
realnum emdot
Definition: wind.h:39
const int LIMELM
Definition: cddefines.h:262
vector< chi2_type > ContNFnuErr
Definition: optimize.h:241
bool lgPressureInitialSpecified
Definition: pressure.h:96
bool lgHextraDensity
Definition: hextra.h:47
bool lgOptimize
Definition: optimize.h:253
char chDenseLaw[5]
Definition: dense.h:158
int nLineContShield
Definition: rt.h:259
#define DEBUG_ENTRY(funcname)
Definition: cddefines.h:688
vector< long > ionTemp
Definition: optimize.h:226
long useCPU
Definition: optimize.h:261
realnum ExtinguishColumnDensity
Definition: rfield.h:99
vector< long > ipobs
Definition: optimize.h:220
realnum flcPhase
Definition: dense.h:254
long int npSolar
Definition: abund.h:90
char chPType[NDPLOT][5]
Definition: plot.h:18
bool lgPrnAges
Definition: prt.h:123
bool lgOpacBug
Definition: trace.h:76
bool lgMMok
Definition: rfield.h:459
bool lgTrDiff
Definition: trace.h:70
t_FeII FeII
Definition: atomfeii.cpp:5
bool lgPrnPump
Definition: prt.h:147
long ipEmisFreq[LIMPUN]
Definition: save.h:372
bool lgBug2nu
Definition: trace.h:106
bool lgPredNextTe
Definition: thermal.h:28
vector< Energy > ContEner
Definition: optimize.h:239
long int nzdump
Definition: prt.h:239
vector< realnum > temp_obs
Definition: optimize.h:227
realnum tauend
Definition: stopcalc.h:23
bool lgPrintFluxEarth
Definition: prt.h:134
realnum StopVelocity
Definition: stopcalc.h:65
bool lgPrintColumns
Definition: prt.h:116
bool lgOptCont
Definition: optimize.h:260
void TauZero(EmissionList::reference t)
Definition: emission.cpp:73
double TeFloor
Definition: stopcalc.h:33
bool lgInducProcess
Definition: rfield.h:252
bool lgStoutPrint
Definition: atmdat.h:245
realnum & damp() const
Definition: emission.h:563
vector< string > chColDen_label
Definition: optimize.h:208
bool lgOptDiam
Definition: optimize.h:232
bool lgSourceTransmitted
Definition: prt.h:167
realnum OpticalDepthScaleFactor[LIMSPC]
Definition: rfield.h:314
bool lgOTSBug
Definition: trace.h:103
bool lgPres_ram_ON
Definition: pressure.h:132
long int ipSpec
Definition: rfield.h:322
void InitDefaultsPreparse(void)
long nCPU() const
Definition: cpu.h:308
t_hcmap hcmap
Definition: hcmap.cpp:21
bool lgOptLum
Definition: optimize.h:255
bool lgSizeSet
Definition: geometry.h:70
bool lgOptcBug
Definition: trace.h:49
double DiskRadius
Definition: wind.h:78
bool lgPlotON
Definition: plot.h:21
vector< string > chTempWeight
Definition: optimize.h:229
bool lgTrace3Bod
Definition: trace.h:52
realnum OptGlobalErr
Definition: optimize.h:243
bool lgTraceConvergeBaseHash
Definition: save.h:340
bool lgLamdaOn
Definition: atmdat.h:239
static t_cpu cpu
Definition: cpu.h:342
realnum EdenExtra
Definition: dense.h:206
realnum ScaleElement[LIMELM]
Definition: abund.h:94
t_save save
Definition: save.cpp:5
bool lgPressureVaryTime
Definition: dense.h:165
long nChiantiMaxLevelsFe
Definition: atmdat.h:212
bool lgPrnColl
Definition: prt.h:147
realnum Resolution
Definition: save.h:363
const int ipHYDROGEN
Definition: cddefines.h:309
bool lgOptimFlow
Definition: optimize.h:248
bool lgChiantiExp
Definition: atmdat.h:237
Energy emisfreq[LIMPUN]
Definition: save.h:371
vector< long > ion_ColDen
Definition: optimize.h:209
realnum & Aul() const
Definition: emission.h:613
realnum acldr
Definition: wind.h:46
realnum TempHiStopZone
Definition: stopcalc.h:36
bool lgMPISingleRankMode() const
Definition: cpu.h:311
bool lgAbunTabl[LIMELM]
Definition: abund.h:70
bool lgDenFlucRadius
Definition: dense.h:248
bool lgDenseInitConstant
Definition: dense.h:162
bool lgTrLevN
Definition: trace.h:31
bool lg_coronal_time_init
Definition: dynamics.h:93
bool lgPres_radiation_ON
Definition: pressure.h:130
realnum col_h2_nut
Definition: stopcalc.h:80
bool lgCaseB_HummerStorey
Definition: opacity.h:165
realnum windv
Definition: wind.h:18
realnum comass
Definition: wind.h:14
realnum taumin
Definition: opacity.h:154
bool lgPrnInwd
Definition: prt.h:147
bool lgTr8446
Definition: trace.h:73
bool lgComptonOn
Definition: rfield.h:295
bool lgContMalloc[LIMSPC]
Definition: rfield.h:343
realnum TempHiStopIteration
Definition: stopcalc.h:38
realnum ExtinguishLowEnergyLimit
Definition: rfield.h:99
realnum fmul
Definition: wind.h:65
bool lgTemperatureConstantCommandParsed
Definition: thermal.h:38
vector< realnum > errorwave
Definition: optimize.h:219
#define NDPLOT
Definition: plot.h:13
bool lgPrtLineArray
Definition: prt.h:217
realnum fudgea[NFUDGC]
Definition: fudgec.h:15
bool lgHextraDepth
Definition: hextra.h:39
t_rt rt
Definition: rt.cpp:5
realnum solar[LIMELM]
Definition: abund.h:65