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