ionbal.h File Reference

Go to the source code of this file.

Data Structures

struct  t_ionbal

Defines

#define NSHELLS   7

Functions

void ion_recom_calculate (void)
void ion_trim (long int nelem)
void ion_zero (long int nelem)
void ion_collis (long nelem)
void ion_solver (long int nelem, bool lgPrintIt)
void ion_photo (long int nelem, bool lgPrintIt)
void ion_recomb (bool, const double *, const double *, const double[], const double[], const double[], const double[], const double[], const double[], long)
void ion_recombAGN (FILE *io)
void Badnell_rec_init (void)
double Badnell_DR_rate_eval (int z_val, int n_val)
double Badnell_RR_rate_eval (int z_val, int n_val)
void IonAlumi (void)
void IonArgon (void)
void IonBeryl (void)
void IonBoron (void)
void IonCalci (void)
void IonCarbo (void)
void IonChlor (void)
void IonChrom (void)
void IonCobal (void)
void IonCoppe (void)
void IonFluor (void)
void IonHelium (void)
void IonIron (void)
void IonLithi (void)
void IonMagne (void)
void IonManga (void)
void IonNeon (void)
void IonNicke (void)
void IonNitro (void)
void IonOxyge (void)
void IonPhosi (void)
void IonPotas (void)
void IonScand (void)
void IonSilic (void)
void IonSodiu (void)
void IonSulph (void)
void IonTitan (void)
void IonVanad (void)
void IonZinc (void)

Variables

EXTERN struct t_ionbal ionbal


Define Documentation

#define NSHELLS   7

max number of shells we ever have to deal with

Definition at line 105 of file ionbal.h.

Referenced by zero().


Function Documentation

double Badnell_DR_rate_eval ( int  z_val,
int  n_val 
)

Badnell_DR_rate_eval This code is written by Terry Yun, 2005 
   It interpolates the rate coefficients in a given temperature.
   It receives ATOMIC_NUM_BIG, NELECTRONS values, temperature and returns the rate coefficient*
   It returns
        '-2': initial <= final
              init < 0 or init >302 or final < 0 or final > 302
        '-1': the transition is not defined
        '99': unknown invalid entries                         
  
Parameters:
z_val atomic number on physics scale - He - 2
n_val number of core electrons before capture of free electron

Definition at line 736 of file ion_recomb_Badnell.cpp.

References ASSERT, C, DEBUG_ENTRY, DEBUG_EXIT, defn_C, E, nn_counter, phycon, sexp(), t_phycon::te, and t_phycon::te32.

Referenced by Badnell_rec_init(), and ion_recom_calculate().

Here is the call graph for this function:

void Badnell_rec_init ( void   ) 

Badnell_rec_init This code is written by Terry Yun, 2005 * It reads rate coefficient fits into 3D arrays and output array.out for testing * The testing can be commented out

Definition at line 344 of file ion_recomb_Badnell.cpp.

References ASSERT, ATOMIC_NUM_BIG, Badnell_DR_rate_eval(), Badnell_RR_rate_eval(), C, cdEXIT(), chDataPath, DEBUG_ENTRY, DEBUG_EXIT, defn, defn_C, defn_E, E, FILENAME_PATH_LENGTH_2, INPUT_LINE_LENGTH, ioQQQ, ipHYDROGEN, lgDataPathSet, LIMELM, MAX_FIT_PAR_DR, MAX_FIT_PAR_RR, NELECTRONS, nn_counter, par, and path_not_set().

Referenced by atmdat_readin().

Here is the call graph for this function:

double Badnell_RR_rate_eval ( int  z_val,
int  n_val 
)

Badnell_RR_rate_eval

Parameters:
z_val atomic number on physics scale - He - 2
n_val number of core electrons before capture of free electron

Definition at line 871 of file ion_recomb_Badnell.cpp.

References ASSERT, DEBUG_ENTRY, DEBUG_EXIT, defn, par, phycon, and t_phycon::te.

Referenced by Badnell_rec_init(), and ion_recom_calculate().

void ion_collis ( long  nelem  ) 

ion_collis fill in collisional ionization rates, and resulting cooling

Parameters:
nelem element number on C scale, H is 0

void ion_photo ( long int  nelem,
bool  lgPrintIt 
)

void ion_recom_calculate ( void   ) 

void ion_recomb ( bool  ,
const double *  ,
const double *  ,
const   double[],
const   double[],
const   double[],
const   double[],
const   double[],
const   double[],
long   
)

ion_recomb generate recombination coefficients for any species

void ion_recombAGN ( FILE *  io  ) 

ion_recombAGN generate recombination coefficients for AGN table

Definition at line 474 of file ion_recomb.cpp.

References abund, ASSERT, t_elementnames::chElementSym, ConvBase(), DEBUG_ENTRY, DEBUG_EXIT, dense, t_dense::eden, elementnames, Heavy, ionbal, t_dense::IonHigh, t_dense::IonLow, ioQQQ, ipHYDROGEN, ipLITHIUM, t_abund::lgAGN, LIMELM, N1LIM, N2LIM, phycon, t_ionbal::RateRecomTot, t_phycon::te, tfidle(), and t_Heavy::Valence_IP_Ryd.

Referenced by PunchDo().

Here is the call graph for this function:

void ion_solver ( long int  nelem,
bool  lgPrintIt 
)

ion_solver solve the bi-diagonal matrix for ionization balance

Parameters:
nelem 
lgPrintIt 

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, DEBUG_EXIT, dense, t_radius::depth, t_ionbal::DR_Badnell_rate_coef, t_ionbal::DR_old_rate_coef, dynamics, t_dense::eden, 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 >::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, NISO, t_Heavy::nsShells, t_conv::nTotalIoniz, nzone, t_dynamics::oldFullDepth, PARALLEL_MODE, t_ionbal::PhotoRate_Shell, phycon, t_iso::Pop2Ion, 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, t_phycon::te, thermal, TorF(), t_ionbal::UTA_ionize_rate, t_dense::xIonDense, t_mole::xMoleChTrRate, and t_dense::xMolecules.

Referenced by Hydrogenic(), 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(), and IonZinc().

Here is the call graph for this function:

void ion_trim ( long int  nelem  ) 

void ion_zero ( long int  nelem  ) 

void IonAlumi ( void   ) 

void IonArgon ( void   ) 

Definition at line 8 of file ion_argon.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, dense, ion_collis(), ion_photo(), ion_recomb(), ion_solver(), ion_zero(), ipARGON, and t_dense::lgElmtOn.

Referenced by ConvBase().

Here is the call graph for this function:

void IonBeryl ( void   ) 

void IonBoron ( void   ) 

void IonCalci ( void   ) 

void IonCarbo ( void   ) 

void IonChlor ( void   ) 

Definition at line 9 of file ion_chlor.cpp.

References atmdat, DEBUG_ENTRY, DEBUG_EXIT, dense, t_atmdat::HCharExcRecTo, ion_collis(), ion_photo(), ion_recomb(), ion_solver(), ion_zero(), ipCHLORINE, and t_dense::lgElmtOn.

Referenced by ConvBase().

Here is the call graph for this function:

void IonChrom ( void   ) 

Definition at line 8 of file ion_chrom.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, dense, ion_collis(), ion_photo(), ion_recomb(), ion_solver(), ion_zero(), ipCHROMIUM, and t_dense::lgElmtOn.

Referenced by ConvBase().

Here is the call graph for this function:

void IonCobal ( void   ) 

Definition at line 8 of file ion_cobal.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, dense, ion_collis(), ion_photo(), ion_recomb(), ion_solver(), ion_zero(), ipCOBALT, and t_dense::lgElmtOn.

Referenced by ConvBase().

Here is the call graph for this function:

void IonCoppe ( void   ) 

Definition at line 8 of file ion_coppe.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, dense, ion_collis(), ion_photo(), ion_recomb(), ion_solver(), ion_zero(), ipCOPPER, and t_dense::lgElmtOn.

Referenced by ConvBase().

Here is the call graph for this function:

void IonFluor ( void   ) 

Definition at line 8 of file ion_fluor.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, dense, ion_collis(), ion_photo(), ion_recomb(), ion_solver(), ion_zero(), ipFLUORINE, and t_dense::lgElmtOn.

Referenced by ConvBase().

Here is the call graph for this function:

void IonHelium ( void   ) 

void IonIron ( void   ) 

void IonLithi ( void   ) 

Definition at line 8 of file ion_lithi.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, dense, ion_collis(), ion_photo(), ion_recomb(), ion_solver(), ion_zero(), ipLITHIUM, and t_dense::lgElmtOn.

Referenced by ConvBase().

Here is the call graph for this function:

void IonMagne ( void   ) 

void IonManga ( void   ) 

Definition at line 8 of file ion_manga.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, dense, ion_collis(), ion_photo(), ion_recomb(), ion_solver(), ion_zero(), ipMANGANESE, and t_dense::lgElmtOn.

Referenced by ConvBase().

Here is the call graph for this function:

void IonNeon ( void   ) 

void IonNicke ( void   ) 

Definition at line 8 of file ion_nicke.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, dense, ion_collis(), ion_photo(), ion_recomb(), ion_solver(), ion_zero(), ipNICKEL, and t_dense::lgElmtOn.

Referenced by ConvBase().

Here is the call graph for this function:

void IonNitro ( void   ) 

void IonOxyge ( void   ) 

void IonPhosi ( void   ) 

Definition at line 8 of file ion_phosi.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, dense, ion_collis(), ion_photo(), ion_recomb(), ion_solver(), ion_zero(), ipPHOSPHORUS, and t_dense::lgElmtOn.

Referenced by ConvBase().

Here is the call graph for this function:

void IonPotas ( void   ) 

Definition at line 8 of file ion_potas.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, dense, t_dense::eden, ion_collis(), ion_photo(), ion_recomb(), ion_solver(), ion_zero(), ionbal, ipPOTASSIUM, t_dense::lgElmtOn, phycon, t_ionbal::RateRecomTot, and t_phycon::te.

Referenced by ConvBase().

Here is the call graph for this function:

void IonScand ( void   ) 

Definition at line 8 of file ion_scand.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, dense, ion_collis(), ion_photo(), ion_recomb(), ion_solver(), ion_zero(), ipSCANDIUM, and t_dense::lgElmtOn.

Referenced by ConvBase().

Here is the call graph for this function:

void IonSilic ( void   ) 

void IonSodiu ( void   ) 

void IonSulph ( void   ) 

void IonTitan ( void   ) 

Definition at line 8 of file ion_titan.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, dense, ion_collis(), ion_photo(), ion_recomb(), ion_solver(), ion_zero(), ipTITANIUM, and t_dense::lgElmtOn.

Referenced by ConvBase().

Here is the call graph for this function:

void IonVanad ( void   ) 

Definition at line 8 of file ion_vanad.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, dense, ion_collis(), ion_photo(), ion_recomb(), ion_solver(), ion_zero(), ipVANADIUM, and t_dense::lgElmtOn.

Referenced by ConvBase().

Here is the call graph for this function:

void IonZinc ( void   ) 

Definition at line 8 of file ion_zinc.cpp.

References DEBUG_ENTRY, DEBUG_EXIT, dense, ion_collis(), ion_photo(), ion_recomb(), ion_solver(), ion_zero(), ipZINC, and t_dense::lgElmtOn.

Referenced by ConvBase().

Here is the call graph for this function:


Variable Documentation

EXTERN struct t_ionbal ionbal


Generated for cloudy by doxygen 1.5.9