cloudy trunk
Loading...
Searching...
No Matches
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
12
15void ConvIterCheck( void );
16
19bool ConvInitSolution();
20
24
25int ConvPresTempEdenIoniz(void);
26
30int ConvTempEdenIoniz(void);
31
35int ConvEdenIoniz(void);
36
39int ConvIoniz(void);
40
45void 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
58int ConvBase(long loopi);
59
63int eden_sum(void);
64
66void EdenChange( double EdenNew );
67
68// Variables monitoring progress of convergence
85
89struct t_conv {
90
93
94private:
98
99public:
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
137private:
140
141public:
144
145private:
148 double m_BadConvIoniz[2];
149
150public:
152 long int nPres2Ioniz;
153
158
162
166 long int nTotalIoniz;
167
172
176
179
183
187
190
194
197
200
203
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
254
257
260
263
268
273
275
279
281
286
288 double dCmHdT;
289
292
297
302
303private:
304 // Variables monitoring progress of convergence
307public:
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
334extern t_conv conv;
335
336#endif /* CONV_H_ */
const int INPUT_LINE_LENGTH
Definition cddefines.h:254
float realnum
Definition cddefines.h:103
t_conv conv
Definition conv.cpp:5
int ConvBase(long loopi)
int ConvTempEdenIoniz(void)
int ConvPresTempEdenIoniz(void)
void EdenChange(double EdenNew)
void ConvIterCheck(void)
counter_type
Definition conv.h:70
@ CONV_BASE_LOOPS
Definition conv.h:76
@ CONV_BASE_ACCELS
Definition conv.h:77
@ NTYPES
Definition conv.h:83
@ ISO_LOOPS
Definition conv.h:79
@ MOLE_SOLVE
Definition conv.h:71
@ NEWTON_LOOP
Definition conv.h:74
@ MOLE_SOLVE_STEPS
Definition conv.h:72
@ CONV_BASE_CALLS
Definition conv.h:75
@ PRES_CHANGES
Definition conv.h:82
@ TEMP_CHANGES
Definition conv.h:81
@ ION_SOLVES
Definition conv.h:78
@ NEWTON
Definition conv.h:73
@ EDEN_CHANGES
Definition conv.h:80
bool ConvInitSolution()
int ConvIoniz(void)
int eden_sum(void)
Definition eden_sum.cpp:18
int ConvEdenIoniz(void)
void ConvFail(const char chMode[], const char chDetail[])
Definition conv_fail.cpp:18
Definition conv.h:89
long int LimFail
Definition conv.h:235
bool lgConvTemp
Definition conv.h:196
long int nTotalIoniz
Definition conv.h:166
double dCmHdT
Definition conv.h:288
bool lgMap
Definition conv.h:238
realnum IonizErrorAllowed
Definition conv.h:280
void incrementCounter(const counter_type type)
Definition conv.h:308
long int ifailz[12]
Definition conv.h:241
bool lgFirstSweepThisZone
Definition conv.h:155
char chSolverTemp[20]
Definition conv.h:249
long int nTotalIoniz_start
Definition conv.h:171
double sigma_dCmHdT
Definition conv.h:291
realnum autocv
Definition conv.h:262
realnum PressureErrorAllowed
Definition conv.h:272
bool lgAutoIt
Definition conv.h:256
bool lgOscilOTS
Definition conv.h:193
bool lgIonStageTrimed
Definition conv.h:189
double MaxFractionalDensityStepPerIteration
Definition conv.h:274
bool lgConvPops
Definition conv.h:143
long m_counters_zone[NTYPES]
Definition conv.h:306
vector< double > hist_pres_density
Definition conv.h:295
long int nPopFail
Definition conv.h:226
char m_chConvIoniz[INPUT_LINE_LENGTH]
Definition conv.h:97
realnum BigEdenError
Definition conv.h:220
char chConvEden[INPUT_LINE_LENGTH]
Definition conv.h:92
realnum failmx
Definition conv.h:211
vector< double > hist_pres_error
Definition conv.h:295
void resetCounters()
Definition conv.h:313
bool lgConvEden
Definition conv.h:202
long int nTeFail
Definition conv.h:208
realnum AverPressError
Definition conv.h:186
double convIonizNewVal() const
Definition conv.h:127
vector< double > hist_pres_current
Definition conv.h:295
long int nPres2Ioniz
Definition conv.h:152
bool lgLastSweepThisZone
Definition conv.h:157
long int nGrainFail
Definition conv.h:229
long int nNeFail
Definition conv.h:217
bool m_lgConvIoniz
Definition conv.h:139
long getCounter(const long type)
Definition conv.h:323
realnum AverHeatCoolError
Definition conv.h:182
char chSolverEden[20]
Definition conv.h:245
void setConvIonizFail(const char *reason, double oldval, double newval)
Definition conv.h:107
bool lgBadStop
Definition conv.h:253
long int hist_temp_nzone
Definition conv.h:301
long int nChemFail
Definition conv.h:232
long getCounterZone(const long type)
Definition conv.h:327
realnum BigHeatCoolError
Definition conv.h:181
realnum BigPressError
Definition conv.h:185
const char * chConvIoniz() const
Definition conv.h:119
vector< double > hist_temp_heat
Definition conv.h:300
void resetCountersZone()
Definition conv.h:318
realnum AverEdenError
Definition conv.h:178
long int nPreFail
Definition conv.h:214
bool lgConvPres
Definition conv.h:199
long int hist_pres_nzone
Definition conv.h:296
void resetConvIoniz()
Definition conv.h:100
long int limPres2Ioniz
Definition conv.h:161
long int nIonFail
Definition conv.h:223
double m_BadConvIoniz[2]
Definition conv.h:148
long int nTotalFailures
Definition conv.h:205
realnum GasPhaseAbundErrorAllowed
Definition conv.h:285
char chNotConverged[INPUT_LINE_LENGTH]
Definition conv.h:135
long m_counters[NTYPES]
Definition conv.h:305
vector< double > hist_temp_cool
Definition conv.h:300
bool lgUpdateCouplings
Definition conv.h:259
double EdenErrorAllowed
Definition conv.h:267
realnum HeatCoolRelErrorAllowed
Definition conv.h:278
vector< double > hist_temp_temp
Definition conv.h:300
double convIonizOldVal() const
Definition conv.h:123
bool lgSearch
Definition conv.h:175
bool lgConvIoniz() const
Definition conv.h:115