Cloudy
Spectral Synthesis Code for Astrophysics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ChargeBin Class Reference

#include <grainvar.h>

Collaboration diagram for ChargeBin:

Public Member Functions

 ChargeBin ()
 
void clear ()
 

Public Attributes

long DustZ
 
long ipThresInf
 
long ipThresInfVal
 
long nfill
 
double FracPop
 
double Emin
 
double EminInc
 
double PotSurf
 
double PotSurfInc
 
double ThresInf
 
double ThresInfInc
 
double ThresInfVal
 
double ThresSurf
 
double ThresSurfInc
 
double ThresSurfVal
 
double ThermRate
 
flex_arr< realnumyhat
 
flex_arr< realnumyhat_primary
 
flex_arr< realnumehat
 
flex_arr< double > cs_pdt
 
long RecomZ0 [LIMELM][LIMELM+1]
 
double eta [LIMELM+2]
 
double xi [LIMELM+2]
 
double RSum1
 
double RSum2
 
double ESum1a
 
double ESum1b
 
double ESum2
 
realnum tedust
 
double hcon1
 
double hots1
 
double bolflux1
 
double pe1
 
flex_arr< double > fac1
 
flex_arr< double > fac2
 
realnum RecomEn [LIMELM][LIMELM+1]
 
realnum ChemEn [LIMELM][LIMELM+1]
 
double BolFlux
 
double GrainHeat
 
double GrainHeatColl
 
double GasHeatPhotoEl
 
double GasHeatTherm
 
double GrainCoolTherm
 
double ChemEnIon
 
double ChemEnH2
 
double HeatingRate2
 

Private Member Functions

void p_clear0 ()
 
void p_clear1 ()
 

Detailed Description

NB NB NB NB NB NB

this is the data structure for all grain data that depends on the charge state (i.e. all data that used to have an [NCHS] dependance in days of old),

each data item will be referenced as: gv.bin[nd]->chrg[nz]->data_item

this structure is allocated for each charge state at run time.

Data items that do not depend on charge state, or are summed over all charge states, should go in gv or gv.bin[nd] below !!

NB NB !! every field that is in ChargeBin should be initialized or invalidated in UpdatePot1/2 !! NB NB

Constructor & Destructor Documentation

ChargeBin::ChargeBin ( )
inline

References p_clear1().

Here is the call graph for this function:

Member Function Documentation

void ChargeBin::clear ( )
inline

References p_clear0(), and p_clear1().

Here is the call graph for this function:

void ChargeBin::p_clear0 ( )
private

References flex_arr< T, lgBC >::clear(), cs_pdt, ehat, fac1, fac2, yhat, and yhat_primary.

Referenced by clear().

Here is the call graph for this function:

void ChargeBin::p_clear1 ( )
private

References DustZ, FracPop, nfill, and tedust.

Referenced by ChargeBin(), and clear().

Member Data Documentation

double ChargeBin::BolFlux

heating/cooling balance, all entries are valid for current zone, actual depl, and are in erg/cm^3/s total photon flux absorbed, used for energy conservation test

double ChargeBin::bolflux1

reminder of heating integral over all fields, Ryd/H/s at default depl

Referenced by GrainTemperature().

realnum ChargeBin::ChemEn[LIMELM][LIMELM+1]

net contribution of ion recomb to grain heating, in Ryd

Referenced by GrainCollHeating().

double ChargeBin::ChemEnH2

net amount of energy donated by H2 formation on grain surface

double ChargeBin::ChemEnIon

net amount of energy donated by recombining ions

flex_arr<double> ChargeBin::cs_pdt

photo-detachment cross section, for default depl

Referenced by GrainElecEmis1(), GrainTemperature(), GrainUpdateRadius2(), p_clear0(), and PE_init().

long ChargeBin::DustZ
flex_arr<realnum> ChargeBin::ehat

average energy per photo-electron (incl. Auger and secondary electrons), Ryd

Referenced by p_clear0(), PE_init(), and qheat_init().

double ChargeBin::Emin

negative threshold to be overcome by outgoing electron, in Ryd

double ChargeBin::EminInc

same as Emin, but for incoming electrons (using Zg instead of Zg+1), in Ryd

double ChargeBin::ESum1a

cache for PE rate from band and inner shells (incl. Auger elec. & secondaries)

Referenced by GrainElecEmis1().

double ChargeBin::ESum1b

cache for PE rate from conduction band

Referenced by GrainElecEmis1().

double ChargeBin::ESum2

cache for electron loss due to recombination with colliding ions

Referenced by GrainElecEmis1().

double ChargeBin::eta[LIMELM+2]

cache for GrainScreen results

flex_arr<double> ChargeBin::fac1

auxiliary data for GrainTemperature

Referenced by GrainTemperature(), p_clear0(), and qheat_init().

flex_arr<double> ChargeBin::fac2

auxiliary data for GrainTemperature

Referenced by GrainTemperature(), and p_clear0().

double ChargeBin::FracPop

fractional population for lower and upper charge state

Referenced by GrainChrgTransferRates(), GrainCollHeating(), GrainTemperature(), GrainUpdateRadius2(), p_clear1(), and qheat_init().

double ChargeBin::GasHeatPhotoEl

photoelectric heating of the gas, added in GrGH 0

double ChargeBin::GasHeatTherm

heating due to thermionic emission

double ChargeBin::GrainCoolTherm

grain cooling due to thermionic emissions, summed over charge states

double ChargeBin::GrainHeat

total heating of current grain type

double ChargeBin::GrainHeatColl

collisional heating of current grain type

double ChargeBin::hcon1

reminder of heating integral over incident flux, Ryd/H/s at default depl

Referenced by GrainTemperature().

double ChargeBin::HeatingRate2

quantum heating quantum heating by electron recomb - thermionic cooling, erg/H/s, default depl

Referenced by GrainCollHeating(), and qheat_init().

double ChargeBin::hots1

reminder of heating integral over diffuse fields, Ryd/H/s at default depl

Referenced by GrainTemperature().

long ChargeBin::ipThresInf

pointer to ThresInf in anu array

Referenced by GrainElecEmis1(), GrainTemperature(), GrainUpdateRadius2(), PE_init(), and qheat_init().

long ChargeBin::ipThresInfVal

pointer to ThresInfVal in anu array

Referenced by GrainElecEmis1(), PE_init(), and qheat_init().

long ChargeBin::nfill

remember how far the flex_arr's were filled in

Referenced by p_clear1(), and qheat_init().

double ChargeBin::pe1

reminder of photoelectric heating integral, Ryd/H/s at default depl

Referenced by GrainTemperature().

double ChargeBin::PotSurf

potential difference between grain surface and infinity (phi_g), in Ryd

Referenced by GrainCollHeating(), GrainTemperature(), PE_init(), and qheat_init().

double ChargeBin::PotSurfInc

same as PotSurf, but for incoming electrons (using Zg instead of Zg+1), in Ryd

Referenced by GrainCollHeating(), and qheat_init().

realnum ChargeBin::RecomEn[LIMELM][LIMELM+1]

chemical energy released into grain upon impact, in Ryd

Referenced by GrainCollHeating().

long ChargeBin::RecomZ0[LIMELM][LIMELM+1]

ionization stage the atom/ion recombines to upon impact

Referenced by GrainChrgTransferRates(), GrainCollHeating(), and GrainElecEmis1().

double ChargeBin::RSum1

cache for electron gain from colliding electrons

double ChargeBin::RSum2

cache for electron gain from colliding ions

realnum ChargeBin::tedust

grain heating equilibrium temperature for this zone

Referenced by p_clear1().

double ChargeBin::ThermRate

thermionic rate, in e/cm^2/s

Referenced by GrainTemperature().

double ChargeBin::ThresInf

threshold for removing electron from grain well to infinity (phi), in Ryd

double ChargeBin::ThresInfInc

same as ThresInf, but for incoming electrons (using Zg instead of Zg+1), in Ryd

Referenced by qheat_init().

double ChargeBin::ThresInfVal

threshold for removing electron from valence band to infinity (phi^v), in Ryd

double ChargeBin::ThresSurf

threshold for removing electron from grain well to surface (phi_s), in Ryd

Referenced by GrainTemperature(), PE_init(), and qheat_init().

double ChargeBin::ThresSurfInc

same as ThresSurf, but for incoming electrons (using Zg instead of Zg+1), in Ryd

Referenced by GrainCollHeating().

double ChargeBin::ThresSurfVal

threshold for removing electron from valence band to surface (phi_s^v), in Ryd

Referenced by PE_init(), and qheat_init().

double ChargeBin::xi[LIMELM+2]

cache for GrainScreen results

flex_arr<realnum> ChargeBin::yhat

electron yield per absorbed photon (incl. Auger and secondary electrons)

Referenced by GrainElecEmis1(), p_clear0(), PE_init(), and qheat_init().

flex_arr<realnum> ChargeBin::yhat_primary

electron yield per absorbed photon (only primary electrons)

Referenced by p_clear0(), and qheat_init().


The documentation for this class was generated from the following files: