/home66/gary/public_html/cloudy/c08_branch/source/grains.h File Reference

This graph shows which files directly or indirectly include this file:

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 *)


Function Documentation

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.

Parameters:
x 
xa[] 
n 
[out] *ind 
[out] *lgOutOfBounds 

Definition at line 4244 of file grains_mie.cpp.

References cdEXIT, DEBUG_ENTRY, MAX2, MIN2, and sign3().

Referenced by init_eps(), mie_calc_ial(), mie_cs(), size_distr(), and tbl_fun().

Here is the call graph for this function:

void gauss_init ( long  int,
double  ,
double  ,
double  [],
double  [],
double  [],
double  [] 
)

set up Gaussian quadrature for arbitrary interval

Parameters:
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

Parameters:
nn 
x[] 
a[] 

Definition at line 4132 of file grains_mie.cpp.

References cdEXIT, DEBUG_ENTRY, 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, 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, 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.

Here is the call graph for this function:

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, cdEXIT, DEBUG_ENTRY, dense, GrainBin::dstab1, GrainBin::dstAbund, t_gv::dstAbundThresholdFar, t_gv::dstAbundThresholdNear, FR1RYD, t_gv::GrainEmission, t_gv::GraphiteEmission, gv, t_hmi::H2_total, hmi, ioQQQ, ipHYDROGEN, GrainBin::lgQHeat, GrainBin::lgUseQHeat, MALLOC, GrainBin::matType, t_gv::nBin, t_rfield::nflux, NQGRID, PI4, POW2, qheat(), rfield, t_gv::SilicateEmission, SPEEDLIGHT, STRG_CAR, STRG_SIL, TE1RYD, t_gv::which_strg, t_rfield::widflx, and t_dense::xIonDense.

Here is the call graph for this function:

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.

void GrainsInit ( void   ) 

startup routine for grains, called before first calculations, but after parsecommands

Todo:
xray - StickElec depends on Te ???? use elec_esc_length(1.5*kTe,nd) ????

Definition at line 585 of file grains.cpp.

References t_gv::anumax, t_gv::anumin, ASSERT, t_gv::bin, DEBUG_ENTRY, t_gv::dstab, t_gv::dstsc, t_gv::elmSumAbund, t_gv::GasCoolColl, t_gv::GrainEmission, t_gv::GrainHeatCollSum, t_gv::GrainHeatDif, t_gv::GrainHeatInc, t_gv::GrainHeatLya, t_gv::GrainHeatSum, t_gv::GraphiteEmission, gv, t_thermal::heating, ioQQQ, t_trace::lgDustBug, t_gv::lgDustOn, t_trace::lgTrace, MALLOC, t_gv::nBin, NDUST, t_rfield::nupper, rfield, t_gv::SilicateEmission, thermal, and trace.

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.

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.

Here is the call graph for this function:

void InitEnthalpy ( void   ) 

initialize interpolation arrays for grain enthalpy

Definition at line 2505 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().

Here is the call graph for this function:

void mie_read_opc ( const char *  ,
GrainPar   
)

read in the *.opc file with opacities and other relevant information

Parameters:
*chFile 
gp 

Definition at line 990 of file grains_mie.cpp.

References AS_DATA_LOCAL, called, DEBUG_ENTRY, FILENAME_PATH_LENGTH_2, gv, t_called::lgTalk, LIMELM, open_data(), t_gv::ReadPtr, and t_gv::ReadRecord.

Referenced by ParseGrain().

Here is the call graph for this function:

void mie_write_opc ( const char *  ,
const char *  ,
long  int 
)

mie_write_opc

Parameters:
[in] *rfi_file 
[in] *szd_file 

Definition at line 208 of file grains_mie.cpp.

References grain_data::abun, sd_data::area, AS_LOCAL_ONLY, grain_data::atom_weight, ATOMIC_MASS_UNIT, grain_data::bandgap, cdEXIT, t_elementnames::chElementSym, DEBUG_ENTRY, grain_data::depl, elementnames, grain_data::elmAbun, FILENAME_PATH_LENGTH_2, Singleton< T >::Inst(), ioQQQ, ipBHi, ipBLo, LABELSIZE, LABELSUB1, LABELSUB2, sd_data::lgLogScale, sd_data::lim, LIMELM, sd_data::ln_a, sd_data::ln_a4dNda, grain_data::magic, sd_data::magic, MAGIC_OPC, MALLOC, grain_data::matType, MAX2, mie_auxiliary(), mie_read_mix(), mie_read_rfi(), mie_read_szd(), 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_TABLE, grain_data::opcAnu, grain_data::opcData, open_data(), POW4, sd_data::radius, radius, rfield, grain_data::rfiType, grain_data::rho, SD_SINGLE_SIZE, sd_data::sdCase, size_distr(), grain_data::subl_temp, grain_data::therm_eff, sd_data::unity, sd_data::vol, grain_data::wavlen, and grain_data::work.

Referenced by ParseCompile().

Here is the call graph for this function:

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.

void qheat ( double  [],
double  [],
long *  ,
long   
)

main routine for quantum heating

Referenced by GrainMakeDiffuse().

void ReturnGrainBins ( void   ) 

deallocate grain bins

Definition at line 488 of file grains.cpp.

References ASSERT, GrainBin::asym, ShellData::AvNr, t_gv::bin, GrainBin::chrg, DEBUG_ENTRY, GrainBin::dstab1, ShellData::Ener, FREE_SAFE, gv, GrainBin::inv_att_len, lgGvInitialized, t_gv::nBin, NCHS, NSHL, GrainBin::pure_sc1, GrainBin::sd, and GrainBin::y0b06.

Referenced by GrainZero(), grid_do(), and main().

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().


Generated on Mon Feb 16 12:06:18 2009 for cloudy by  doxygen 1.4.7