00001 /* This file is part of Cloudy and is copyright (C)1978-2010 by Gary J. Ferland and 00002 * others. For conditions of distribution and use see copyright notice in license.txt */ 00003 00004 #ifndef CONV_H_ 00005 #define CONV_H_ 00006 00015 void ConvIterCheck( void ); 00016 00018 bool lgConvPres(void); 00019 00022 int ConvInitSolution(void); 00023 00028 int ConvPresTempEdenIoniz(void); 00029 00034 int PressureChange(double dP_chng_factor ); 00035 00039 int ConvTempEdenIoniz(void); 00040 00044 int ConvEdenIoniz(void); 00045 00048 int ConvIoniz(void); 00049 00054 void ConvFail( 00055 /* chMode is one of "pres", "eden", "ioni", "pops", "grai", "temp" */ 00056 const char chMode[], 00057 /* chDetail - string giving details about the convergence failure */ 00058 const char chDetail[] ); 00059 00067 int ConvBase(long loopi); 00068 00072 int eden_sum(void); 00073 00077 EXTERN struct t_conv { 00078 00080 char chConvEden[INPUT_LINE_LENGTH]; 00081 00084 char chConvIoniz[INPUT_LINE_LENGTH]; 00085 00088 char chNotConverged[INPUT_LINE_LENGTH]; 00089 00091 bool lgConvIoniz; 00092 00094 bool lgConvPops; 00095 00098 double BadConvIoniz[2]; 00099 00101 long int nPres2Ioniz; 00102 00104 bool lgFirstSweepThisZone; 00106 bool lgLastSweepThisZone; 00107 00110 long int limPres2Ioniz; 00111 00115 long int nTotalIoniz; 00116 00120 long int nTotalIoniz_start; 00121 00124 bool lgSearch; 00125 00127 realnum AverEdenError; 00128 00130 realnum BigHeatCoolError; 00131 realnum AverHeatCoolError; 00132 00134 realnum BigPressError; 00135 realnum AverPressError; 00136 00138 bool lgIonStageTrimed; 00139 00142 bool lgOscilOTS; 00143 00145 bool lgConvTemp; 00146 00148 bool lgConvPres; 00149 00151 bool lgConvEden; 00152 00154 long int nTotalFailures; 00155 00157 long int nTeFail; 00158 00160 realnum failmx; 00161 00163 long int nPreFail; 00164 00166 long int nNeFail; 00167 00169 realnum BigEdenError; 00170 00172 long int nIonFail; 00173 00175 long int nPopFail; 00176 00178 long int nGrainFail; 00179 00181 long int LimFail; 00182 00184 bool lgMap; 00185 00187 long int ifailz[12]; 00188 00191 char chSolverEden[20]; 00192 00195 char chSolverTemp[20]; 00196 00199 bool lgBadStop; 00200 00202 bool lgAutoIt; 00203 00205 realnum autocv; 00206 00210 double EdenErrorAllowed; 00211 00215 realnum PressureErrorAllowed; 00216 00219 realnum HeatCoolRelErrorAllowed; 00220 00222 double dCmHdT; 00223 00225 double sigma_dCmHdT; 00226 00229 vector<double> hist_pres_density, hist_pres_current, hist_pres_correct; 00230 long int hist_pres_nzone; 00231 00234 vector<double> hist_temp_temp, hist_temp_heat, hist_temp_cool; 00235 long int hist_temp_nzone; 00236 00237 } conv; 00238 00239 #endif /* CONV_H_ */