cloudy trunk
Defines | Functions

ion_solver.cpp File Reference

#include "cddefines.h"
#include "yield.h"
#include "prt.h"
#include "continuum.h"
#include "iso.h"
#include "dynamics.h"
#include "grainvar.h"
#include "hmi.h"
#include "mole.h"
#include "thermal.h"
#include "thirdparty.h"
#include "conv.h"
#include "secondaries.h"
#include "phycon.h"
#include "atmdat.h"
#include "heavy.h"
#include "elementnames.h"
#include "dense.h"
#include "radius.h"
#include "ionbal.h"
Include dependency graph for ion_solver.cpp:

Go to the source code of this file.

Defines

#define MAT(M_, I_, J_)   (*((M_)+(I_)*(ion_range)+(J_)))
#define RJRW   0

Functions

void solveions (double *ion, double *rec, double *snk, double *src, long int nlev, long int nmax)
void ion_solver (long int nelem, bool lgPrintIt)

Define Documentation

#define MAT (   M_,
  I_,
  J_ 
)    (*((M_)+(I_)*(ion_range)+(J_)))

Referenced by hmole_step(), and ion_solver().

#define RJRW   0

Referenced by ion_solver().


Function Documentation

void ion_solver ( long int  nelem,
bool  lgPrintIt 
)

ion_solver solve the bi-diagonal matrix for ionization balance

Parameters:
nelem- element number on C scale, He is 1
lgPrintIt- option to print details of matrix elements

Todo:
2 renorm should == 1 when the molecules and ionization are in equilibrium. Should monitor this figure of merit in calling routine.

Definition at line 28 of file ion_solver.cpp.

References ASSERT, atmdat, broken(), cdEXIT, t_conv::chConvIoniz, t_elementnames::chElementName, t_elementnames::chElementNameShort, t_elementnames::chElementSym, t_ionbal::CollIonRate_Ground, ContNegative(), conv, t_secondaries::csupra, DEBUG_ENTRY, dense, t_radius::depth, t_ionbal::DR_Badnell_rate_coef, t_ionbal::DR_old_rate_coef, dynamics, t_dense::eden, t_yield::elec_eject_frac(), elementnames, fnzone, t_dense::gas_phase, getrf_wrapper(), getrs_wrapper(), t_gv::GrainChTrRate, gv, t_atmdat::HCharExcIonOf, t_atmdat::HCharExcIonTotal, t_atmdat::HCharExcRecTo, t_atmdat::HCharExcRecTotal, t_thermal::heating, Heavy, t_atmdat::HeCharExcIonOf, t_atmdat::HeCharExcIonTotal, t_atmdat::HeCharExcRecTo, t_atmdat::HeCharExcRecTotal, hmi, Singleton< t_yield >::Inst(), ionbal, t_dense::IonHigh, t_dense::IonLow, ioQQQ, ipCARBON, ipH1s, ipH_LIKE, ipHe1s1S, ipHE_LIKE, ipHELIUM, ipHYDROGEN, ipiv, isnan, iso, iteration, t_dynamics::lgAdvection, t_conv::lgConvIoniz, t_gv::lgDustOn, t_mole::lgElem_in_chemistry, t_ionbal::lgGrainIonRecom, t_gv::lgGrainPhysicsOn, t_hmi::lgNoH2Mole, t_prt::lgPrtArry, t_conv::lgSearch, t_dense::lgSetIoniz, LIMELM, MALLOC, MAT, MAX2, MIN2, mole, t_dynamics::n_initial_relax, t_yield::nelec_eject(), NISO, t_Heavy::nsShells, t_conv::nTotalIoniz, nzone, t_dynamics::oldFullDepth, PARALLEL_MODE, t_ionbal::PhotoRate_Shell, phycon, t_iso::pop_ion_ov_neut, prt, radius, t_dynamics::Rate, t_ionbal::RateIonizTot, t_ionbal::RateRecomTot, RJRW, t_ionbal::RR_rate_coef_used, SDIV(), secondaries, t_dense::SetIoniz, ShowMe(), t_mole::sink, solveions(), t_dynamics::Source, t_mole::source, StatesElem, t_phycon::te, thermal, TorF(), t_ionbal::UTA_ionize_rate, t_dense::xIonDense, t_mole::xMoleChTrRate, and t_dense::xMolecules.

Referenced by IonAlumi(), IonArgon(), IonBeryl(), IonBoron(), IonCalci(), IonCarbo(), IonChlor(), IonChrom(), IonCobal(), IonCoppe(), IonFluor(), IonHelium(), IonIron(), IonLithi(), IonMagne(), IonManga(), IonNeon(), IonNicke(), IonNitro(), IonOxyge(), IonPhosi(), IonPotas(), IonScand(), IonSilic(), IonSodiu(), IonSulph(), IonTitan(), IonVanad(), IonZinc(), and iso_solve().

Here is the call graph for this function:

void solveions ( double *  ion,
double *  rec,
double *  snk,
double *  src,
long int  nlev,
long int  nmax 
)

Definition at line 1267 of file ion_solver.cpp.

References cdEXIT, DEBUG_ENTRY, and ioQQQ.

Referenced by ion_solver().

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated for cloudy by doxygen 1.7.3