20 const char chDetail[] )
38 if( strcmp( chMode ,
"pres" )==0 )
45 " PROBLEM ConvFail %li, pressure not converged; itr %li, zone %.2f Te:%.3e Hden:%.4e curr Pres:%.4e Error:%.4e%% Pra/gas:%.3e\n",
60 "\n PROBLEM continued, pressure not converged; we are stuck at the sonic point.\n\n");
67 else if( strcmp( chMode,
"eden" ) == 0 )
75 " PROBLEM ConvFail %li, eden not converged itr %li zone %li fnzone %.2f correct=%.3e "
101 else if( strcmp( chMode,
"ioni" ) == 0 )
107 fprintf(
ioQQQ,
" PROBLEM ConvFail %li, %s ionization not converged"
108 " iteration %li zone %li fnzone %.2f reason %s BadConvIoniz0:%g [1]=%g\n",
120 else if( strcmp( chMode,
"pops" ) == 0 )
127 fprintf(
ioQQQ,
" PROBLEM ConvFail %li, %s population not converged"
128 " iteration %li zone %li fnzone %.2f %s %g %g\n",
140 else if( strcmp( chMode,
"grai" ) == 0 )
146 fprintf(
ioQQQ,
" PROBLEM ConvFail %ld, a grain failure occurred"
147 " iteration %li zone %li fnzone %.2f %s %g %g\n",
159 else if( strcmp( chMode,
"temp" ) == 0 )
166 " PROBLEM ConvFail %ld, Temp not converged itr %li zone %li fnzone %.2f Te=%.4e"
167 " Htot=%.3e Ctot=%.3e rel err=%.3e rel tol:%.3e\n",
181 fprintf(
ioQQQ,
" Solution not converged due to %10.10s\n",
188 fprintf(
ioQQQ,
" ConvFail called with insane mode %s detail %s\n",
214 fprintf(
ioQQQ,
" Stop due to excessive convergence failures - there have been %ld so far. \n",
216 fprintf(
ioQQQ,
" This limit can be reset with the FAILURES command.\n" );
222 fprintf(
ioQQQ,
"\n This problem may be solved by adding cosmic rays.\n");
224 fprintf(
ioQQQ,
"\n The chemistry is not designed to work without a source of ionization.\n");
225 fprintf(
ioQQQ,
" >>> Add galactic background cosmic rays with the COSMIC RAYS BACKBOUND command and try again.\n\n" );
231 fprintf(
ioQQQ,
" These were all pressure failures - we may be near an unstable point in the cooling curve. \n");
232 fprintf(
ioQQQ,
" The PUNCH PRESSURE HISTORY command will show the n-T-P curve, and may be interesting.\n\n");
253 fprintf(
ioQQQ,
" ConvFail sets lgAbort since nTotalFailures=%ld is >= LimFail=%ld\n",
256 fprintf(
ioQQQ,
" This limit can be reset with the FAILURES command.\n");
double convIonizNewVal() const
const char * chConvIoniz() const
sys_float safe_div(sys_float x, sys_float y, sys_float res_0by0)
void map_do(FILE *io, const char *chType)
realnum HeatCoolRelErrorAllowed
void ConvFail(const char chMode[], const char chDetail[])
realnum gas_phase[LIMELM]
#define DEBUG_ENTRY(funcname)
int fprintf(const Output &stream, const char *format,...)
double convIonizOldVal() const