cloudy  trunk
conv.h
Go to the documentation of this file.
1 /* This file is part of Cloudy and is copyright (C)1978-2013 by Gary J. Ferland and
2  * others. For conditions of distribution and use see copyright notice in license.txt */
3 
4 #ifndef CONV_H_
5 #define CONV_H_
6 
15 void ConvIterCheck( void );
16 
19 bool ConvInitSolution();
20 
25 int ConvPresTempEdenIoniz(void);
26 
30 int ConvTempEdenIoniz(void);
31 
35 int ConvEdenIoniz(void);
36 
39 int ConvIoniz(void);
40 
45 void ConvFail(
46  /* chMode is one of "pres", "eden", "ioni", "pops", "grai", "temp" */
47  const char chMode[],
48  /* chDetail - string giving details about the convergence failure */
49  const char chDetail[] );
50 
58 int ConvBase(long loopi);
59 
63 int eden_sum(void);
64 
66 void EdenChange( double EdenNew );
67 
68 // Variables monitoring progress of convergence
70 {
84 };
85 
89 struct t_conv {
90 
93 
94 private:
98 
99 public:
101  {
102  m_lgConvIoniz = true;
103  strncpy(m_chConvIoniz, "NONE!!!!!", INPUT_LINE_LENGTH-1);
104  m_BadConvIoniz[0] = 0.0;
105  m_BadConvIoniz[1] = 0.0;
106  }
107  void setConvIonizFail(const char* reason, double oldval, double newval)
108  {
109  m_lgConvIoniz = false;
110  strncpy(m_chConvIoniz, reason, INPUT_LINE_LENGTH-1);
112  m_BadConvIoniz[0] = oldval;
113  m_BadConvIoniz[1] = newval;
114  }
115  bool lgConvIoniz() const
116  {
117  return m_lgConvIoniz;
118  }
119  const char *chConvIoniz() const
120  {
121  return m_chConvIoniz;
122  }
123  double convIonizOldVal() const
124  {
125  return m_BadConvIoniz[0];
126  }
127  double convIonizNewVal() const
128  {
129  return m_BadConvIoniz[1];
130  }
131 
132 
136 
137 private:
140 
141 public:
144 
145 private:
148  double m_BadConvIoniz[2];
149 
150 public:
152  long int nPres2Ioniz;
153 
158 
161  long int limPres2Ioniz;
162 
166  long int nTotalIoniz;
167 
172 
175  bool lgSearch;
176 
179 
183 
187 
190 
194 
197 
200 
203 
205  long int nTotalFailures;
206 
208  long int nTeFail;
209 
212 
214  long int nPreFail;
215 
217  long int nNeFail;
218 
221 
223  long int nIonFail;
224 
226  long int nPopFail;
227 
229  long int nGrainFail;
230 
232  long int nChemFail;
233 
235  long int LimFail;
236 
238  bool lgMap;
239 
241  long int ifailz[12];
242 
245  char chSolverEden[20];
246 
249  char chSolverTemp[20];
250 
253  bool lgBadStop;
254 
256  bool lgAutoIt;
257 
260 
263 
268 
273 
275 
279 
281 
286 
288  double dCmHdT;
289 
291  double sigma_dCmHdT;
292 
296  long int hist_pres_nzone;
297 
301  long int hist_temp_nzone;
302 
303 private:
304  // Variables monitoring progress of convergence
307 public:
308  void incrementCounter( const counter_type type )
309  {
310  ++m_counters[type];
311  ++m_counters_zone[type];
312  }
314  {
315  for( long i=0; i<NTYPES; ++i )
316  m_counters[i] = 0;
317  }
319  {
320  for( long i=0; i<NTYPES; ++i )
321  m_counters_zone[i] = 0;
322  }
323  long getCounter( const long type )
324  {
325  return m_counters[type];
326  }
327  long getCounterZone( const long type )
328  {
329  return m_counters_zone[type];
330  }
331 };
332 
333 
334 extern t_conv conv;
335 
336 #endif /* CONV_H_ */
t_conv::nTeFail
long int nTeFail
Definition: conv.h:208
t_conv::lgBadStop
bool lgBadStop
Definition: conv.h:253
t_conv::nIonFail
long int nIonFail
Definition: conv.h:223
t_conv::lgMap
bool lgMap
Definition: conv.h:238
t_conv::m_counters_zone
long m_counters_zone[NTYPES]
Definition: conv.h:306
EDEN_CHANGES
@ EDEN_CHANGES
Definition: conv.h:80
t_conv::AverHeatCoolError
realnum AverHeatCoolError
Definition: conv.h:182
t_conv::convIonizOldVal
double convIonizOldVal() const
Definition: conv.h:123
t_conv::lgConvEden
bool lgConvEden
Definition: conv.h:202
t_conv::BigEdenError
realnum BigEdenError
Definition: conv.h:220
t_conv::MaxFractionalDensityStepPerIteration
double MaxFractionalDensityStepPerIteration
Definition: conv.h:274
ConvIterCheck
void ConvIterCheck(void)
Definition: conv_itercheck.cpp:23
ConvEdenIoniz
int ConvEdenIoniz(void)
Definition: conv_eden_ioniz.cpp:21
realnum
float realnum
Definition: cddefines.h:103
t_conv::nPopFail
long int nPopFail
Definition: conv.h:226
t_conv::EdenErrorAllowed
double EdenErrorAllowed
Definition: conv.h:267
ConvIoniz
int ConvIoniz(void)
Definition: conv_ioniz.cpp:11
t_conv::lgFirstSweepThisZone
bool lgFirstSweepThisZone
Definition: conv.h:155
t_conv::hist_temp_temp
vector< double > hist_temp_temp
Definition: conv.h:300
MOLE_SOLVE_STEPS
@ MOLE_SOLVE_STEPS
Definition: conv.h:72
t_conv::IonizErrorAllowed
realnum IonizErrorAllowed
Definition: conv.h:280
ConvTempEdenIoniz
int ConvTempEdenIoniz(void)
Definition: conv_temp_eden_ioniz.cpp:36
t_conv::setConvIonizFail
void setConvIonizFail(const char *reason, double oldval, double newval)
Definition: conv.h:107
ConvBase
int ConvBase(long loopi)
Definition: conv_base.cpp:163
t_conv::resetCounters
void resetCounters()
Definition: conv.h:313
t_conv::BigHeatCoolError
realnum BigHeatCoolError
Definition: conv.h:181
counter_type
counter_type
Definition: conv.h:69
t_conv::resetCountersZone
void resetCountersZone()
Definition: conv.h:318
t_conv::getCounter
long getCounter(const long type)
Definition: conv.h:323
t_conv::m_BadConvIoniz
double m_BadConvIoniz[2]
Definition: conv.h:148
t_conv::nPreFail
long int nPreFail
Definition: conv.h:214
t_conv::LimFail
long int LimFail
Definition: conv.h:235
t_conv::autocv
realnum autocv
Definition: conv.h:262
t_conv::failmx
realnum failmx
Definition: conv.h:211
t_conv::GasPhaseAbundErrorAllowed
realnum GasPhaseAbundErrorAllowed
Definition: conv.h:285
t_conv::lgOscilOTS
bool lgOscilOTS
Definition: conv.h:193
t_conv::AverPressError
realnum AverPressError
Definition: conv.h:186
CONV_BASE_CALLS
@ CONV_BASE_CALLS
Definition: conv.h:75
t_conv::hist_pres_density
vector< double > hist_pres_density
Definition: conv.h:295
t_conv::chConvIoniz
const char * chConvIoniz() const
Definition: conv.h:119
t_conv::hist_temp_nzone
long int hist_temp_nzone
Definition: conv.h:301
TEMP_CHANGES
@ TEMP_CHANGES
Definition: conv.h:81
t_conv
Definition: conv.h:89
ISO_LOOPS
@ ISO_LOOPS
Definition: conv.h:79
NTYPES
@ NTYPES
Definition: conv.h:83
t_conv::lgAutoIt
bool lgAutoIt
Definition: conv.h:256
t_conv::sigma_dCmHdT
double sigma_dCmHdT
Definition: conv.h:291
t_conv::lgUpdateCouplings
bool lgUpdateCouplings
Definition: conv.h:259
t_conv::nTotalIoniz_start
long int nTotalIoniz_start
Definition: conv.h:171
t_conv::lgConvIoniz
bool lgConvIoniz() const
Definition: conv.h:115
MOLE_SOLVE
@ MOLE_SOLVE
Definition: conv.h:71
t_conv::getCounterZone
long getCounterZone(const long type)
Definition: conv.h:327
t_conv::resetConvIoniz
void resetConvIoniz()
Definition: conv.h:100
t_conv::hist_temp_cool
vector< double > hist_temp_cool
Definition: conv.h:300
NEWTON
@ NEWTON
Definition: conv.h:73
PRES_CHANGES
@ PRES_CHANGES
Definition: conv.h:82
t_conv::dCmHdT
double dCmHdT
Definition: conv.h:288
t_conv::chConvEden
char chConvEden[INPUT_LINE_LENGTH]
Definition: conv.h:92
EdenChange
void EdenChange(double EdenNew)
Definition: eden_change.cpp:12
t_conv::PressureErrorAllowed
realnum PressureErrorAllowed
Definition: conv.h:272
ION_SOLVES
@ ION_SOLVES
Definition: conv.h:78
t_conv::lgConvPres
bool lgConvPres
Definition: conv.h:199
t_conv::lgIonStageTrimed
bool lgIonStageTrimed
Definition: conv.h:189
CONV_BASE_LOOPS
@ CONV_BASE_LOOPS
Definition: conv.h:76
ConvInitSolution
bool ConvInitSolution()
Definition: conv_init_solution.cpp:242
t_conv::m_counters
long m_counters[NTYPES]
Definition: conv.h:305
t_conv::hist_pres_nzone
long int hist_pres_nzone
Definition: conv.h:296
t_conv::nChemFail
long int nChemFail
Definition: conv.h:232
t_conv::nNeFail
long int nNeFail
Definition: conv.h:217
t_conv::nGrainFail
long int nGrainFail
Definition: conv.h:229
t_conv::limPres2Ioniz
long int limPres2Ioniz
Definition: conv.h:161
t_conv::convIonizNewVal
double convIonizNewVal() const
Definition: conv.h:127
t_conv::nPres2Ioniz
long int nPres2Ioniz
Definition: conv.h:152
t_conv::lgConvPops
bool lgConvPops
Definition: conv.h:143
t_conv::hist_pres_current
vector< double > hist_pres_current
Definition: conv.h:295
NEWTON_LOOP
@ NEWTON_LOOP
Definition: conv.h:74
t_conv::hist_temp_heat
vector< double > hist_temp_heat
Definition: conv.h:300
t_conv::AverEdenError
realnum AverEdenError
Definition: conv.h:178
INPUT_LINE_LENGTH
const int INPUT_LINE_LENGTH
Definition: cddefines.h:254
t_conv::ifailz
long int ifailz[12]
Definition: conv.h:241
t_conv::chNotConverged
char chNotConverged[INPUT_LINE_LENGTH]
Definition: conv.h:135
t_conv::lgConvTemp
bool lgConvTemp
Definition: conv.h:196
t_conv::nTotalIoniz
long int nTotalIoniz
Definition: conv.h:166
ConvPresTempEdenIoniz
int ConvPresTempEdenIoniz(void)
Definition: conv_pres_temp_eden_ioniz.cpp:23
conv
t_conv conv
Definition: conv.cpp:5
t_conv::chSolverEden
char chSolverEden[20]
Definition: conv.h:245
t_conv::m_chConvIoniz
char m_chConvIoniz[INPUT_LINE_LENGTH]
Definition: conv.h:97
t_conv::incrementCounter
void incrementCounter(const counter_type type)
Definition: conv.h:308
CONV_BASE_ACCELS
@ CONV_BASE_ACCELS
Definition: conv.h:77
t_conv::m_lgConvIoniz
bool m_lgConvIoniz
Definition: conv.h:139
t_conv::HeatCoolRelErrorAllowed
realnum HeatCoolRelErrorAllowed
Definition: conv.h:278
eden_sum
int eden_sum(void)
Definition: eden_sum.cpp:18
t_conv::BigPressError
realnum BigPressError
Definition: conv.h:185
t_conv::lgLastSweepThisZone
bool lgLastSweepThisZone
Definition: conv.h:157
t_conv::nTotalFailures
long int nTotalFailures
Definition: conv.h:205
t_conv::lgSearch
bool lgSearch
Definition: conv.h:175
t_conv::chSolverTemp
char chSolverTemp[20]
Definition: conv.h:249
t_conv::hist_pres_error
vector< double > hist_pres_error
Definition: conv.h:295
ConvFail
void ConvFail(const char chMode[], const char chDetail[])
Definition: conv_fail.cpp:18