#include "cddefines.h"
#include "physconst.h"
#include "rfield.h"
#include "hmi.h"
#include "trace.h"
#include "conv.h"
#include "ionbal.h"
#include "thermal.h"
#include "phycon.h"
#include "doppvel.h"
#include "taulines.h"
#include "mole.h"
#include "heavy.h"
#include "thirdparty.h"
#include "dense.h"
#include "ipoint.h"
#include "elementnames.h"
#include "grainvar.h"
#include "grains.h"
Go to the source code of this file.
Defines | |
#define | FREE_CHECK(PTR) { ASSERT( PTR != NULL ); free( PTR ); PTR = NULL; } |
#define | FREE_SAFE(PTR) { if( PTR != NULL ) free( PTR ); PTR = NULL; } |
#define | POT2CHRG(X) ((X)*EVRYD/ELEM_CHARGE*gv.bin[nd]->Capacity - 1.) |
#define | CHRG2POT(X) (((X)+1.)*ELEM_CHARGE/EVRYD/gv.bin[nd]->Capacity) |
#define | ONE_ELEC (ELEM_CHARGE/EVRYD/gv.bin[nd]->Capacity) |
#define | EPSP(Z_0, Z) ( ((Z) <= (Z_0)) ? 0. : (((Z) >= (Z_0)+1) ? 1. : (double)((Z)-(Z_0))) ) |
Functions | |
STATIC void | InitEmissivities (void) |
STATIC double | PlanckIntegral (double, long, long) |
STATIC void | NewChargeData (long) |
STATIC double | GrnStdDpth (long) |
STATIC void | GrainChargeTemp (void) |
STATIC void | GrainCharge (long, double *) |
STATIC double | GrainElecRecomb1 (long, long, double *, double *) |
STATIC double | GrainElecEmis1 (long, long, double *, double *, double *, double *, double *) |
STATIC void | GrainScreen (long, long, long, double *, double *) |
STATIC double | ThetaNu (double) |
STATIC void | UpdatePot (long, long, long, double[], double[]) |
STATIC void | GetFracPop (long, long, double[], double[], long *) |
STATIC void | UpdatePot1 (long, long, long, long) |
STATIC void | UpdatePot2 (long, long) |
STATIC long | HighestIonStage (void) |
STATIC void | UpdateRecomZ0 (long, long, bool) |
STATIC void | GetPotValues (long, long, double *, double *, double *, double *, double *, bool) |
STATIC void | GrainIonColl (long, long, long, long, const double[], const double[], long *, float *, float *) |
STATIC void | GrainChrgTransferRates (long) |
STATIC void | GrainUpdateRadius1 (void) |
STATIC void | GrainUpdateRadius2 (bool) |
STATIC void | GrainTemperature (long, float *, double *, double *, double *) |
STATIC void | GrainCollHeating (long, float *, float *) |
STATIC double | GrnVryDpth (long) |
void | GrainZero (void) |
void | GrainStartIter (void) |
void | GrainRestartIter (void) |
void | SetNChrgStates (long nChrg) |
long | NewGrainBin (void) |
void | ReturnGrainBins (void) |
void | GrainsInit (void) |
STATIC double | PlanckIntegral (double tdust, long int nd, long int ip) |
STATIC double | GrnStdDpth (long int nd) |
void | GrainDrive (void) |
STATIC void | GrainCharge (long int nd, double *ThermRatio) |
STATIC void | GrainIonColl (long int nd, long int nz, long int nelem, long int ion, const double phi_s_up[], const double phi_s_dn[], long *Z0, float *ChEn, float *ChemEn) |
STATIC void | GrainTemperature (long int nd, float *dccool, double *hcon, double *hots, double *hla) |
void | PE_init (long nd, long nz, long i, double *cs1, double *cs2, double *cs_tot, double *cool1, double *cool2, double *ehat1, double *ehat2) |
STATIC void | GrainCollHeating (long int nd, float *dcheat, float *dccool) |
void | GrainDrift (void) |
STATIC double | GrnVryDpth (long int nd) |
Variables | |
static const int | INCL_TUNNEL = true |
static const int | NO_TUNNEL = false |
static const int | ALL_STAGES = true |
static long int | nCalledGrainDrive |
static const long | NTOP = NDEMS/5 |
static const double | THERMCONST = PI4*ELECTRON_MASS*POW2(BOLTZMANN)/POW3(HPLANCK) |
static const double | STICK_ELEC = 0.5 |
static const double | STICK_ION = 1.0 |
static const double | MEAN_PATH = 1.e-7 |
static const double | TOLER = CONSERV_TOL/10. |
static const long | BRACKET_MAX = 50L |
static const int | NCHU = NCHS/3 |
static const long | CT_LOOP_MAX = 25L |
static const long | T_LOOP_MAX = 50L |
static double | HEAT_TOLER = DBL_MAX |
static double | HEAT_TOLER_BIN = DBL_MAX |
static double | CHRG_TOLER = DBL_MAX |
static bool | lgGvInitialized = false |
static const double | AC0 = 3.e-9 |
static const double | AC1G = 4.e-8 |
static const double | AC2G = 7.e-8 |
#define CHRG2POT | ( | X | ) | (((X)+1.)*ELEM_CHARGE/EVRYD/gv.bin[nd]->Capacity) |
Definition at line 34 of file grains.cpp.
Referenced by GetPotValues(), GrainCharge(), GrainDrive(), and GrainsInit().
#define EPSP | ( | Z_0, | |||
Z | ) | ( ((Z) <= (Z_0)) ? 0. : (((Z) >= (Z_0)+1) ? 1. : (double)((Z)-(Z_0))) ) |
#define FREE_CHECK | ( | PTR | ) | { ASSERT( PTR != NULL ); free( PTR ); PTR = NULL; } |
Definition at line 30 of file grains.cpp.
Referenced by CompileAtmosphereCoStar(), FreeGrid(), InitGridCoStar(), InitIndexArrays(), InterpolateGridCoStar(), InterpolateModel(), InterpolateModelCoStar(), InterpolateRectGrid(), lgCompileAtmosphere(), RauchInitializeSub(), RebinAtmosphere(), ReturnGrainBins(), StarburstInitialize(), and ValidateGrid().
#define FREE_SAFE | ( | PTR | ) | { if( PTR != NULL ) free( PTR ); PTR = NULL; } |
Definition at line 31 of file grains.cpp.
Referenced by CompileAtmosphereCoStar(), FreeGrid(), lgCompileAtmosphere(), RebinAtmosphere(), ReturnGrainBins(), StarburstInitialize(), and UpdatePot1().
#define ONE_ELEC (ELEM_CHARGE/EVRYD/gv.bin[nd]->Capacity) |
#define POT2CHRG | ( | X | ) | ((X)*EVRYD/ELEM_CHARGE*gv.bin[nd]->Capacity - 1.) |
STATIC void GetFracPop | ( | long | nd, | |
long | Zlo, | |||
double | rate_up[], | |||
double | rate_dn[], | |||
long * | newZlo | |||
) |
Definition at line 2642 of file grains.cpp.
References ASSERT, t_gv::bin, cdEXIT(), GrainBin::chDstLab, GrainBin::chrg, DEBUG_ENTRY, DEBUG_EXIT, fnzone, ChargeBin::FracPop, gv, ioQQQ, GrainBin::LowestZg, MAX2, t_gv::nBin, GrainBin::nChrg, NCHU, ShowMe(), x1, and x2.
Referenced by GrainCharge().
STATIC void GetPotValues | ( | long | nd, | |
long | Zg, | |||
double * | ThresInf, | |||
double * | ThresInfVal, | |||
double * | ThresSurf, | |||
double * | ThresSurfVal, | |||
double * | PotSurf, | |||
bool | lgUseTunnelCorr | |||
) |
Definition at line 3168 of file grains.cpp.
References AC0, AC1G, AC2G, GrainBin::AvRadius, GrainBin::BandGap, t_gv::bin, cdEXIT(), CHRG2POT, DEBUG_ENTRY, DEBUG_EXIT, GrainBin::DustWorkFcn, gv, ioQQQ, GrainBin::matType, MAX2, ONE_ELEC, POT_CAR, POT_SIL, ThetaNu(), and t_gv::which_pot.
Referenced by GrainIonColl(), GrainsInit(), UpdatePot1(), and UpdateRecomZ0().
STATIC void GrainCharge | ( | long int | nd, | |
double * | ThermRatio | |||
) |
Definition at line 1908 of file grains.cpp.
References ASSERT, GrainBin::AveDustZ, t_gv::bin, BRACKET_MAX, cdEXIT(), GrainBin::chDstLab, GrainBin::chrg, CHRG2POT, conv, DEBUG_ENTRY, DEBUG_EXIT, GrainBin::dstpot, ChargeBin::DustZ, EVRYD, fnzone, ChargeBin::FracPop, GetFracPop(), GrainElecEmis1(), GrainElecRecomb1(), gv, ioQQQ, GrainBin::lgChrgConverged, t_trace::lgDustBug, t_conv::lgSearch, t_trace::lgTrace, GrainBin::LowestZg, MAX2, t_gv::nBin, GrainBin::nChrg, NCHS, NCHU, nint(), powi(), ShowMe(), ChargeBin::ThresInf, ChargeBin::ThresInfVal, TorF(), trace, and UpdatePot().
STATIC void GrainCharge | ( | long | , | |
double * | ||||
) |
Referenced by GrainChargeTemp().
STATIC void GrainChargeTemp | ( | void | ) |
Definition at line 1406 of file grains.cpp.
References ASSERT, GrainBin::AveDustZ, t_conv::BadConvIoniz, t_gv::bin, t_conv::chConvIoniz, GrainBin::chDstLab, t_elementnames::chElementSym, GrainBin::ChemEn, GrainBin::ChemEnH2, GrainBin::chrg, CHRG_TOLER, GrainBin::cnv_GR_pCM3, GrainBin::cnv_H_pCM3, conv, ConvFail(), t_thermal::ctot, DEBUG_ENTRY, DEBUG_EXIT, dense, t_gv::dHeatdT, GrainBin::dstems, GrainBin::dstpot, GrainBin::dstslp2, t_gv::dsttmp, ChargeBin::DustZ, t_dense::eden, elementnames, fnzone, ChargeBin::FracPop, fudge(), t_dense::gas_phase, t_gv::GasCoolColl, t_gv::GasHeatNet, GrainBin::GasHeatPhotoEl, t_gv::GasHeatPhotoEl, t_gv::GasHeatTherm, GRAIN_TMAX, GRAIN_TMIN, GrainCharge(), GrainChrgTransferRates(), t_gv::GrainChTrRate, GrainBin::GrainGasCool, GrainBin::GrainHeat, t_gv::GrainHeatChem, GrainBin::GrainHeatColl, t_gv::GrainHeatCollSum, t_gv::GrainHeatDif, t_gv::GrainHeatInc, t_gv::GrainHeatLya, t_gv::GrainHeatSum, GrainTemperature(), GrainUpdateRadius1(), GrainUpdateRadius2(), t_gv::GrnRecomTe, gv, HEAT_TOLER, HEAT_TOLER_BIN, t_gv::HighestIon, HighestIonStage(), ionbal, t_dense::IonHigh, t_dense::IonLow, ioQQQ, ipHYDROGEN, lgAbort, t_conv::lgConvIoniz, t_trace::lgDustBug, t_dense::lgElmtOn, t_ionbal::lgGrainIonRecom, GrainBin::lgPAHsInIonizedRegion, t_conv::lgSearch, GrainBin::lgTdustConverged, t_trace::lgTrace, LIMELM, MAT_PAH, MAT_PAH2, GrainBin::matType, t_gv::nBin, GrainBin::nChrg, NDEMS, NewChargeData(), nzone, t_gv::nzone, phycon, POW2, splint_safe(), T_LOOP_MAX, t_phycon::te, TE1RYD, GrainBin::tedust, thermal, GrainBin::thermionic, ChargeBin::ThresInf, TOLER, TorF(), t_gv::TotalEden, TotalInsanity(), trace, and t_dense::xIonDense.
Referenced by GrainDrive().
STATIC void GrainChrgTransferRates | ( | long | nd | ) |
Definition at line 3345 of file grains.cpp.
References t_DoppVel::AveVel, t_gv::bin, GrainBin::chrg, GrainBin::cnv_H_pCM3, DEBUG_ENTRY, DEBUG_EXIT, dense, DoppVel, ChargeBin::FracPop, t_gv::GrainChTrRate, GrainScreen(), gv, GrainBin::IntArea, t_dense::lgElmtOn, LIMELM, MAX2, GrainBin::nChrg, ChargeBin::RecomZ0, and STICK_ION.
Referenced by GrainChargeTemp().
STATIC void GrainCollHeating | ( | long int | nd, | |
float * | dcheat, | |||
float * | dccool | |||
) |
Definition at line 3872 of file grains.cpp.
References GrainBin::AccomCoef, ATOMIC_MASS_UNIT, t_dense::AtomicWeight, GrainBin::atomWeight, t_DoppVel::AveVel, t_gv::bin, BOLTZMANN, ChargeBin::ChemEn, GrainBin::ChemEn, GrainBin::ChemEnH2, GrainBin::chrg, GrainBin::cnv_CM3_pH, GrainBin::cnv_H_pCM3, DEBUG_ENTRY, DEBUG_EXIT, dense, DoppVel, ChargeBin::DustZ, t_dense::eden, ELECTRON_MASS, EN1EV, EN1RYD, findspecies(), ChargeBin::FracPop, GrainBin::GrainCoolTherm, GrainElecEmis1(), GrainElecRecomb1(), GrainScreen(), gv, H2_TOP, t_hmi::H2_total, GrainBin::HeatingRate1, ChargeBin::HeatingRate2, molecule::hevmol, hmi, GrainBin::IntArea, ioQQQ, ipCARBON, ipHYDROGEN, ipOXYGEN, t_gv::lgDColOn, t_trace::lgDustBug, t_dense::lgElmtOn, t_trace::lgTrace, LIMELM, GrainBin::LowestZg, GrainBin::matType, MAX2, GrainBin::nChrg, phycon, PI, ChargeBin::PotSurf, ChargeBin::PotSurfInc, POW2, GrainBin::rate_h2_form_grains_used, GrainBin::RateDn, GrainBin::RateUp, ChargeBin::RecomEn, ChargeBin::RecomZ0, STICK_ION, GrainBin::StickElecNeg, GrainBin::StickElecPos, t_phycon::te, GrainBin::tedust, ChargeBin::ThresSurf, ChargeBin::ThresSurfInc, trace, t_gv::which_H2distr, and t_dense::xIonDense.
STATIC void GrainCollHeating | ( | long | , | |
float * | , | |||
float * | ||||
) |
Referenced by GrainTemperature().
void GrainDrift | ( | void | ) |
GrainDrift computes grains drift velocity
Definition at line 4258 of file grains.cpp.
References t_rfield::anu, ASSERT, GrainBin::asym, t_gv::bin, BOLTZMANN, t_rfield::ConInterOut, DEBUG_ENTRY, DEBUG_EXIT, dense, GrainBin::dstab1, GrainBin::dstpot, GrainBin::DustDftVel, t_dense::eden, EN1RYD, t_rfield::flux, gv, GrainBin::IntArea, ioQQQ, ipHELIUM, ipHYDROGEN, t_trace::lgDustBug, t_gv::lgNegGrnDrg, t_trace::lgTrace, MALLOC, t_gv::nBin, t_rfield::nflux, t_rfield::outlin, t_rfield::outlin_noplot, phycon, POW2, POW3, GrainBin::pure_sc1, rfield, SPEEDLIGHT, t_phycon::sqrte, t_dense::SqrtEden, t_phycon::te, TE1RYD, trace, and t_dense::xIonDense.
Referenced by ConvPresTempEdenIoniz().
void GrainDrive | ( | void | ) |
GrainDrive main routine to converge grains thermal solution
Definition at line 1243 of file grains.cpp.
References GrainBin::avdft, GrainBin::avDGRatio, GrainBin::avdpot, GrainBin::avdust, GrainBin::AveDustZ, t_gv::bin, GrainBin::BolFlux, GrainBin::ChemEn, GrainBin::ChemEnH2, GrainBin::chrg, CHRG2POT, conv, t_thermal::ctot, t_gv::dclmax, DEBUG_ENTRY, DEBUG_EXIT, dense, t_gv::dphmax, GrainBin::dstpot, GrainBin::DustDftVel, ChargeBin::DustZ, t_dense::eden, t_conv::EdenErrorAllowed, EVRYD, ChargeBin::FracPop, t_dense::gas_phase, t_gv::GasCoolColl, GrainBin::GasHeatPhotoEl, t_gv::GasHeatPhotoEl, GrainChargeTemp(), t_gv::GrainChTrRate, GrainBin::GrainCoolTherm, GrainBin::GrainHeat, t_gv::GrainHeatChem, GrainBin::GrainHeatColl, t_gv::GrainHeatCollSum, t_gv::GrainHeatDif, t_gv::GrainHeatInc, t_gv::GrainHeatLya, t_gv::GrainHeatScaleFactor, t_gv::GrainHeatSum, GrainUpdateRadius1(), GrainUpdateRadius2(), t_gv::GrnElecDonateMax, t_gv::GrnElecHoldMax, gv, t_thermal::heating, hmi, ioQQQ, ipHYDROGEN, t_gv::lgAnyDustVary, t_gv::lgAnyNegCharge, t_gv::lgBakesPAH_heat, t_gv::lgDustOn, GrainBin::lgEverQHeat, t_gv::lgGrainPhysicsOn, GrainBin::lgPAHsInIonizedRegion, t_gv::lgReevaluate, t_conv::lgSearch, GrainBin::lgUseQHeat, LIMELM, t_gv::nBin, nCalledGrainDrive, GrainBin::nChrg, ChargeBin::nfill, t_trace::nTrConvg, nzone, phycon, GrainBin::QHeatFailures, SDIV(), t_phycon::te, GrainBin::tedust, ChargeBin::tedust, GrainBin::TeGrainMax, thermal, GrainBin::thermionic, t_gv::TotalDustHeat, t_gv::TotalEden, trace, and t_hmi::UV_Cont_rel2_Habing_TH85_depth.
Referenced by ConvBase(), and hmole_step().
STATIC double GrainElecEmis1 | ( | long | nd, | |
long | nz, | |||
double * | sum1a, | |||
double * | sum1b, | |||
double * | sum1c, | |||
double * | sum2, | |||
double * | sum3 | |||
) |
Definition at line 2282 of file grains.cpp.
References ASSERT, t_DoppVel::AveVel, t_gv::bin, GrainBin::chrg, ChargeBin::cs_pdt, DEBUG_ENTRY, DEBUG_EXIT, dense, DoppVel, GrainBin::dstab1, ChargeBin::DustZ, ChargeBin::ESum1a, ChargeBin::ESum1b, ChargeBin::ESum1c, ChargeBin::ESum2, t_rfield::flux, GrainScreen(), gv, GrainBin::IntArea, ChargeBin::ipThresInf, ChargeBin::ipThresInfVal, t_dense::lgElmtOn, LIMELM, MAX2, t_gv::nBin, GrainBin::nChrg, t_rfield::nflux, ChargeBin::RecomZ0, rfield, STICK_ION, t_rfield::SummedCon, ChargeBin::ThermRate, t_dense::xIonDense, and ChargeBin::yhat.
Referenced by GrainCharge(), GrainCollHeating(), and UpdatePot().
STATIC double GrainElecRecomb1 | ( | long | nd, | |
long | nz, | |||
double * | sum1, | |||
double * | sum2 | |||
) |
Definition at line 2195 of file grains.cpp.
References ASSERT, t_DoppVel::AveVel, t_gv::bin, BOLTZMANN, GrainBin::chrg, DEBUG_ENTRY, DEBUG_EXIT, dense, DoppVel, ChargeBin::DustZ, t_dense::eden, ELECTRON_MASS, EPSP, GrainScreen(), gv, t_dense::lgElmtOn, LIMELM, GrainBin::LowestZg, MAX2, t_gv::nBin, GrainBin::nChrg, phycon, PI, ChargeBin::RecomZ0, ChargeBin::RSum1, ChargeBin::RSum2, STICK_ION, GrainBin::StickElecNeg, GrainBin::StickElecPos, t_phycon::te, and t_dense::xIonDense.
Referenced by GrainCharge(), GrainCollHeating(), and UpdatePot().
STATIC void GrainIonColl | ( | long int | nd, | |
long int | nz, | |||
long int | nelem, | |||
long int | ion, | |||
const double | phi_s_up[], | |||
const double | phi_s_dn[], | |||
long * | Z0, | |||
float * | ChEn, | |||
float * | ChemEn | |||
) |
Definition at line 3263 of file grains.cpp.
References t_rfield::anu, t_gv::bin, GrainBin::chrg, DEBUG_ENTRY, DEBUG_EXIT, ChargeBin::DustZ, GetPotValues(), gv, Heavy, t_Heavy::ipHeavy, GrainBin::LowestZg, NO_TUNNEL, and rfield.
STATIC void GrainIonColl | ( | long | , | |
long | , | |||
long | , | |||
long | , | |||
const | double[], | |||
const | double[], | |||
long * | , | |||
float * | , | |||
float * | ||||
) |
Referenced by UpdateRecomZ0().
void GrainRestartIter | ( | void | ) |
this routine is called by IterRestart()
Definition at line 336 of file grains.cpp.
References t_gv::bin, DEBUG_ENTRY, DEBUG_EXIT, GrainBin::dstpot, GrainBin::dstpotsav, gv, t_gv::lgDustOn, t_gv::lgGrainPhysicsOn, t_gv::nBin, GrainBin::nChrg, and GrainBin::nChrgOrg.
Referenced by IterRestart().
STATIC void GrainScreen | ( | long | ion, | |
long | nd, | |||
long | nz, | |||
double * | eta, | |||
double * | xi | |||
) |
Definition at line 2420 of file grains.cpp.
References ASSERT, t_gv::bin, BOLTZMANN, GrainBin::Capacity, GrainBin::chrg, DEBUG_ENTRY, DEBUG_EXIT, ChargeBin::DustZ, ELEM_CHARGE, ChargeBin::eta, gv, LIMELM, MIN2, nu, phycon, PI, POW2, t_phycon::te, ThetaNu(), and ChargeBin::xi.
Referenced by GrainChrgTransferRates(), GrainCollHeating(), GrainElecEmis1(), and GrainElecRecomb1().
void GrainsInit | ( | void | ) |
startup routine for grains, called before first calculations, but after parsecommands
Definition at line 508 of file grains.cpp.
References t_rfield::anu, t_gv::anumax, t_gv::anumin, ASSERT, GrainBin::asym, ATOMIC_MASS_UNIT, atoms, GrainBin::atomWeight, GrainBin::AvRadius, GrainBin::AvVol, GrainBin::BandGap, t_gv::bin, cdEXIT(), GrainBin::chDstLab, GrainBin::chrg, CHRG2POT, CHRG_TOLER, GrainBin::cnv_CM3_pGR, GrainBin::cnv_CM3_pH, GrainBin::cnv_GR_pCM3, GrainBin::cnv_H_pCM3, GrainBin::cnv_H_pGR, t_thermal::ConstGrainTemp, conv, ChargeBin::cs_pdt, DEBUG_ENTRY, DEBUG_EXIT, dense, t_gv::dstab, GrainBin::dstab1, GrainBin::dstAbund, GrainBin::dstfactor, t_gv::dstsc, GrainBin::dustp, GrainBin::DustWorkFcn, ChargeBin::DustZ, t_conv::EdenErrorAllowed, GrainBin::elmAbund, t_gv::elmSumAbund, ChargeBin::fac1, ChargeBin::fac2, ChargeBin::FracPop, t_dense::gas_phase, t_gv::GasCoolColl, GetPotValues(), t_gv::GrainEmission, t_gv::GrainHeatCollSum, t_gv::GrainHeatDif, t_gv::GrainHeatInc, t_gv::GrainHeatLya, t_gv::GrainHeatSum, t_gv::GrainMetal, t_gv::GraphiteEmission, t_gv::GrnRecomTe, GrnVryDpth(), gv, HEAT_TOLER, HEAT_TOLER_BIN, t_conv::HeatCoolRelErrorAllowed, t_thermal::heating, INCL_TUNNEL, InitEmissivities(), InitEnthalpy(), GrainBin::IntArea, GrainBin::inv_att_len, ioQQQ, ipHYDROGEN, t_gv::lgAnyDustVary, t_gv::lgAnyNegCharge, t_gv::lgBakes, t_trace::lgDustBug, GrainBin::lgDustFunc, t_gv::lgDustOn, GrainBin::lgQHeat, t_gv::lgQHeatAll, t_gv::lgQHeatOn, GrainBin::lgQHTooWide, t_trace::lgTrace, LIMELM, GrainBin::LowestPot, GrainBin::LowestZg, MALLOC, MAT_PAH, MAT_PAH2, GrainBin::matType, MAX2, MEAN_PATH, t_gv::nBin, GrainBin::nChrg, NCHS, NCHU, NDUST, t_gv::nfill, ChargeBin::nfill, nint(), t_rfield::nupper, t_gv::nzone, ONE_ELEC, POT2CHRG, POW2, POW3, GrainBin::pure_sc1, GrainBin::qtmin, GrainBin::qtmin_zone1, rfield, t_gv::SilicateEmission, STICK_ELEC, GrainBin::StickElecNeg, GrainBin::StickElecPos, ChargeBin::tedust, thermal, TorF(), trace, t_gv::which_zmin, t_rfield::widflx, GrainBin::y1, ChargeBin::yhat, ZMIN_BAKES, ZMIN_CAR, and ZMIN_SIL.
Referenced by OpacityCreateAll().
void GrainStartIter | ( | void | ) |
this routine is called by IterStart()
Definition at line 293 of file grains.cpp.
References GrainBin::avdft, GrainBin::avDGRatio, GrainBin::avdpot, GrainBin::avdust, t_gv::bin, DEBUG_ENTRY, DEBUG_EXIT, GrainBin::dstpot, GrainBin::dstpotsav, t_gv::GraphiteEmission, gv, t_gv::lgDustOn, GrainBin::lgEverQHeat, t_gv::lgGrainPhysicsOn, GrainBin::lgPAHsInIonizedRegion, GrainBin::lgQHTooWide, t_gv::nBin, GrainBin::nChrg, GrainBin::nChrgOrg, t_rfield::nupper, GrainBin::QHeatFailures, GrainBin::qtmin, GrainBin::qtmin_zone1, rfield, t_gv::SilicateEmission, and GrainBin::TeGrainMax.
Referenced by IterStart().
STATIC void GrainTemperature | ( | long int | nd, | |
float * | dccool, | |||
double * | hcon, | |||
double * | hots, | |||
double * | hla | |||
) |
Definition at line 3505 of file grains.cpp.
References t_rfield::anu, ASSERT, t_gv::bin, GrainBin::BolFlux, ChargeBin::bolflux1, BOLTZMANN, GrainBin::chDstLab, GrainBin::chrg, GrainBin::cnv_CM3_pH, GrainBin::cnv_H_pCM3, t_thermal::ConstGrainTemp, ChargeBin::cs_pdt, DEBUG_ENTRY, DEBUG_EXIT, dense, GrainBin::dstab1, GrainBin::dstems, GrainBin::dstslp, GrainBin::dstslp2, t_gv::dsttmp, ChargeBin::DustZ, t_dense::eden, EmisLines, EN1RYD, ChargeBin::fac1, ChargeBin::fac2, t_rfield::flux, ChargeBin::FracPop, t_dense::gas_phase, GrainBin::GasHeatPhotoEl, GrainCollHeating(), GrainBin::GrainCoolTherm, GrainBin::GrainHeat, GrainBin::GrainHeatColl, t_gv::GrainHeatScaleFactor, gv, ChargeBin::hcon1, hmi, ChargeBin::hots1, GrainBin::IntArea, ioQQQ, EmLine::ipCont, ipH1s, ipH2p, ipH_LIKE, ipHYDROGEN, ChargeBin::ipThresInf, t_gv::lgBakesPAH_heat, t_gv::lgDHetOn, t_trace::lgDustBug, t_trace::lgTrace, MAX2, MIN2, t_gv::nBin, GrainBin::nChrg, NDEMS, t_rfield::nflux, t_rfield::otslin, ChargeBin::pe1, phycon, ChargeBin::PotSurf, rfield, splint_safe(), t_phycon::sqrte, t_rfield::SummedCon, t_rfield::SummedDif, t_phycon::te, GrainBin::tedust, GrainBin::TeGrainMax, thermal, GrainBin::thermionic, ChargeBin::ThermRate, ChargeBin::ThresSurf, trace, and t_hmi::UV_Cont_rel2_Habing_TH85_depth.
STATIC void GrainTemperature | ( | long | , | |
float * | , | |||
double * | , | |||
double * | , | |||
double * | ||||
) |
Referenced by GrainChargeTemp().
STATIC void GrainUpdateRadius1 | ( | void | ) |
Definition at line 3396 of file grains.cpp.
References ASSERT, t_gv::bin, GrainBin::cnv_CM3_pGR, GrainBin::cnv_CM3_pH, GrainBin::cnv_GR_pCM3, GrainBin::cnv_H_pCM3, GrainBin::cnv_H_pGR, DEBUG_ENTRY, DEBUG_EXIT, dense, GrainBin::dstAbund, GrainBin::dstfactor, GrainBin::elmAbund, t_gv::elmSumAbund, t_dense::gas_phase, t_gv::GrainMetal, GrnVryDpth(), gv, ipHYDROGEN, LIMELM, and t_gv::nBin.
Referenced by GrainChargeTemp(), and GrainDrive().
STATIC void GrainUpdateRadius2 | ( | bool | lgAnyNegCharge | ) |
Definition at line 3437 of file grains.cpp.
References ASSERT, GrainBin::asym, t_gv::bin, GrainBin::chrg, ChargeBin::cs_pdt, DEBUG_ENTRY, DEBUG_EXIT, t_gv::dstab, GrainBin::dstab1, GrainBin::dstAbund, t_gv::dstsc, ChargeBin::DustZ, ChargeBin::FracPop, gv, ChargeBin::ipThresInf, t_gv::lgAnyDustVary, t_gv::lgAnyNegCharge, t_gv::nBin, GrainBin::nChrg, t_gv::nfill, t_rfield::nflux, t_rfield::nupper, t_gv::nzone, nzone, GrainBin::pure_sc1, and rfield.
Referenced by GrainChargeTemp(), and GrainDrive().
void GrainZero | ( | void | ) |
Definition at line 173 of file grains.cpp.
References t_gv::chPAH_abundance_fcn, DEBUG_ENTRY, DEBUG_EXIT, t_gv::dHeatdT, t_gv::dstAbundThresholdFar, t_gv::dstAbundThresholdNear, ENTH_CAR, ENTH_CAR2, ENTH_PAH, ENTH_PAH2, ENTH_SIL, ENTH_SIL2, t_gv::GrainChTrRate, t_gv::GrainHeatScaleFactor, t_gv::GrainMetal, gv, H2_CAR, H2_SIL, IAL_CAR, IAL_SIL, t_gv::lgAnyDustVary, t_gv::lgBakes, t_gv::lgBakesPAH_heat, t_gv::lgDColOn, t_gv::lgDHetOn, t_gv::lgGrainElectrons, t_gv::lgGrainPhysicsOn, t_gv::lgNegGrnDrg, t_gv::lgQHeatAll, t_gv::lgQHeatOn, t_gv::lgReevaluate, LIMELM, MAT_CAR, MAT_CAR2, MAT_PAH, MAT_PAH2, MAT_SIL, MAT_SIL2, nCalledGrainDrive, NCHRG_DEFAULT, t_gv::nChrgRequested, PE_CAR, PE_SIL, POT_CAR, POT_SIL, t_gv::ReadPtr, ReturnGrainBins(), STRG_CAR, STRG_SIL, t_gv::TotalEden, t_gv::which_enth, t_gv::which_H2distr, t_gv::which_ial, t_gv::which_pe, t_gv::which_pot, t_gv::which_strg, t_gv::which_zmin, ZMIN_CAR, and ZMIN_SIL.
Referenced by zero().
STATIC double GrnStdDpth | ( | long int | nd | ) |
Definition at line 1198 of file grains.cpp.
References ASSERT, t_gv::bin, t_gv::chPAH_abundance_fcn, DEBUG_ENTRY, DEBUG_EXIT, dense, t_dense::gas_phase, gv, ipHYDROGEN, MAT_PAH, MAT_PAH2, GrainBin::matType, TotalInsanity(), and t_dense::xIonDense.
STATIC double GrnStdDpth | ( | long | ) |
Referenced by GrnVryDpth().
STATIC double GrnVryDpth | ( | long int | nd | ) |
Definition at line 4381 of file grains.cpp.
References ASSERT, t_gv::bin, DEBUG_ENTRY, DEBUG_EXIT, dense, t_dense::gas_phase, GrnStdDpth(), gv, ipHYDROGEN, GrainBin::lgDustFunc, and t_dense::xIonDense.
STATIC double GrnVryDpth | ( | long | ) |
Referenced by GrainsInit(), and GrainUpdateRadius1().
STATIC long HighestIonStage | ( | void | ) |
Definition at line 3081 of file grains.cpp.
References DEBUG_ENTRY, DEBUG_EXIT, dense, t_dense::lgElmtOn, LIMELM, MAX2, and t_dense::xIonDense.
Referenced by GrainChargeTemp().
STATIC void InitEmissivities | ( | void | ) |
Definition at line 985 of file grains.cpp.
References ASSERT, t_gv::bin, cdEXIT(), DEBUG_ENTRY, DEBUG_EXIT, GrainBin::dstems, GrainBin::dstslp, GrainBin::dstslp2, t_gv::dsttmp, fudge(), GRAIN_TMAX, GRAIN_TMID, GRAIN_TMIN, gv, ioQQQ, t_trace::lgDustBug, t_trace::lgTrace, t_gv::nBin, NDEMS, nint(), NTOP, PlanckIntegral(), powi(), spline(), splint(), trace, and z.
Referenced by GrainsInit().
STATIC void NewChargeData | ( | long | nd | ) |
Definition at line 1149 of file grains.cpp.
References t_gv::bin, ChargeBin::bolflux1, GrainBin::chrg, DEBUG_ENTRY, DEBUG_EXIT, ChargeBin::ESum1a, ChargeBin::ESum1b, ChargeBin::ESum1c, ChargeBin::ESum2, ChargeBin::eta, ChargeBin::GrainHeat, t_gv::GrnRecomTe, gv, ChargeBin::hcon1, ChargeBin::HeatingRate2, ChargeBin::hots1, LIMELM, NCHS, t_gv::nzone, nzone, ChargeBin::pe1, phycon, ChargeBin::RSum1, ChargeBin::RSum2, t_phycon::te, ChargeBin::ThermRate, and ChargeBin::xi.
Referenced by GrainChargeTemp().
long NewGrainBin | ( | void | ) |
allocate new grain bin
Definition at line 371 of file grains.cpp.
References ASSERT, GrainBin::asym, t_gv::bin, cdEXIT(), GrainBin::chrg, GrainBin::cnv_CM3_pGR, GrainBin::cnv_CM3_pH, GrainBin::cnv_GR_pCM3, GrainBin::cnv_GR_pH, GrainBin::cnv_H_pCM3, GrainBin::cnv_H_pGR, DEBUG_ENTRY, DEBUG_EXIT, GrainBin::dstab1, GrainBin::dstAbund, GrainBin::dstfactor, GrainBin::DustDftVel, GrainBin::EnergyCheck, GrainBin::GrainGasCool, GrainBin::GrainHeat, gv, GrainBin::inv_att_len, ioQQQ, GrainBin::lgDustFunc, t_gv::lgDustOn, lgGvInitialized, GrainBin::lgQHeat, MALLOC, t_gv::nBin, GrainBin::nChrg, t_gv::nChrgRequested, NCHS, NDUST, GrainBin::pure_sc1, GrainBin::qnflux, GrainBin::rate_h2_form_grains_used, GrainBin::tedust, GrainBin::TeGrainMax, and GrainBin::y1.
Referenced by mie_read_opc().
void PE_init | ( | long | , | |
long | , | |||
long | , | |||
double * | , | |||
double * | , | |||
double * | , | |||
double * | , | |||
double * | , | |||
double * | , | |||
double * | ||||
) |
helper routine for initializing quantities related to the photo-electric effect
nd | ||
nz | ||
i | ||
*cs1 | [out] | |
*cs2 | [out] | |
*cs_tot | [out] | |
*cool1 | [out] | |
*cool2 | [out] | |
*ehat1 | [out] | |
*ehat2 | [out] |
Definition at line 3804 of file grains.cpp.
References t_rfield::anu, ASSERT, t_gv::bin, GrainBin::chrg, ChargeBin::cs_pdt, DEBUG_ENTRY, DEBUG_EXIT, GrainBin::dstab1, ChargeBin::DustZ, Ehi, Elo, gv, ChargeBin::ipThresInf, ChargeBin::ipThresInfVal, MAX2, t_gv::nBin, GrainBin::nChrg, t_rfield::nflux, ChargeBin::PotSurf, rfield, ChargeBin::ThresInf, ChargeBin::ThresInfVal, ChargeBin::ThresSurf, ChargeBin::ThresSurfVal, and ChargeBin::yhat.
Referenced by qheat_init(), and UpdatePot1().
STATIC double PlanckIntegral | ( | double | tdust, | |
long int | nd, | |||
long int | ip | |||
) |
Definition at line 1068 of file grains.cpp.
References t_rfield::anu, t_rfield::anu3, ASSERT, t_gv::bin, DEBUG_ENTRY, DEBUG_EXIT, GrainBin::dstab1, FR1RYD, gv, HPLANCK, ioQQQ, t_trace::lgDustBug, t_trace::lgTrace, MIN2, t_rfield::nupper, PI4, POW2, powi(), rfield, SPEEDLIGHT, TE1RYD, trace, and t_rfield::widflx.
STATIC double PlanckIntegral | ( | double | , | |
long | , | |||
long | ||||
) |
Referenced by InitEmissivities().
void ReturnGrainBins | ( | void | ) |
deallocate grain bins
Definition at line 434 of file grains.cpp.
References t_gv::anumax, t_gv::anumin, ASSERT, GrainBin::asym, t_gv::bin, GrainBin::chrg, ChargeBin::cs_pdt, DEBUG_ENTRY, DEBUG_EXIT, t_gv::dstab, GrainBin::dstab1, t_gv::dstsc, ChargeBin::fac1, ChargeBin::fac2, FREE_CHECK, FREE_SAFE, t_gv::GrainEmission, t_gv::GraphiteEmission, gv, GrainBin::inv_att_len, t_gv::lgDustOn, lgGvInitialized, t_gv::nBin, NCHS, NDUST, GrainBin::pure_sc1, t_gv::SilicateEmission, GrainBin::y1, and ChargeBin::yhat.
Referenced by GrainZero(), grid_do(), main(), and ParseAbundances().
void SetNChrgStates | ( | long | ) |
this routine is called by ParseSet()
Definition at line 359 of file grains.cpp.
References ASSERT, DEBUG_ENTRY, DEBUG_EXIT, gv, t_gv::nChrgRequested, and NCHU.
Referenced by ParseSet().
STATIC double ThetaNu | ( | double | nu | ) |
Definition at line 2502 of file grains.cpp.
References DEBUG_ENTRY, DEBUG_EXIT, and POW2.
Referenced by GetPotValues(), and GrainScreen().
STATIC void UpdatePot | ( | long | nd, | |
long | Zlo, | |||
long | stride, | |||
double | rate_up[], | |||
double | rate_dn[] | |||
) |
Definition at line 2541 of file grains.cpp.
References t_rfield::anu, ASSERT, t_gv::bin, BOLTZMANN, GrainBin::chrg, CONSERV_TOL, DEBUG_ENTRY, DEBUG_EXIT, ChargeBin::DustZ, EN1RYD, GrainElecEmis1(), GrainElecRecomb1(), gv, ioQQQ, ipoint(), t_trace::lgDustBug, t_trace::lgTrace, GrainBin::LowestZg, MAX2, MIN2, t_gv::nBin, GrainBin::nChrg, NCHS, ChargeBin::nfill, t_rfield::nflux, t_rfield::nupper, phycon, GrainBin::qnflux, GrainBin::qnflux2, rfield, t_phycon::te, GrainBin::tedust, ChargeBin::ThresInfInc, trace, UpdatePot1(), and UpdatePot2().
Referenced by GrainCharge().
STATIC void UpdatePot1 | ( | long | nd, | |
long | nz, | |||
long | Zg, | |||
long | ipStart | |||
) |
Definition at line 2797 of file grains.cpp.
References ALL_STAGES, t_rfield::anu, t_gv::anumin, ASSERT, t_gv::bin, ChargeBin::BolFlux, ChargeBin::bolflux1, cdEXIT(), ChargeBin::ChemEnH2, ChargeBin::ChemEnIon, GrainBin::chrg, GrainBin::cnv_GR_pH, ChargeBin::cs_pdt, DEBUG_ENTRY, DEBUG_EXIT, GrainBin::DustWorkFcn, ChargeBin::DustZ, Ehi, Elo, ChargeBin::ESum1a, ChargeBin::ESum1b, ChargeBin::ESum1c, ChargeBin::ESum2, ChargeBin::eta, EVRYD, ChargeBin::fac1, ChargeBin::fac2, ChargeBin::FracPop, FREE_SAFE, ChargeBin::GasHeatPhotoEl, ChargeBin::GasHeatTherm, GetPotValues(), ChargeBin::GrainCoolTherm, ChargeBin::GrainHeat, ChargeBin::GrainHeatColl, gv, ChargeBin::hcon1, ChargeBin::HeatingRate2, ChargeBin::hots1, INCL_TUNNEL, ioQQQ, ChargeBin::ipThresInf, ChargeBin::ipThresInfVal, LIMELM, MALLOC, GrainBin::matType, MAX2, MIN2, ChargeBin::nfill, t_rfield::nflux, NO_TUNNEL, t_rfield::nupper, ChargeBin::pe1, PE_CAR, PE_init(), PE_SIL, ChargeBin::PotSurf, ChargeBin::PotSurfInc, POW2, POW3, rfield, ChargeBin::RSum1, ChargeBin::RSum2, ChargeBin::tedust, ChargeBin::ThresInf, ChargeBin::ThresInfInc, ChargeBin::ThresInfVal, ChargeBin::ThresSurf, ChargeBin::ThresSurfInc, ChargeBin::ThresSurfVal, UpdateRecomZ0(), t_gv::which_pe, ChargeBin::xi, GrainBin::y1, and ChargeBin::yhat.
Referenced by UpdatePot().
STATIC void UpdatePot2 | ( | long | nd, | |
long | nz | |||
) |
Definition at line 3060 of file grains.cpp.
References t_gv::bin, GrainBin::chrg, DEBUG_ENTRY, DEBUG_EXIT, gv, POW2, TE1RYD, GrainBin::tedust, THERMCONST, GrainBin::ThermEff, ChargeBin::ThermRate, and ChargeBin::ThresInf.
Referenced by UpdatePot().
STATIC void UpdateRecomZ0 | ( | long | nd, | |
long | nz, | |||
bool | lgAllIonStages | |||
) |
Definition at line 3110 of file grains.cpp.
References t_gv::bin, ChargeBin::ChemEn, GrainBin::chrg, DEBUG_ENTRY, DEBUG_EXIT, dense, ChargeBin::DustZ, GetPotValues(), GrainIonColl(), gv, t_gv::HighestIon, INCL_TUNNEL, t_dense::lgElmtOn, LIMELM, NO_TUNNEL, ChargeBin::RecomEn, ChargeBin::RecomZ0, ChargeBin::ThresSurf, ChargeBin::ThresSurfInc, and t_dense::xIonDense.
Referenced by UpdatePot1().
const double AC0 = 3.e-9 [static] |
const double AC1G = 4.e-8 [static] |
const double AC2G = 7.e-8 [static] |
const int ALL_STAGES = true [static] |
const long BRACKET_MAX = 50L [static] |
double CHRG_TOLER = DBL_MAX [static] |
const long CT_LOOP_MAX = 25L [static] |
Definition at line 81 of file grains.cpp.
double HEAT_TOLER = DBL_MAX [static] |
double HEAT_TOLER_BIN = DBL_MAX [static] |
const int INCL_TUNNEL = true [static] |
Definition at line 40 of file grains.cpp.
Referenced by GrainsInit(), UpdatePot1(), and UpdateRecomZ0().
bool lgGvInitialized = false [static] |
const double MEAN_PATH = 1.e-7 [static] |
long int nCalledGrainDrive [static] |
const int NCHU = NCHS/3 [static] |
Definition at line 76 of file grains.cpp.
Referenced by GetFracPop(), GrainCharge(), GrainsInit(), and SetNChrgStates().
const int NO_TUNNEL = false [static] |
Definition at line 41 of file grains.cpp.
Referenced by GrainIonColl(), UpdatePot1(), and UpdateRecomZ0().
const long NTOP = NDEMS/5 [static] |
const double STICK_ELEC = 0.5 [static] |
const double STICK_ION = 1.0 [static] |
Definition at line 64 of file grains.cpp.
Referenced by GrainChrgTransferRates(), GrainCollHeating(), GrainElecEmis1(), and GrainElecRecomb1().
const long T_LOOP_MAX = 50L [static] |
const double THERMCONST = PI4*ELECTRON_MASS*POW2(BOLTZMANN)/POW3(HPLANCK) [static] |
const double TOLER = CONSERV_TOL/10. [static] |
Definition at line 71 of file grains.cpp.
Referenced by GrainChargeTemp(), mie_auxiliary(), and search_limit().