cloudy trunk
Loading...
Searching...
No Matches
iso_radiative_recomb.cpp File Reference
#include "cddefines.h"
#include "dynamics.h"
#include "atmdat.h"
#include "conv.h"
#include "cosmology.h"
#include "dense.h"
#include "elementnames.h"
#include "helike.h"
#include "helike_recom.h"
#include "hydrogenic.h"
#include "ionbal.h"
#include "iso.h"
#include "opacity.h"
#include "phycon.h"
#include "physconst.h"
#include "prt.h"
#include "save.h"
#include "thermal.h"
#include "thirdparty.h"
#include "trace.h"
#include "rt.h"
#include "taulines.h"
Include dependency graph for iso_radiative_recomb.cpp:

Go to the source code of this file.

Functions

STATIC double TempInterp (double *TempArray, double *ValueArray, long NumElements)
STATIC double iso_recomb_integrand (double EE)
STATIC void iso_put_recomb_error (long ipISO, long nelem)
double iso_radrecomb_from_cross_section (long ipISO, double temp, long nelem, long ipLo)
double iso_cross_section (double EgammaRyd, double EthRyd, long n, long l, long S, long globalZ, long globalISO)
void iso_radiative_recomb (long ipISO, long nelem)
void iso_radiative_recomb_effective (long ipISO, long nelem)
double iso_RRCoef_Te (long ipISO, long nelem, long n)
double iso_recomb_check (long ipISO, long nelem, long level, double temperature)
void iso_recomb_malloc (void)
void iso_recomb_auxiliary_free (void)
void iso_recomb_setup (long ipISO)
double iso_dielec_recomb_rate (long ipISO, long nelem, long ipLo)

Variables

static double **** RRCoef
static long ** NumLevRecomb
static double *** TotalRecomb
static double TeRRCoef [N_ISO_TE_RECOMB]
static double kTRyd
static double global_EthRyd
static long int globalZ
static long int globalISO
static long int globalN
static long int globalL
static long int globalS

Function Documentation

◆ iso_cross_section()

double iso_cross_section ( double ERyd,
double EthRyd,
long n,
long l,
long S,
long globalZ,
long globalISO )

iso_cross_section get cross section for a particular level of an iso sequence ion

Parameters
ERyd
EthRyd
n
l
S
Z
ipISO

Definition at line 132 of file iso_radiative_recomb.cpp.

References cross_section(), DEBUG_ENTRY, globalISO, globalZ, H_cross_section(), He_cross_section(), ipH_LIKE, ipHE_LIKE, S, and TotalInsanity().

Referenced by iso_recomb_integrand().

Here is the call graph for this function:

◆ iso_dielec_recomb_rate()

double iso_dielec_recomb_rate ( long ipISO,
long nelem,
long ipLo )

iso_dielec_recomb_rate - get state-specific dielectronic recombination rate

Parameters
ipISO
nelem
ipLo

Definition at line 1149 of file iso_radiative_recomb.cpp.

References ASSERT, DEBUG_ENTRY, freeBound::DielecRecombVsTemp, hunt_bisect(), ipHe1s1S, ipHE_LIKE, iso_ctrl, iso_sp, NUM_DR_TEMPS, and phycon.

Referenced by iso_radiative_recomb().

Here is the call graph for this function:

◆ iso_put_recomb_error()

STATIC void iso_put_recomb_error ( long ipISO,
long nelem )

Definition at line 560 of file iso_radiative_recomb.cpp.

References ASSERT, ipHE_LIKE, ipHELIUM, IPRAD, iso_put_error(), iso_sp, L_, MIN2, S_, and STATIC.

Referenced by iso_radiative_recomb().

Here is the call graph for this function:

◆ iso_radiative_recomb()

void iso_radiative_recomb ( long ipISO,
long nelem )

◆ iso_radiative_recomb_effective()

void iso_radiative_recomb_effective ( long ipISO,
long nelem )

iso_radiative_recomb_effective - get effective recomb rate coefficients into each level (including indirect)

Parameters
ipISO
nelem

Definition at line 602 of file iso_radiative_recomb.cpp.

References ASSERT, DEBUG_ENTRY, dprintf(), EN1RYD, ex, ioQQQ, IPRAD, ipRecRad, iso_ctrl, iso_sp, L_, MAX2, N_, phycon, prt_wl(), RYDLAM, S_, and wavelength.

Referenced by iso_update_rates().

Here is the call graph for this function:

◆ iso_radrecomb_from_cross_section()

double iso_radrecomb_from_cross_section ( long ipISO,
double temp,
long nelem,
long ipLo )

◆ iso_recomb_auxiliary_free()

void iso_recomb_auxiliary_free ( void )

iso_recomb_auxiliary_free - free up some auxiliary space associated with iso recombination tables.

Definition at line 825 of file iso_radiative_recomb.cpp.

References DEBUG_ENTRY, NISO, and NumLevRecomb.

Referenced by iso_create().

◆ iso_recomb_check()

double iso_recomb_check ( long ipISO,
long nelem,
long level,
double temperature )

iso_recomb_check - called by SanityCheck to confirm that recombination coef are ok, return value is relative error between new calculation of recom, and interp value

Parameters
ipISO
nelemthe chemical element, 1 for He
levelthe level, 0 for ground
temperaturethe temperature to be used

Definition at line 734 of file iso_radiative_recomb.cpp.

References DEBUG_ENTRY, iso_radrecomb_from_cross_section(), iso_RRCoef_Te(), MAX2, phycon, and TempChange().

Referenced by SanityCheckBegin().

Here is the call graph for this function:

◆ iso_recomb_integrand()

STATIC double iso_recomb_integrand ( double EE)

Definition at line 120 of file iso_radiative_recomb.cpp.

References global_EthRyd, globalISO, globalL, globalN, globalS, globalZ, iso_cross_section(), kTRyd, STATIC, and x1.

Referenced by iso_radrecomb_from_cross_section().

Here is the call graph for this function:

◆ iso_recomb_malloc()

void iso_recomb_malloc ( void )

iso_recomb_malloc - malloc space needed for iso recombination tables.

Definition at line 765 of file iso_radiative_recomb.cpp.

References DEBUG_ENTRY, dense, iso_get_total_num_levels(), iso_sp, LIKE_RREC_MAXN, LIMELM, MALLOC, MAX2, N_ISO_TE_RECOMB, NISO, NumLevRecomb, RRCoef, RREC_MAXN, TeRRCoef, and TotalRecomb.

Referenced by iso_create().

Here is the call graph for this function:

◆ iso_recomb_setup()

void iso_recomb_setup ( long ipISO)

iso_recomb_setup - read in or compile iso recombination tables.

Parameters
ipISO

Establish radiative recombination rate coefficients - RRC

Definition at line 838 of file iso_radiative_recomb.cpp.

References AS_LOCAL_ONLY, ASSERT, cdEXIT, chLine_LENGTH, DEBUG_ENTRY, dense, elementnames, EXIT_FAILURE, EXIT_SUCCESS, FFmtRead(), t_ADfA::H_rad_rec(), Singleton< t_ADfA >::Inst(), ioQQQ, ipHe1s1S, iso_ctrl, iso_radrecomb_from_cross_section(), iso_sp, LIKE_RREC_MAXN, LIMELM, N_ISO_TE_RECOMB, NHYDRO_MAX_LEVEL, NISO, NumLevRecomb, open_data(), read_whole_line(), Recomb_Seaton59(), RECOMBMAGIC, RRCoef, RREC_MAXN, SumUpToThisN, TeRRCoef, TotalRecomb, and trace.

Referenced by iso_create().

Here is the call graph for this function:

◆ iso_RRCoef_Te()

double iso_RRCoef_Te ( long ipISO,
long nelem,
long n )

iso_RRCoef_Te - interpolate iso recomb coeff as function of temperature

Parameters
ipISO
nelem
n

Definition at line 708 of file iso_radiative_recomb.cpp.

References ASSERT, DEBUG_ENTRY, iso_ctrl, iso_sp, N_ISO_TE_RECOMB, RRCoef, TempInterp(), TeRRCoef, and TotalRecomb.

Referenced by iso_radiative_recomb(), and iso_recomb_check().

Here is the call graph for this function:

◆ TempInterp()

STATIC double TempInterp ( double * TempArray,
double * ValueArray,
long NumElements )
Todo
2 use a canned interpolation routine, no need for special one here

Definition at line 1224 of file iso_radiative_recomb.cpp.

References ASSERT, cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, hunt_bisect(), ioQQQ, lagrange(), max(), min(), phycon, and STATIC.

Referenced by iso_RRCoef_Te().

Here is the call graph for this function:

Variable Documentation

◆ global_EthRyd

double global_EthRyd
static

◆ globalISO

long int globalISO
static

◆ globalL

long int globalL
static

◆ globalN

long int globalN
static

◆ globalS

long int globalS
static

◆ globalZ

long int globalZ
static

◆ kTRyd

double kTRyd
static

Definition at line 39 of file iso_radiative_recomb.cpp.

◆ NumLevRecomb

long** NumLevRecomb
static

◆ RRCoef

double**** RRCoef
static

Definition at line 33 of file iso_radiative_recomb.cpp.

Referenced by iso_recomb_malloc(), iso_recomb_setup(), and iso_RRCoef_Te().

◆ TeRRCoef

double TeRRCoef[N_ISO_TE_RECOMB]
static

Definition at line 38 of file iso_radiative_recomb.cpp.

Referenced by iso_recomb_malloc(), iso_recomb_setup(), and iso_RRCoef_Te().

◆ TotalRecomb

double*** TotalRecomb
static

Definition at line 35 of file iso_radiative_recomb.cpp.

Referenced by iso_recomb_malloc(), iso_recomb_setup(), and iso_RRCoef_Te().