#include <grainvar.h>
this is the data structure for all grain data that depends on grain type (i.e. all data that used to have an [NDUST] dependance in days of old),
each data item will be referenced as: gv.bin[nd]->data_item
this structure is allocated for each grain bin at run time.
Data items that are generic for all grain types, or are summed over all grain types, should go in gv below !!
NB NB NB NB NB NB
Definition at line 198 of file grainvar.h.
double GrainBin::AccomCoef[LIMELM] |
inverse attenuation length (in cm)
Definition at line 280 of file grainvar.h.
Referenced by GrainCollHeating(), and mie_read_opc().
double * GrainBin::asym |
<[NC_ELL] asymmetry factor (1-g)
Definition at line 246 of file grainvar.h.
Referenced by GrainDrift(), GrainsInit(), GrainUpdateRadius2(), mie_read_opc(), NewGrainBin(), PunchDo(), radius_increment(), and ReturnGrainBins().
float GrainBin::atomWeight |
molecular weight per atom, in amu
Definition at line 207 of file grainvar.h.
Referenced by GrainCollHeating(), GrainsInit(), and mie_read_opc().
float GrainBin::AvArea |
average grain surface area, <4pi*a^2>, in cm^2, CURRENTLY NOT USED
Definition at line 207 of file grainvar.h.
Referenced by mie_read_opc().
float GrainBin::avdft |
Integral(vdrift*dReff) for average drift velocity, OUTPUT ONLY
Definition at line 316 of file grainvar.h.
Referenced by GrainDrive(), GrainStartIter(), PrtFinal(), and radius_increment().
float GrainBin::avDGRatio |
Integral(D/G*dReff) for average dust to gas ratio, OUTPUT ONLY
Definition at line 207 of file grainvar.h.
Referenced by GrainDrive(), GrainStartIter(), PrtFinal(), and radius_increment().
float GrainBin::avdpot |
Integral(Vg*dReff) for average grain potential, OUTPUT ONLY
Definition at line 277 of file grainvar.h.
Referenced by GrainDrive(), GrainStartIter(), PrtFinal(), and radius_increment().
float GrainBin::avdust |
Integral(Tdust*dReff) for average equilibrium temperature, OUTPUT ONLY
Definition at line 256 of file grainvar.h.
Referenced by GrainDrive(), GrainStartIter(), lgCheckAsserts(), PrtFinal(), and radius_increment().
double GrainBin::AveDustZ |
average charge per grain, in electrons
Definition at line 268 of file grainvar.h.
Referenced by GrainCharge(), GrainChargeTemp(), GrainDrive(), PrtZone(), and PunchDo().
float GrainBin::AvRadius |
average grain radius, <a^3>/<a^2>, in cm
Definition at line 207 of file grainvar.h.
Referenced by GetPotValues(), GrainsInit(), mie_read_opc(), and PunchDo().
float GrainBin::AvVol |
average grain volume, <4/3pi*a^3>, in cm^3
Definition at line 207 of file grainvar.h.
Referenced by AbundancesPrt(), GrainsInit(), and mie_read_opc().
float GrainBin::BandGap |
gap between valence and conduction band, in Ryd
Definition at line 207 of file grainvar.h.
Referenced by GetPotValues(), GrainsInit(), and mie_read_opc().
double GrainBin::BolFlux |
accomodation coefficient, needed for collisional heating of grain 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
Definition at line 283 of file grainvar.h.
Referenced by GrainDrive(), GrainMakeDiffuse(), and GrainTemperature().
double GrainBin::Capacity |
grain capacity, in Farad/grain
Definition at line 268 of file grainvar.h.
Referenced by GrainScreen(), and mie_read_opc().
char GrainBin::chDstLab[13] |
were PAHs present in the ionized region ? general information on the grains label for the species
Definition at line 205 of file grainvar.h.
Referenced by GetFracPop(), GetProbDistr_HighLimit(), GetProbDistr_LowLimit(), GrainCharge(), GrainChargeTemp(), GrainsInit(), GrainTemperature(), mie_read_opc(), PrtComment(), PrtFinal(), PrtZone(), PunchDo(), and qheat().
double GrainBin::ChemEn |
net amount of energy donated by recombining ions
Definition at line 283 of file grainvar.h.
Referenced by GrainChargeTemp(), GrainCollHeating(), and GrainDrive().
double GrainBin::ChemEnH2 |
net amount of energy donated by H2 formation on grain surface
Definition at line 283 of file grainvar.h.
Referenced by GrainChargeTemp(), GrainCollHeating(), and GrainDrive().
ChargeBin* GrainBin::chrg[NCHS] |
this holds the charge dependent data
Definition at line 321 of file grainvar.h.
Referenced by GetFracPop(), GrainCharge(), GrainChargeTemp(), GrainChrgTransferRates(), GrainCollHeating(), GrainDrive(), GrainElecEmis1(), GrainElecRecomb1(), GrainIonColl(), GrainScreen(), GrainsInit(), GrainTemperature(), GrainUpdateRadius2(), NewChargeData(), NewGrainBin(), PE_init(), qheat_init(), ReturnGrainBins(), UpdatePot(), UpdatePot1(), UpdatePot2(), and UpdateRecomZ0().
double GrainBin::cnv_CM3_pGR |
grain unit conversion, <unit>/cm^3 (actual depl) -> <unit>/grain
Definition at line 233 of file grainvar.h.
Referenced by GrainsInit(), GrainUpdateRadius1(), and NewGrainBin().
double GrainBin::cnv_CM3_pH |
grain unit conversion, <unit>/cm^3 (actual depl) -> <unit>/H (default depl)
Definition at line 233 of file grainvar.h.
Referenced by GrainCollHeating(), GrainsInit(), GrainTemperature(), GrainUpdateRadius1(), and NewGrainBin().
double GrainBin::cnv_GR_pCM3 |
grain unit conversion, <unit>/grain -> <unit>/cm^3 (actual depl)
Definition at line 233 of file grainvar.h.
Referenced by GetProbDistr_HighLimit(), GetProbDistr_LowLimit(), GrainChargeTemp(), GrainsInit(), GrainUpdateRadius1(), NewGrainBin(), and RebinQHeatResults().
double GrainBin::cnv_GR_pH |
grain unit conversion, <unit>/grain -> <unit>/H (default depl)
Definition at line 233 of file grainvar.h.
Referenced by GetProbDistr_HighLimit(), mie_read_opc(), NewGrainBin(), RebinQHeatResults(), and UpdatePot1().
double GrainBin::cnv_H_pCM3 |
grain unit conversion, <unit>/H (default depl) -> <unit>/cm^3 (actual depl)
Definition at line 233 of file grainvar.h.
Referenced by GrainChargeTemp(), GrainChrgTransferRates(), GrainCollHeating(), GrainMakeDiffuse(), GrainsInit(), GrainTemperature(), GrainUpdateRadius1(), grn_abs(), hmole_step(), NewGrainBin(), qheat(), and qheat_init().
double GrainBin::cnv_H_pGR |
grain unit conversion, <unit>/H (default depl) -> <unit>/grain
Definition at line 233 of file grainvar.h.
Referenced by GetProbDistr_HighLimit(), GetProbDistr_LowLimit(), GrainsInit(), GrainUpdateRadius1(), mie_read_opc(), NewGrainBin(), qheat(), and TryDoubleStep().
double* GrainBin::dstab1 |
>>chng 02 dec 30, separated scattering cross section and asymmetry factor (1-g), NB NB NB -- note that pure_sc1 DOES NOT contain the asymmetry factor, while gv.dstsc DOES !!! [NC_ELL]
Definition at line 246 of file grainvar.h.
Referenced by GrainDrift(), GrainElecEmis1(), GrainMakeDiffuse(), GrainsInit(), GrainTemperature(), GrainUpdateRadius2(), mie_read_opc(), NewGrainBin(), PE_init(), PlanckIntegral(), PunchDo(), qheat_init(), radius_increment(), and ReturnGrainBins().
float GrainBin::dstAbund |
grain abundance in zone, dstfactor*GrainMetal*GrnVryDpth(radius)
Definition at line 231 of file grainvar.h.
Referenced by AbundancesPrt(), GrainMakeDiffuse(), GrainsInit(), GrainUpdateRadius1(), GrainUpdateRadius2(), NewGrainBin(), PunchDo(), and radius_increment().
double GrainBin::dstems[NDEMS] |
equilibrium temperature grain emissivity at dsttmp[], default depl, normalized per H
Definition at line 251 of file grainvar.h.
Referenced by GetProbDistr_HighLimit(), GetProbDistr_LowLimit(), GrainChargeTemp(), GrainTemperature(), InitEmissivities(), qheat(), RebinQHeatResults(), and TryDoubleStep().
float GrainBin::dstfactor |
chemical abundances of grains in elmAbund are defined as follows: e.g. for MgSiFeO4 the oxygen abundance would be given by elmAbund[nd][7] = 4.*dustp[nd][2]*dustp[nd][3]*dustp[nd][4] chemical abundances of grains are normalized such that in any given zone the total fractional abundance of an element Z locked up in grains is given by SumFracAbund(nelem) = Sum_over_nd ( gv.bin[nd]->elmAbund[nelem]*gv.dstAbund[nd] ) grain depletion, normalization conversion factors grain depletion factor, dep from GRAINS command
Definition at line 231 of file grainvar.h.
Referenced by GrainsInit(), GrainUpdateRadius1(), mie_read_opc(), and NewGrainBin().
double GrainBin::dstpot |
grain potential in Ryd
Definition at line 268 of file grainvar.h.
Referenced by GrainCharge(), GrainChargeTemp(), GrainDrift(), GrainDrive(), GrainRestartIter(), GrainStartIter(), PrtZone(), PunchDo(), and radius_increment().
double GrainBin::dstpotsav |
grain potential at start of iteration
Definition at line 268 of file grainvar.h.
Referenced by GrainRestartIter(), and GrainStartIter().
double GrainBin::dstslp[NDEMS] |
auxiliary array for spline interpolation
Definition at line 251 of file grainvar.h.
Referenced by GetProbDistr_HighLimit(), GrainTemperature(), InitEmissivities(), and RebinQHeatResults().
double GrainBin::dstslp2[NDEMS] |
auxiliary array for inverse spline interpolation
Definition at line 251 of file grainvar.h.
Referenced by GetProbDistr_HighLimit(), GetProbDistr_LowLimit(), GrainChargeTemp(), GrainTemperature(), InitEmissivities(), qheat(), and TryDoubleStep().
float GrainBin::DustDftVel |
H2 rate actually used, evaluated in hmole.c, units s^-1, actual depl when multiplied with hden, this is formation rate in H2-molecules/cm^3/s grain drift grain drift velocity for this zone
Definition at line 316 of file grainvar.h.
Referenced by GrainDrift(), GrainDrive(), NewGrainBin(), PrtZone(), PunchDo(), and radius_increment().
double GrainBin::DustEnth[NDEMS] |
Definition at line 305 of file grainvar.h.
Referenced by GetProbDistr_HighLimit(), InitEnthalpy(), inv_ufunct(), qheat(), and ufunct().
float GrainBin::dustp[5] |
0 = specific weight (g/cm^3), 1 = mol. weight (amu), 2 = default abundance, 3 = default depletion, 4 = fraction of the mass in this grain bin
Definition at line 207 of file grainvar.h.
Referenced by GrainsInit(), mie_read_opc(), and radius_increment().
float GrainBin::DustWorkFcn |
work function, in Ryd
Definition at line 207 of file grainvar.h.
Referenced by GetPotValues(), GrainsInit(), mie_read_opc(), and UpdatePot1().
float GrainBin::elmAbund[LIMELM] |
chemical composition, abundance at default depl, see comment below
Definition at line 207 of file grainvar.h.
Referenced by GrainsInit(), GrainUpdateRadius1(), and mie_read_opc().
float GrainBin::EnergyCheck |
grain opacities save highest energy read in for later check
Definition at line 241 of file grainvar.h.
Referenced by conorm(), mie_read_opc(), and NewGrainBin().
double GrainBin::EnthSlp[NDEMS] |
grain enthalpy at dsttmp[], in Ryd/grain auxiliary array for spline interpolation
Definition at line 305 of file grainvar.h.
Referenced by InitEnthalpy(), and ufunct().
double GrainBin::EnthSlp2[NDEMS] |
auxiliary array for inverse spline interpolation
Definition at line 305 of file grainvar.h.
Referenced by InitEnthalpy(), and inv_ufunct().
double GrainBin::GasHeatPhotoEl |
photoelectric heating of the gas, added in GrGH 0
Definition at line 283 of file grainvar.h.
Referenced by GrainChargeTemp(), GrainDrive(), GrainTemperature(), lines_grains(), PrtZone(), and PunchDo().
double GrainBin::GrainCoolTherm |
grain cooling due to thermionic emissions, summed over charge states
Definition at line 283 of file grainvar.h.
Referenced by GrainCollHeating(), GrainDrive(), GrainTemperature(), and qheat().
double GrainBin::GrainGasCool |
gas cooling due to collisions with grains
Definition at line 283 of file grainvar.h.
Referenced by GrainChargeTemp(), and NewGrainBin().
double GrainBin::GrainHeat |
total heating of current grain type
Definition at line 283 of file grainvar.h.
Referenced by GetProbDistr_HighLimit(), GetProbDistr_LowLimit(), GrainChargeTemp(), GrainDrive(), GrainMakeDiffuse(), GrainTemperature(), NewGrainBin(), qheat(), qheat_init(), and RebinQHeatResults().
double GrainBin::GrainHeatColl |
collisional heating of current grain type
Definition at line 283 of file grainvar.h.
Referenced by GrainChargeTemp(), GrainDrive(), GrainTemperature(), and qheat().
double GrainBin::HeatingRate1 |
quantum heating due to molecule/ion collisions, erg/H/s, default depl
Definition at line 302 of file grainvar.h.
Referenced by GrainCollHeating(), and qheat_init().
float GrainBin::IntArea |
integrated grain surface area Int(4pi*a^2), normalized per H, in cm^2/H
Definition at line 207 of file grainvar.h.
Referenced by GrainChrgTransferRates(), GrainCollHeating(), GrainDrift(), GrainElecEmis1(), GrainsInit(), GrainTemperature(), grn_abs(), hmole_step(), mie_read_opc(), and PunchDo().
float GrainBin::IntRadius |
integrated grain radius Int(a), normalized per H, in cm/H
Definition at line 207 of file grainvar.h.
Referenced by mie_read_opc().
float GrainBin::IntVol |
integrated grain volume Int(4/3pi*a^3), normalized per H, in cm^3/H
Definition at line 207 of file grainvar.h.
Referenced by AbundancesPrt(), and mie_read_opc().
float * GrainBin::inv_att_len |
[NC_ELL]
Definition at line 277 of file grainvar.h.
Referenced by GrainsInit(), mie_read_opc(), NewGrainBin(), and ReturnGrainBins().
grain charging, photoelectric effect, thermionic emissions
all charge and energy rates will be calculated by resolving the charge distribution into nChrg integral charge states. To implement this, certain parameters have been moved into the ChargeBin structure, currently limiting the maximum number of charge states the code can handle. For details see: >>refer grain physics van Hoof et al., 2001, ASP Conf. Series 247, p. 353 (astroph/0107183) did grain charge algorithm converge ?
Definition at line 266 of file grainvar.h.
Referenced by GrainCharge(), and GrainMakeDiffuse().
bool GrainBin::lgDustFunc |
grain logic has user requested custom grain abundance function ?
Definition at line 201 of file grainvar.h.
Referenced by GrainsInit(), GrnVryDpth(), mie_read_opc(), and NewGrainBin().
was quantum heating used in any zone ?
Definition at line 294 of file grainvar.h.
Referenced by GrainDrive(), GrainStartIter(), PrtFinal(), and qheat().
Definition at line 202 of file grainvar.h.
Referenced by GrainChargeTemp(), GrainDrive(), GrainStartIter(), and PrtComment().
bool GrainBin::lgQHeat |
quantum heating physics is quantum heating turned on ?
Definition at line 294 of file grainvar.h.
Referenced by GrainMakeDiffuse(), GrainsInit(), hmole_step(), mie_read_opc(), NewGrainBin(), PrtZone(), qheat(), and qheat_init().
is probability distribution too wide to fit in NQGRID array elements ?
Definition at line 294 of file grainvar.h.
Referenced by GrainsInit(), GrainStartIter(), and qheat().
is dust temperature converged ?
Definition at line 255 of file grainvar.h.
Referenced by GrainChargeTemp(), and GrainMakeDiffuse().
bool GrainBin::lgUseQHeat |
should quantum heating be used for this zone ?
Definition at line 294 of file grainvar.h.
Referenced by GrainDrive(), GrainMakeDiffuse(), hmole_step(), PrtZone(), and qheat().
double GrainBin::LowestPot |
lowest potential a grain can ever have, in Ryd
Definition at line 268 of file grainvar.h.
Referenced by GrainsInit().
long GrainBin::LowestZg |
lowest charge a grain can ever have, in e
Definition at line 267 of file grainvar.h.
Referenced by GetFracPop(), GrainCharge(), GrainCollHeating(), GrainElecRecomb1(), GrainIonColl(), GrainsInit(), and UpdatePot().
material type, 1 = carbonaceous, 2 = silicate, 3 = PAH, etc...
Definition at line 221 of file grainvar.h.
Referenced by AbundancesPrt(), GetPotValues(), GrainChargeTemp(), GrainCollHeating(), GrainMakeDiffuse(), GrainsInit(), GrnStdDpth(), mie_read_opc(), mole_H2_form(), uderiv(), and UpdatePot1().
long GrainBin::nChrg |
number of charge states used for the current zone
Definition at line 320 of file grainvar.h.
Referenced by GetFracPop(), GrainCharge(), GrainChargeTemp(), GrainChrgTransferRates(), GrainCollHeating(), GrainDrive(), GrainElecEmis1(), GrainElecRecomb1(), GrainRestartIter(), GrainsInit(), GrainStartIter(), GrainTemperature(), GrainUpdateRadius2(), NewGrainBin(), PE_init(), qheat_init(), and UpdatePot().
long GrainBin::nChrgOrg |
number of charge states at the start of the iteration
Definition at line 319 of file grainvar.h.
Referenced by GrainRestartIter(), and GrainStartIter().
long int GrainBin::NFPCheck |
save number of grid points read for later check
Definition at line 242 of file grainvar.h.
Referenced by conorm(), and mie_read_opc().
double * GrainBin::pure_sc1 |
absorption cross section per grain species, for default depl <[NC_ELL] scattering cross section per grain species, for default depl
Definition at line 246 of file grainvar.h.
Referenced by GrainDrift(), GrainsInit(), GrainUpdateRadius2(), mie_read_opc(), NewGrainBin(), PunchDo(), radius_increment(), and ReturnGrainBins().
counter for number of times qheat algorithm failed
Definition at line 298 of file grainvar.h.
Referenced by GrainDrive(), GrainStartIter(), PrtComment(), and qheat().
long GrainBin::qnflux |
like rfield.nflux, but may point to higher energy, for phiTilde and Phi
Definition at line 298 of file grainvar.h.
Referenced by NewGrainBin(), qheat(), qheat_init(), TryDoubleStep(), and UpdatePot().
long GrainBin::qnflux2 |
like rfield.nflux, only for max electron energy, for phiTilde and Phi
Definition at line 298 of file grainvar.h.
Referenced by qheat_init(), and UpdatePot().
double GrainBin::qtmin |
lowest grain temperature used in calculations, set per zone
Definition at line 302 of file grainvar.h.
Referenced by GetProbDistr_LowLimit(), GrainsInit(), GrainStartIter(), and qheat().
double GrainBin::qtmin_zone1 |
lowest grain temperature used in calculations, initial zone
Definition at line 302 of file grainvar.h.
Referenced by GrainsInit(), GrainStartIter(), and qheat().
H2 formation rate, Hollenbach & McKee 79, units S^-1, actual depl
Definition at line 311 of file grainvar.h.
Referenced by hmole_step().
H2 physics - each has units s-1
Definition at line 310 of file grainvar.h.
Referenced by hmole_step().
H2 formation rate, Cazaux & Tielens 02, units S^-1, actual depl
Definition at line 312 of file grainvar.h.
Referenced by GrainCollHeating(), hmole_step(), mole_H2_form(), NewGrainBin(), and PunchDo().
double GrainBin::RateDn |
total charging rate down, used for balance check, in e/cm^2/s
Definition at line 268 of file grainvar.h.
Referenced by GrainCollHeating(), and GrainMakeDiffuse().
double GrainBin::RateUp |
total charging rate up, used for balance check, in e/cm^2/s
Definition at line 268 of file grainvar.h.
Referenced by GrainCollHeating(), and GrainMakeDiffuse().
double GrainBin::StickElecNeg |
sticking efficiency for electrons on negative or neutral grains
Definition at line 268 of file grainvar.h.
Referenced by GrainCollHeating(), GrainElecRecomb1(), and GrainsInit().
double GrainBin::StickElecPos |
sticking efficiency for electrons on positive grains
Definition at line 268 of file grainvar.h.
Referenced by GrainCollHeating(), GrainElecRecomb1(), and GrainsInit().
float GrainBin::tedust |
equilibrium temperature for this zone
Definition at line 256 of file grainvar.h.
Referenced by GetProbDistr_LowLimit(), GrainChargeTemp(), GrainCollHeating(), GrainDrive(), GrainMakeDiffuse(), GrainTemperature(), hmole_step(), NewGrainBin(), PrtZone(), PunchDo(), qheat(), qheat_init(), radius_increment(), UpdatePot(), UpdatePot2(), and vib_evap().
float GrainBin::TeGrainMax |
highest equilibrium temperature as a function of radius
Definition at line 256 of file grainvar.h.
Referenced by GrainDrive(), GrainStartIter(), GrainTemperature(), NewGrainBin(), and PrtComment().
float GrainBin::ThermEff |
efficiency of thermionic emission, between 0 and 1
Definition at line 207 of file grainvar.h.
Referenced by mie_read_opc(), and UpdatePot2().
double GrainBin::thermionic |
heating due to thermionic emission
Definition at line 283 of file grainvar.h.
Referenced by GrainChargeTemp(), GrainDrive(), and GrainTemperature().
float GrainBin::Tsublimat |
sublimation temperature
Definition at line 207 of file grainvar.h.
Referenced by GrainMakeDiffuse(), mie_read_opc(), and PrtComment().
float * GrainBin::y1 |
<[NC_ELL] size-dependent geometrical yield enhancement
Definition at line 277 of file grainvar.h.
Referenced by GrainsInit(), NewGrainBin(), ReturnGrainBins(), and UpdatePot1().