Cloudy
Spectral Synthesis Code for Astrophysics
|
#include <conv.h>
Public Member Functions | |
const char * | chName () const |
void | zero () |
void | comment (t_warnings &) |
void | resetConvIoniz () |
void | setConvIonizFail (const char *reason, double oldval, double newval) |
bool | lgConvIoniz () const |
const char * | chConvIoniz () const |
double | convIonizOldVal () const |
double | convIonizNewVal () const |
size_t | ntypes (void) const |
ConvergenceCounter | register_ (const string name) |
void | incrementCounter (const size_t type) |
void | resetCounters () |
void | resetCountersZone () |
long | getCounter (const long type) const |
long | getCounter (const string &name) const |
long | getCounterZone (const long type) const |
long | getCounterZone (const string &name) const |
long | getCounterMax (const long type) const |
long | getCounterMax (const string &name) const |
const char * | getCounterName (const long type) const |
![]() | |
module () | |
virtual | ~module () |
Private Attributes | |
string | m_chConvIoniz |
bool | m_lgConvIoniz |
double | m_BadConvIoniz [2] |
std::vector< long > | m_counters |
std::vector< long > | m_counters_zone |
std::vector< long > | m_counters_max |
std::vector< string > | m_labels |
the variables that deal with the convergence of the model
|
inline |
References m_chConvIoniz.
|
inlinevirtual |
Implements module.
|
inlinevirtual |
Implements module.
|
inline |
References m_BadConvIoniz.
|
inline |
References m_BadConvIoniz.
|
inline |
References m_counters.
|
inline |
References m_counters, and m_labels.
|
inline |
References m_counters_max.
|
inline |
References m_counters, m_counters_max, and m_labels.
|
inline |
References m_labels.
|
inline |
References m_counters_zone.
|
inline |
References m_counters, m_counters_zone, and m_labels.
|
inline |
References m_counters, and m_counters_zone.
|
inline |
References m_lgConvIoniz.
|
inline |
References m_counters.
ConvergenceCounter t_conv::register_ | ( | const string | name | ) |
References cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, fprintf(), ioQQQ, m_counters, m_counters_max, m_counters_zone, and m_labels.
|
inline |
References m_BadConvIoniz, m_chConvIoniz, and m_lgConvIoniz.
Referenced by zero().
|
inline |
References m_counters, and m_counters_max.
Referenced by zero().
|
inline |
|
inline |
References m_BadConvIoniz, m_chConvIoniz, and m_lgConvIoniz.
|
virtual |
Implements module.
References autocv, AverEdenError, AverHeatCoolError, AverPressError, BigEdenError, BigHeatCoolError, BigPressError, chNotConverged, chSolverEden, chSolverTemp, dCmHdT, EdenErrorAllowed, failmx, GasPhaseAbundErrorAllowed, HeatCoolRelErrorAllowed, IonizErrorAllowed, lgAllTransitions, lgAutoIt, lgConvEden, lgConvPres, lgConvTemp, lgFirstSweepThisZone, lgLastSweepThisZone, lgMap, lgUpdateCouplings, LimFail, limPres2Ioniz, MaxFractionalDensityStepPerIteration, nGrainFail, nIonFail, nNeFail, nPopFail, nPreFail, nPres2Ioniz, nTeFail, nTotalFailures, nTotalIoniz, PressureErrorAllowed, resetConvIoniz(), and resetCounters().
realnum t_conv::BigEdenError |
remember the biggest electron density error as test of convergence quality
Referenced by zero().
realnum t_conv::BigHeatCoolError |
remember the biggest and average heating-cooling error
Referenced by zero().
char t_conv::chNotConverged[INPUT_LINE_LENGTH] |
this gives the reason the model was declared not converged when 'iter to convergence' command is given
Referenced by zero().
char t_conv::chSolverEden[20] |
which electron density solver to use? set with set eden solver command, simple and new
Referenced by zero().
char t_conv::chSolverTemp[20] |
which temperature density solver to use? set with set eden solver command, default and brent
Referenced by zero().
double t_conv::dCmHdT |
numerical estimate of d(cooling-heating)/dT
Referenced by zero().
double t_conv::EdenErrorAllowed |
this is relative error in the electron density we want set in zero to 0.01 reset with set eden error command
Referenced by zero().
realnum t_conv::failmx |
failmx is largest relative error in heating cooling match
Referenced by zero().
realnum t_conv::GasPhaseAbundErrorAllowed |
allowed error in total gas-phase density of each element, including molecules change with "SET DENSITY TOLERANCE" command default set in zero
Referenced by zero().
realnum t_conv::HeatCoolRelErrorAllowed |
allowed error in heating - cooling balance, set with TOLERANCE command default set in zerologic
Referenced by zero().
vector<double> t_conv::hist_pres_current |
vector<double> t_conv::hist_pres_density |
these are used to retain the density pressure history in current zone, can be output with save pressure history
vector<double> t_conv::hist_pres_error |
long int t_conv::hist_pres_nzone |
vector<double> t_conv::hist_temp_cool |
vector<double> t_conv::hist_temp_heat |
long int t_conv::hist_temp_nzone |
vector<double> t_conv::hist_temp_temp |
these are used to retain the temp/heat/cooling history in current zone, can be output with save temperature history
long int t_conv::ifailz[12] |
zones where converge problems occurred
bool t_conv::lgAllTransitions |
says "iterate to convergence all" command given
Referenced by zero().
bool t_conv::lgAutoIt |
says "iterate to convergence" command given
Referenced by zero().
bool t_conv::lgBadStop |
flag saying that calculation stopped for bad reason mostly set in lgEndfun
bool t_conv::lgConvEden |
true when the electron density has converged
Referenced by zero().
bool t_conv::lgConvPops |
this flag is used in ConvPresTempEdenIoniz to check that populations have converged
bool t_conv::lgConvPres |
true if pressure is converged, false if not
Referenced by zero().
bool t_conv::lgConvTemp |
true if temperature is converged, false if not
Referenced by zero().
bool t_conv::lgFirstSweepThisZone |
first sweep through solvers in this zone. also true is search phase
Referenced by zero().
bool t_conv::lgIonStageTrimed |
flag set in ConvBase, saying whether ionization stage is trimmed down
bool t_conv::lgLastSweepThisZone |
last sweep through solvers in this zone, so update fine opacities
Referenced by zero().
bool t_conv::lgMap |
lgMap is option to map failures
Referenced by zero().
bool t_conv::lgOscilOTS |
this is true if ots rates are oscillating, and this is why ionization is not converged
bool t_conv::lgSearch |
conv.lgSearch is true during initial temp-ion search phase, false after first zone established
bool t_conv::lgUpdateCouplings |
says update inter-couplings after every ion solution
Referenced by zero().
long int t_conv::LimFail |
LimFail is limit to number of te failures, set with "failures" cmnd
Referenced by zero().
long int t_conv::limPres2Ioniz |
a limit to the above, in case where one zone takes forever to not converge, usually very large, set with SET PRESIONIZ command
Referenced by zero().
|
private |
when the lgConvIoniz flag is set false, the old and new numbers, the reason for the lack of convergence, should be set to following
Referenced by convIonizNewVal(), convIonizOldVal(), resetConvIoniz(), and setConvIonizFail().
|
private |
this says why the ionization did not converge, reasons can be a large change in the level of ionization, or in the heating
Referenced by chConvIoniz(), resetConvIoniz(), and setConvIonizFail().
|
private |
Referenced by getCounter(), getCounter(), getCounterMax(), getCounterZone(), incrementCounter(), ntypes(), register_(), and resetCounters().
|
private |
Referenced by getCounterMax(), getCounterMax(), register_(), resetCounters(), and resetCountersZone().
|
private |
Referenced by getCounterZone(), getCounterZone(), incrementCounter(), register_(), and resetCountersZone().
|
private |
Referenced by getCounter(), getCounterMax(), getCounterName(), getCounterZone(), and register_().
|
private |
this flag is used in ConvPresTempEdenIoniz to check that ionization has converged
Referenced by lgConvIoniz(), resetConvIoniz(), and setConvIonizFail().
double t_conv::MaxFractionalDensityStepPerIteration |
Referenced by zero().
long int t_conv::nChemFail |
number of chemistry solution failures
long int t_conv::nGrainFail |
number of grain ionization balance failures
Referenced by zero().
long int t_conv::nIonFail |
nIonFail is number of ionization failures
Referenced by zero().
long int t_conv::nNeFail |
nNeFail is number of electron density failures
Referenced by zero().
long int t_conv::nPopFail |
nIonFail is number of level population failures
Referenced by zero().
long int t_conv::nPreFail |
nPreFail is number of pressure failures
Referenced by zero().
long int t_conv::nPres2Ioniz |
this will count the number of ionizations in one call from ConvPresTempEdenIoniz
Referenced by zero().
long int t_conv::nTeFail |
nTeFail number of temperature failures
Referenced by zero().
long int t_conv::nTotalFailures |
total number of all falures, used to trigger abort
Referenced by zero().
long int t_conv::nTotalIoniz |
counts the number of calls to conv base after iteration starts can be used to determine very first pass through an iteration reset to zero at start of each iteration in a simulation
Referenced by zero().
long int t_conv::nTotalIoniz_start |
the same counter but set to zero after the initial solution is converged, so this is a measure of the number of calls within true zones
realnum t_conv::PressureErrorAllowed |
this is relative error in the pressure, initialized to 0.02 in reset with set pressure error command
Referenced by zero().
double t_conv::sigma_dCmHdT |
1-sigma uncertainty in numerical estimate of d(cooling-heating)/dT