00001 /* This file is part of Cloudy and is copyright (C)1978-2007 by Gary J. Ferland 00002 * For conditions of distribution and use see copyright notice in license.txt */ 00011 void ConvIterCheck( void ); 00012 00014 bool lgConvPres(void); 00015 00017 bool lgConvTemp(void); 00018 00020 bool lgConvEden(void); 00021 00024 int ConvInitSolution(void); 00025 00030 int ConvPresTempEdenIoniz(void); 00031 00036 int PressureChange(double dP_chng_factor ); 00037 00041 int ConvTempEdenIoniz(void); 00042 00046 int ConvEdenIoniz(void); 00047 00050 int ConvIoniz(void); 00051 00056 void ConvFail( 00057 /* chMode is one of "pres", "eden", "ioni", "pops", "grai", "temp" */ 00058 const char chMode[], 00059 /* chDetail - string giving details about the convergence failure */ 00060 const char chDetail[] ); 00061 00069 int ConvBase(long loopi); 00070 00074 int eden_sum(void); 00075 00079 EXTERN struct t_conv { 00080 00082 char *chConvEden; 00083 00086 char *chConvIoniz; 00087 00090 char *chNotConverged; 00091 00093 bool lgConvIoniz; 00094 00096 bool lgConvPops; 00097 00100 double BadConvIoniz[2]; 00101 00103 long int nPres2Ioniz; 00106 long int limPres2Ioniz; 00107 00110 long int nTotalIoniz; 00111 00115 long int nTotalIoniz_start; 00116 00119 bool lgSearch; 00120 00122 float AverEdenError; 00123 00125 float BigHeatCoolError; 00126 float AverHeatCoolError; 00127 00129 float BigPressError; 00130 float AverPressError; 00131 00133 bool lgIonStageTrimed; 00134 00136 bool lgCmHOsc; 00137 00139 bool lgTOscl; 00140 00142 bool lgEdenOscl; 00143 00146 bool lgOscilOTS; 00147 00149 bool lgConvTemp; 00150 00152 bool lgConvPres; 00153 00155 bool lgConvEden; 00156 00158 bool lgLevel2_OTS_Imp; 00159 00161 bool lgLevel2_Cool_Imp; 00162 00164 long int nTotalFailures; 00165 00167 long int nTeFail; 00168 00170 float failmx; 00171 00173 long int nPreFail; 00174 00176 long int nNeFail; 00177 00179 float BigEdenError; 00180 00182 long int nIonFail; 00183 00185 long int nPopFail; 00186 00188 long int nConvIonizFails; 00189 00191 long int nGrainFail; 00192 00194 long int LimFail; 00195 00197 bool lgMap; 00198 00200 long int ifailz[12]; 00201 00204 char chSolverEden[20]; 00205 00208 char chSolverTemp[20]; 00209 00212 bool lgBadStop; 00213 00215 bool lgAutoIt; 00216 00218 float autocv; 00219 00223 double EdenErrorAllowed; 00224 00228 float PressureErrorAllowed; 00229 00232 float HeatCoolRelErrorAllowed; 00233 00236 double *hist_pres_density , *hist_pres_current , *hist_pres_correct; 00237 long int hist_pres_npres , hist_pres_nzone , hist_pres_limit; 00238 00241 double *hist_temp_temp , *hist_temp_heat , *hist_temp_cool; 00242 long int hist_temp_ntemp , hist_temp_nzone , hist_temp_limit; 00243 00244 } conv;