/home66/gary/public_html/cloudy/c10_branch/source/conv_base.cpp File Reference

#include "cddefines.h"
#include "dynamics.h"
#include "trace.h"
#include "elementnames.h"
#include "save.h"
#include "phycon.h"
#include "secondaries.h"
#include "stopcalc.h"
#include "grainvar.h"
#include "highen.h"
#include "dense.h"
#include "hmi.h"
#include "rfield.h"
#include "pressure.h"
#include "taulines.h"
#include "rt.h"
#include "grains.h"
#include "atmdat.h"
#include "ionbal.h"
#include "opacity.h"
#include "cooling.h"
#include "thermal.h"
#include "mole.h"
#include "iso.h"
#include "conv.h"
Include dependency graph for conv_base.cpp:

Go to the source code of this file.

Defines

#define LOOP_ION_LIMIT   10

Functions

STATIC bool lgIonizConverg (long int nelem, double delta, bool lgPrint)
int ConvBase (long loopi)

Define Documentation

#define LOOP_ION_LIMIT   10

Referenced by ConvBase().


Function Documentation

int ConvBase ( long  loopi  ) 

ConvBase main routine to drive ionization solution for all species, find total opacity called by ConvIoniz/ lgConverg check whether ionization of element nelem has converged

Parameters:
loopi this tells how many times ConvBase has been called by ConvIoniz while trying to converge electron density == 0 on first call - allows logic in ConvBase to check for ots oscillations

Todo:
2 this assert is not passed if error made much smaller. This error should be related to a check on convergence of the molecular networks and their sum rules, with a criteria used here and there
Todo:
0 PvH prefers test against err/10

Definition at line 139 of file conv_base.cpp.

References abund, ASSERT, atmdat_3body(), atmdat_DielSupres(), t_conv::BadConvIoniz, t_thermal::char_tran_cool, t_thermal::char_tran_heat, ChargTranEval(), ChargTranSumHeat(), t_conv::chConvIoniz, t_elementnames::chElementSym, t_save::chHashString, t_hmi::chLab, t_iso::chTypeAtomUsed, co, CO_drive(), CO_update_rks(), CO_update_species_cache(), COmole, t_co::comole_eden, molecule::comole_save, conv, CoolEvaluate(), t_secondaries::csupra, t_thermal::ctot, DEBUG_ENTRY, dense, DumpLine(), DynaIonize(), dynamics, t_dense::eden, eden_sum(), t_conv::EdenErrorAllowed, t_dense::EdenTrue, elementnames, transition::Emis, fixit(), fnzone, fp_equal(), t_dense::gas_phase, GrainDrive(), gv, t_hmi::H2_total, t_conv::HeatCoolRelErrorAllowed, HeatSum(), HeatZero(), molecule::hevmol, highen(), hmi, hmole_reactions(), t_hmi::Hmolec, t_thermal::htot, ion_recom_calculate(), ion_trim(), ion_wrapper(), ionbal, t_dense::IonHigh, t_dense::IonLow, ioQQQ, ipH_LIKE, ipHELIUM, ipHYDROGEN, ipMHm, t_save::ipTraceConvergeBase, iso, iso_drive(), iteration, molecule::label, lgAbort, t_dynamics::lgAdvection, t_conv::lgConvIoniz, t_dense::lgElmtOn, t_conv::lgFirstSweepThisZone, GrainVar::lgGrainElectrons, t_ionbal::lgInnerShellLine_on, lgIonizConverg(), t_rfield::lgIonizReevaluate, t_conv::lgIonStageTrimed, t_rfield::lgOpacityReevaluate, t_opac::lgOpacStatic, t_conv::lgOscilOTS, t_trace::lgOTSBug, t_opac::lgRedoStatic, t_conv::lgSearch, t_dense::lgSetIoniz, t_thermal::lgTemperatureConstant, t_trace::lgTrace, t_save::lgTraceConvergeBase, t_save::lgTraceConvergeBaseHash, LIMELM, t_conv::limPres2Ioniz, LOOP_ION_LIMIT, MAX2, MAX_DENSITY, mole, N_H_MOLEC, molecule::nelem_hevmol, NISO, t_co::nitro_dissoc_rate, t_conv::nPres2Ioniz, t_conv::nTotalIoniz, t_StopCalc::nTotalIonizStop, t_trace::nTrConvg, t_mole::num_comole_calc, t_iso::numLevels_local, nUTA, nzone, opac, t_opac::opacity_abs, OpacityAddTotal(), t_emission::ots, phycon, PresTotCurrent(), rfield, RT_line_all(), RT_OTS(), RT_OTS_PrtRate(), RT_OTS_Update(), save, SDIV(), t_secondaries::sec2total, secondaries, t_dense::SetIoniz, SMALLFLOAT, StatesElemNEW, StopCalc, TauLines, t_phycon::te, t_thermal::te_update, thermal, TorF(), GrainVar::TotalEden, trace, Transitions, t_ionbal::UTA_heat_rate, t_ionbal::UTA_ionize_rate, UTALines, t_dense::xIonDense, t_dense::xMolecules, and t_dense::xNucleiTotal.

Referenced by ConvInitSolution(), ConvIoniz(), and ion_recombAGN().

Here is the call graph for this function:

STATIC bool lgIonizConverg ( long int  nelem,
double  delta,
bool  lgPrint 
)

Definition at line 34 of file conv_base.cpp.

References ASSERT, t_conv::BadConvIoniz, conv, DEBUG_ENTRY, dense, t_dense::gas_phase, ioQQQ, t_dense::lgElmtOn, LIMELM, MAX2, t_conv::nPres2Ioniz, TorF(), and t_dense::xIonDense.

Referenced by ConvBase().

Here is the call graph for this function:

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 15 Nov 2012 for cloudy by  doxygen 1.6.1