35 int indexOfSmallest = 0;
37 const double Z = 1.0001;
38 const int NUM_DR_TYPES = 13;
43 } drValues[NUM_DR_TYPES];
59 static double drad_last_iteration=-1.;
96 dr_time_dep = drad_last_iteration;
166 drStromgren =
MIN2(1e28 , drStromgren );
176 drStromgren = cbrt(drStromgren);
190 drStromgren = FLT_MAX;
237 drthrm =
MAX2( 0.15, drthrm );
258 factor = fabs(factor-1.);
275 double change = 0.001;
295 drH2 = change /
SDIV(
320 drValues[0].dr = drOpacity;
322 drValues[2].dr = drStromgren;
324 drValues[4].dr = drcol;
325 drValues[5].dr = dr912;
326 drValues[6].dr = drthrm;
327 drValues[7].dr = winddr;
328 drValues[8].dr = dradf;
329 drValues[9].dr = drTabDen;
330 drValues[10].dr = drH2;
331 drValues[11].dr = drContPres;
332 drValues[12].dr = dr_time_dep;
334 drValues[0].whatToSay =
"drOpacity";
335 drValues[1].whatToSay =
"radius.Radius/20.";
336 drValues[2].whatToSay =
"drStromgren";
337 drValues[3].whatToSay =
"iterations.StopThickness[iteration-1]/10.";
338 drValues[4].whatToSay =
"drcol";
339 drValues[5].whatToSay =
"dr912";
340 drValues[6].whatToSay =
"drthrm";
341 drValues[7].whatToSay =
"winddr";
342 drValues[8].whatToSay =
"dradf";
343 drValues[9].whatToSay =
"drTabDen";
344 drValues[10].whatToSay =
"drH2";
345 drValues[11].whatToSay =
"drContPres";
346 drValues[12].whatToSay =
"dr_time_dep";
348 for( i=0; i<NUM_DR_TYPES; i++ )
350 if( drValues[i].dr < drValues[indexOfSmallest].dr )
392 MIN4( drthrm, winddr, dradf, drTabDen ),
393 MIN3( drH2, drContPres, dr_time_dep ) );
450 " radius_first called, finds dr=%13.5e drMinimum=%12.3e sdrmin=%10.2e sdrmax=%10.2e\n",
458 " PROBLEM radius_first detected likely insanity, found dr=%13.5e \n",
radius.
drad);
460 " radius_first: calculation continuing but crash is likely. \n");
483 static int iter_punch=-1;
495 "radius_first keys from radius.sdrmin\n");
502 "radius_first keys from radius.sdrmax\n");
506 ASSERT( indexOfSmallest < NUM_DR_TYPES - 1 );
508 drValues[indexOfSmallest].whatToSay.c_str());
517 "radius_first keys from drOpacity, opac was %.2e at %.2e Ryd\n",
518 BigOpacity , BigOpacityAnu );
523 "radius_first keys from radius.Radius\n" );
528 "radius_first keys from drStromgren\n");
533 "radius_first keys from time dependent\n");
538 "radius_first keys from iterations.StopThickness[iteration-1]\n");
543 "radius_first keys from drcol\n");
548 "radius_first keys from radius.sdrmin\n");
553 "radius_first keys from dr912\n");
558 "radius_first keys from radius.sdrmax\n");
563 "radius_first keys from drthrm\n");
568 "radius_first keys from winddr\n");
573 "radius_first keys from H2 lyman lines\n");
578 "radius_first keys from dradf\n");
583 "radius_first keys from drTabDen\n");
588 "radius_first keys from radiative acceleration across zone\n");
593 fprintf(
ioQQQ,
"radius_first insanity, radius is %e\n" ,
realnum thickness_stromgren
NORETURN void TotalInsanity(void)
bool lgTimeDependentStatic
char chHashString[INPUT_LINE_LENGTH]
vector< double > StopThickness
molezone * findspecieslocal_validate(const char buf[])
t_iso_sp iso_sp[NISO][LIMELM]
double xIonDense[LIMELM][LIMELM+1]
bool fp_equal(sys_float x, sys_float y, int n=3)
bool lgBallistic(void) const
long ipoint(double energy_ryd)
realnum AccelTotalOutward
double tabval(double r0, double depth) const
diatomics h2("h2", 4100.,&hmi.H2_total, Yan_H2_CS)
sys_float safe_div(sys_float x, sys_float y, sys_float res_0by0)
realnum gas_phase[LIMELM]
#define DEBUG_ENTRY(funcname)
int fprintf(const Output &stream, const char *format,...)
sys_float SDIV(sys_float x)
bool lgStatic(void) const