cloudy trunk
|
Go to the source code of this file.
Data Structures | |
struct | GrainPar |
Functions | |
void | GrainDrive (void) |
void | GrainDrift (void) |
void | GrainZero (void) |
void | GrainStartIter (void) |
void | GrainRestartIter (void) |
void | SetNChrgStates (long) |
long | NewGrainBin (void) |
void | ReturnGrainBins (void) |
void | GrainsInit (void) |
void | GrainMakeDiffuse (void) |
void | qheat (double[], double[], long *, long) |
void | InitEnthalpy (void) |
void | mie_write_opc (const char *, const char *, long int) |
void | mie_read_opc (const char *, GrainPar) |
void | gauss_init (long int, double, double, double[], double[], double[], double[]) |
void | gauss_legendre (long int, double[], double[]) |
void | find_arr (double, double[], long int, long int *, bool *) |
void find_arr | ( | double | , |
double | [], | ||
long | int, | ||
long int * | , | ||
bool * | |||
) |
find index ind such that min(xa[ind],xa[ind+1]) <= x <= max(xa[ind],xa[ind+1]). xa is assumed to be strictly monotically increasing or decreasing. if x is outside the range spanned by xa, lgOutOfBounds is raised and ind is set to -1 n is the number of elements in xa.
x | ||
xa[] | ||
n | ||
[out] | *ind | |
[out] | *lgOutOfBounds |
Definition at line 4244 of file grains_mie.cpp.
References cdEXIT, DEBUG_ENTRY, ioQQQ, MAX2, MIN2, and sign3().
Referenced by init_eps(), mie_calc_ial(), mie_cs(), size_distr(), and tbl_fun().
void gauss_init | ( | long | int, |
double | , | ||
double | , | ||
double | [], | ||
double | [], | ||
double | [], | ||
double | [] | ||
) |
set up Gaussian quadrature for arbitrary interval
nn | |
xbot | |
xtop | |
x[] | |
a[] | |
rr[] | |
ww[] |
Definition at line 4104 of file grains_mie.cpp.
References DEBUG_ENTRY.
Referenced by DebyeDeriv(), and mie_integrate().
void gauss_legendre | ( | long | int, |
double | [], | ||
double | [] | ||
) |
set up abscissas and weights for Gauss-Legendre intergration of arbitrary even order
nn | |
x[] | |
a[] |
Definition at line 4132 of file grains_mie.cpp.
References cdEXIT, DEBUG_ENTRY, ioQQQ, MALLOC, POW2, and SAFETY.
Referenced by DebyeDeriv(), and mie_integrate().
void GrainDrift | ( | void | ) |
GrainDrift computes grains drift velocity
Definition at line 4950 of file grains.cpp.
References t_rfield::anu, ASSERT, GrainBin::asym, t_gv::bin, BOLTZMANN, t_rfield::ConInterOut, DEBUG_ENTRY, 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 1621 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, dense, t_gv::dphmax, GrainBin::dstpot, GrainBin::DustDftVel, ChargeBin::DustZ, t_dense::eden, t_conv::EdenErrorAllowed, EVRYD, fp_equal(), 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().
void GrainMakeDiffuse | ( | void | ) |
main routine for generating the grain diffuse emission
Definition at line 165 of file grains_qheat.cpp.
References t_rfield::anu, t_rfield::anu2, ASSERT, t_gv::bin, GrainBin::BolFlux, cdEXIT, GrainBin::cnv_H_pCM3, CONSERV_TOL, t_thermal::ConstGrainTemp, DEBUG_ENTRY, dense, GrainBin::dstab1, GrainBin::dstAbund, t_gv::dstAbundThresholdFar, t_gv::dstAbundThresholdNear, EN1RYD, FR1RYD, t_gv::GasCoolColl, t_gv::GrainEmission, GrainBin::GrainHeat, t_gv::GrainHeatChem, t_gv::GrainHeatScaleFactor, t_gv::GrainHeatSum, t_gv::GraphiteEmission, gv, t_hmi::H2_total, t_thermal::heating, hmi, ioQQQ, ipHYDROGEN, lgAbort, t_gv::lgBakesPAH_heat, GrainBin::lgChrgConverged, t_gv::lgDColOn, t_gv::lgDHetOn, GrainBin::lgQHeat, GrainBin::lgTdustConverged, GrainBin::lgUseQHeat, MALLOC, GrainBin::matType, MAX2, t_gv::nBin, t_rfield::nflux, NQGRID, PI4, POW2, qheat(), GrainBin::RateDn, GrainBin::RateUp, rfield, t_gv::SilicateEmission, SPEEDLIGHT, STRG_CAR, STRG_SIL, TE1RYD, GrainBin::tedust, thermal, GrainBin::Tsublimat, t_gv::which_strg, t_rfield::widflx, and t_dense::xIonDense.
Referenced by RT_diffuse().
void GrainRestartIter | ( | void | ) |
this routine is called by IterRestart()
Definition at line 391 of file grains.cpp.
References t_gv::bin, DEBUG_ENTRY, GrainBin::dstpot, GrainBin::dstpotsav, gv, t_gv::lgDustOn, t_gv::lgGrainPhysicsOn, t_gv::nBin, GrainBin::nChrg, and GrainBin::nChrgOrg.
Referenced by IterRestart().
void GrainsInit | ( | void | ) |
startup routine for grains, called before first calculations, but after parsecommands
Definition at line 585 of file grains.cpp.
References t_rfield::anu, t_gv::anumax, t_gv::anumin, ASSERT, GrainBin::asym, ATOMIC_MASS_UNIT, atoms, GrainBin::atomWeight, t_gv::AugerData, ShellData::AvNr, AEInfo::AvNumber, GrainBin::AvRadius, GrainBin::AvVol, GrainBin::BandGap, t_gv::bin, cdEXIT, GrainBin::chDstLab, GrainBin::chrg, chrg2pot(), CHRG_TOLER, flex_arr< T, lgBC >::clear(), 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, dense, t_gv::dstab, GrainBin::dstab1, GrainBin::dstAbund, GrainBin::dstfactor, t_gv::dstsc, GrainBin::dustp, GrainBin::DustWorkFcn, ChargeBin::DustZ, t_conv::EdenErrorAllowed, ChargeBin::ehat, elec_esc_length(), GrainBin::elmAbund, t_gv::elmSumAbund, ShellData::Ener, AEInfo::Energy, EVRYD, 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(), GrainBin::GrnVryDpth, gv, HEAT_TOLER, HEAT_TOLER_BIN, t_conv::HeatCoolRelErrorAllowed, t_thermal::heating, hunt_bisect(), INCL_TUNNEL, InitBinAugerData(), InitEmissivities(), InitEnthalpy(), GrainBin::IntArea, ShellData::ionPot, AEInfo::IonThres, ioQQQ, ipHYDROGEN, ipLITHIUM, ShellData::ipLo, GrainBin::le_thres, 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, t_gv::lgWD01, LIMELM, GrainBin::LowestPot, GrainBin::LowestZg, MALLOC, MAT_PAH, MAT_PAH2, GrainBin::matType, MAX2, t_gv::nBin, GrainBin::nChrg, NCHS, NCHU, AEInfo::nData, NDUST, ShellData::nelem, t_gv::nfill, GrainBin::nfill, ChargeBin::nfill, t_rfield::nflux, nint(), ShellData::ns, GrainBin::nShells, NSHL, AEInfo::nSubShell, t_rfield::nupper, t_gv::nzone, one_elec(), ShellData::p, pot2chrg(), POW2, GrainBin::pure_sc1, GrainBin::qtmin, GrainBin::qtmin_zone1, ReadAugerData(), rfield, GrainBin::sd, t_gv::SilicateEmission, STICK_ELEC, GrainBin::StickElecNeg, GrainBin::StickElecPos, ChargeBin::tedust, thermal, TorF(), trace, t_gv::which_zmin, ShellData::y01, GrainBin::y0b06, ChargeBin::yhat, ChargeBin::yhat_primary, ZMIN_BAKES, ZMIN_CAR, and ZMIN_SIL.
Referenced by OpacityCreateAll().
void GrainStartIter | ( | void | ) |
this routine is called by IterStart()
Definition at line 358 of file grains.cpp.
References GrainBin::avdft, GrainBin::avDGRatio, GrainBin::avdpot, GrainBin::avdust, t_gv::bin, DEBUG_ENTRY, GrainBin::dstpot, GrainBin::dstpotsav, gv, t_gv::lgDustOn, GrainBin::lgEverQHeat, t_gv::lgGrainPhysicsOn, GrainBin::lgPAHsInIonizedRegion, GrainBin::lgQHTooWide, t_gv::nBin, GrainBin::nChrg, GrainBin::nChrgOrg, GrainBin::QHeatFailures, GrainBin::qtmin, GrainBin::qtmin_zone1, and GrainBin::TeGrainMax.
Referenced by IterStart().
void GrainZero | ( | void | ) |
initialize some variables, called by zero()
Definition at line 239 of file grains.cpp.
References t_gv::chPAH_abundance_fcn, DEBUG_ENTRY, 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, t_gv::lgWD01, 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().
void InitEnthalpy | ( | void | ) |
initialize interpolation arrays for grain enthalpy
Definition at line 2490 of file grains_qheat.cpp.
References t_gv::bin, DEBUG_ENTRY, t_gv::dsttmp, GrainBin::DustEnth, GrainBin::EnthSlp, GrainBin::EnthSlp2, GRAIN_TMIN, gv, log_integral(), t_gv::nBin, NDEMS, spline(), tlim, and uderiv().
Referenced by GrainsInit().
void mie_read_opc | ( | const char * | , |
GrainPar | |||
) |
read in the *.opc file with opacities and other relevant information
*chFile | |
gp |
Definition at line 990 of file grains_mie.cpp.
References GrainBin::AccomCoef, AS_DATA_LOCAL, ASSERT, GrainBin::asym, t_dense::AtomicWeight, GrainBin::atomWeight, GrainBin::AvArea, GrainBin::AvRadius, GrainBin::AvVol, GrainBin::BandGap, t_gv::bin, called, GrainBin::Capacity, cdEXIT, GrainBin::chDstLab, GrainBin::cnv_GR_pH, GrainBin::cnv_H_pGR, DEBUG_ENTRY, dense, GrainPar::dep, GrainBin::dstab1, GrainBin::dstfactor, GrainBin::dustp, GrainBin::DustWorkFcn, GrainBin::eec, ELECTRIC_CONST, GrainBin::elmAbund, GrainBin::EnergyCheck, GrainBin::eyc, FILENAME_PATH_LENGTH_2, gv, GrainBin::IntArea, GrainBin::IntRadius, GrainBin::IntVol, GrainBin::inv_att_len, ioQQQ, LABELSIZE, GrainPar::lgAbunVsDepth, GrainBin::lgDustFunc, GrainPar::lgForbidQHeating, GrainPar::lgGreyGrain, GrainBin::lgQHeat, GrainPar::lgRequestQHeating, t_called::lgTalk, LIMELM, MAGIC_OPC, MALLOC, GrainBin::matType, MAX_READ_RECORDS, mie_next_data(), mie_next_line(), mie_read_double(), mie_read_long(), mie_read_realnum(), NewGrainBin(), GrainBin::NFPCheck, open_data(), PI4, POW2, GrainBin::pure_sc1, t_gv::ReadPtr, t_gv::ReadRecord, GrainBin::ThermEff, and GrainBin::Tsublimat.
Referenced by ParseAbundances(), and ParseGrain().
void mie_write_opc | ( | const char * | , |
const char * | , | ||
long | int | ||
) |
mie_write_opc
[in] | *rfi_file | |
[in] | *szd_file |
Definition at line 208 of file grains_mie.cpp.
References grain_data::abun, t_rfield::anu, sd_data::area, AS_LOCAL_ONLY, ASSERT, grain_data::atom_weight, ATOMIC_MASS_UNIT, grain_data::bandgap, grain_data::cAxis, cdEXIT, t_elementnames::chElementSym, sd_data::clim, sd_data::cPart, DEBUG_ENTRY, grain_data::depl, elementnames, grain_data::elmAbun, FILENAME_PATH_LENGTH_2, gv, IAL_CAR, IAL_SIL, Singleton< t_version >::Inst(), ioQQQ, ipBHi, ipBLo, LABELSIZE, LABELSUB1, LABELSUB2, sd_data::lgLogScale, sd_data::lim, LIMELM, sd_data::ln_a, sd_data::ln_a4dNda, sd_data::magic, grain_data::magic, MAGIC_OPC, MALLOC, grain_data::matType, MAX2, mie_auxiliary(), mie_calc_ial(), mie_cs(), mie_cs_size_distr(), mie_read_mix(), mie_read_rfi(), mie_read_szd(), mie_repair(), MIN2, grain_data::mol_weight, grain_data::n, NAX, grain_data::nAxes, NDAT, grain_data::nOpcCols, grain_data::norm, sd_data::nPart, grain_data::nr1, t_rfield::nupper, OPC_GREY, OPC_PAH1, OPC_TABLE, grain_data::opcAnu, grain_data::opcData, open_data(), pah1_fun(), POW4, radius, sd_data::radius, RFI_TABLE, rfield, grain_data::rfiType, grain_data::rho, SD_SINGLE_SIZE, sd_data::sdCase, ShowMe(), size_distr(), grain_data::subl_temp, tbl_fun(), grain_data::therm_eff, sd_data::unity, sd_data::unity_bin, sd_data::vol, grain_data::wavlen, WAVNRYD, t_gv::which_ial, grain_data::work, and grain_data::wt.
Referenced by ParseCompile().
long NewGrainBin | ( | void | ) |
allocate new grain bin
Definition at line 422 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, GrainBin::dstab1, GrainBin::dstAbund, GrainBin::dstfactor, GrainBin::DustDftVel, GrainBin::EnergyCheck, GrainBin::GrainGasCool, GrainBin::GrainHeat, GrainBin::GrnVryDpth, gv, GrainBin::inv_att_len, ioQQQ, GrainBin::le_thres, GrainBin::lgDustFunc, t_gv::lgDustOn, lgGvInitialized, GrainBin::lgQHeat, MALLOC, t_gv::nBin, GrainBin::nChrg, t_gv::nChrgRequested, NCHS, NDUST, GrainBin::nfill, NSHL, GrainBin::pure_sc1, GrainBin::qnflux, GrainBin::rate_h2_form_grains_used, GrainBin::sd, GrainBin::tedust, GrainBin::TeGrainMax, and GrainBin::y0b06.
Referenced by mie_read_opc().
void qheat | ( | double | [], |
double | [], | ||
long * | , | ||
long | |||
) |
main routine for quantum heating
Referenced by GrainMakeDiffuse(), and hmole_step().
void ReturnGrainBins | ( | void | ) |
deallocate grain bins
Definition at line 488 of file grains.cpp.
References t_gv::anumax, t_gv::anumin, ASSERT, GrainBin::asym, t_gv::AugerData, ShellData::AvNr, AEInfo::AvNumber, t_gv::bin, GrainBin::chrg, DEBUG_ENTRY, t_gv::dstab, GrainBin::dstab1, t_gv::dstsc, ShellData::Ener, AEInfo::Energy, FREE_CHECK, FREE_SAFE, t_gv::GrainEmission, t_gv::GraphiteEmission, gv, GrainBin::inv_att_len, AEInfo::IonThres, t_gv::lgDustOn, lgGvInitialized, LIMELM, t_gv::nBin, NCHS, AEInfo::nData, NDUST, NSHL, AEInfo::nSubShell, GrainBin::pure_sc1, GrainBin::sd, t_gv::SilicateEmission, and GrainBin::y0b06.
Referenced by GrainZero(), grid_do(), main(), and ParseAbundances().
void SetNChrgStates | ( | long | ) |
this routine is called by ParseSet()
Definition at line 412 of file grains.cpp.
References ASSERT, DEBUG_ENTRY, gv, t_gv::nChrgRequested, and NCHU.
Referenced by ParseSet().