64 static double OldCmHdT = 0.;
78 fprintf(
ioQQQ,
"\n ConvTempEdenIoniz called\n" );
82 fprintf(
ioQQQ,
" ConvTempEdenIoniz1 called. Te:%.4e Htot:%11.4e Ctot:%11.4e error:%9.1e%%, eden=%11.4e\n",
100 fprintf(
ioQQQ ,
"DEBUG new temp solver error1 %.2e error2 %.2e TeNew %.2e\n",
101 error1 , error2 , TeNew );
136 nTemperature_loop = 0;
210 fprintf(
ioQQQ,
" ConvTempEdenIoniz returns ok.\n" );
234 fprintf(
ioQQQ,
" ConvTempEdenIoniz2 converged. Te:%11.4e Htot:%11.4e Ctot:%11.4e error:%9.1e%%, eden=%11.4e\n",
245 else if(nTemperature_loop >= limtry ||
lgAbort )
260 fprintf(
ioQQQ,
" ConvTempEdenIoniz9 increases limtry to%3ld\n",
289 " ConvTempEdenIoniz3 breaks since lgConvEden returns failed electron density.\n");
301 # define USENUMER false
304 dCoolmHeatdT = DerivNumer;
324 if( OldCmHdT*dCoolmHeatdT < 0. )
335 OldCmHdT = dCoolmHeatdT;
359 nTemp_oscil = nTemperature_loop;
361 else if( Damper < 1. && nTemperature_loop-nTemp_oscil > 10 )
367 if( !((nTemperature_loop-nTemp_oscil)%5) )
368 Damper =
MIN2( 1., Damper*1.5 );
407 else if( 0 && nTemperature_loop <= 3)
494 " ConvTempEdenIoniz4 a %4li T:%.4e dt:%10.2e%7.2f%% C:%10.2e H:%10.2e"
495 " CoolMHeat/h:%7.2f%% dC-H/dT:%.2e kase:%i%c damp%.2f\n",
515 " ConvTempEdenIoniz TE:%.5e dT%.3e HTOT:%.5e CTOT:%.5e dCoolmHeatdT:%c%.4e C-H%.4e HDEN%.2e kase %i\n",
539 fprintf(
ioQQQ,
" ConvTempEdenIoniz7 fell through loop, heating cooling not converged, setting conv.lgConvTemp = false\n");
549 fprintf(
ioQQQ,
" ConvTempEdenIoniz8 fell through loop, heating cooling is converged (ion not?), setting conv.lgConvTemp = true\n");
567 static long int nstore;
568 static double OldTe , OldCool , OldHeat;
572 if( strcmp(job,
"zero") == 0 )
580 else if( strcmp(job,
"incr") == 0 )
588 *DerivNumer = dCdT - dHdT;
590 fprintf(
ioQQQ,
"derivderiv\t%li\t%.2e\t%.2e\t%.2e\t%.2e\t%.2e\t%.2e\n",
611 fprintf(
ioQQQ,
" MakeDeriv called with insane job=%4.4s\n",
705 fprintf(
ioQQQ,
" TeBrent called without proper bracket - this is impossible\n" );
706 fprintf(
ioQQQ,
" Sorry.\n" );
719 if( (fx2 > 0. && fc > 0.) || (fx2 < 0. && fc < 0.) )
726 if( fabs(fc) < fabs(fx2) )
755 p = s*(2.*xm*q*(q - r) - (x2 - x1)*(r - 1.));
756 q = (q - 1.)*(r - 1.)*(s - 1.);
764 if( 2.*p <
MIN2(3.*xm*q-aa,bb) )
800 fprintf(
ioQQQ,
" TeBrent did not converge in %i iterations\n",
ITERMAX );
801 fprintf(
ioQQQ,
" Sorry.\n" );