Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.mrao.cam.ac.uk/~bn204/devman/dust/namespaceDust.html
Дата изменения: Thu Jul 10 16:19:52 2008 Дата индексирования: Tue Oct 2 11:06:37 2012 Кодировка: |
Classes | |
class | GenEigenModes |
class | GenPAHCC |
class | GenSilModes |
class | EBins |
class | EquivTempRes |
class | PowerOutInt |
class | PowerInInt |
class | EquiTRes |
class | TMatrix |
class | TUpwardI |
class | TUpwardLimContInt |
class | TUpwardLimInt |
class | TCDownInt |
class | TUpwardEval |
class | AttRF |
class | AttSlab |
class | BBRadField |
class | iMMPUV |
class | MMPUV |
class | RadField |
class | ThinShell |
class | RastSDS |
class | CarbSD |
class | SilSD |
struct | Dielectrics |
Typedefs | |
typedef std::pair < InterpolatorBase *, InterpolatorBase * > | DielctrcIplt |
Enumerations | |
enum | CETmethod { Exact, Debye } |
Functions | |
double | BoltzDist (double E, double T) |
double | PAHCHSum (double a, double E, double T) |
double | EigenSum (std::vector< double > &Evect, double T) |
void | PAHCCOPModes (std::vector< double > &Evect, double a, unsigned maxmodes, dust_nmoded *nm) |
void | PAHCCIPModes (std::vector< double > &Evect, double a, unsigned maxmodes, dust_nmoded *nm) |
double | PAHEnergyExact (double a, double T, dust_nmoded *nm) |
double | BoltzSum (GenEigenModes &modegen, double T, double BoltzCut) |
double | PAHEnergyExactFast (double a, double T, dust_nmoded *nm, double BoltzCut) |
double | PAHEnergyExactFast (double a, double T, dust_nmoded *dm) |
void | Sil2dModes (std::vector< double > &Evect, double a, unsigned maxmodes, dust_nmoded *nm) |
void | Sil3dModes (std::vector< double > &Evect, double a, unsigned maxmodes, dust_nmoded *nm) |
double | SilEnergyExact (double a, double T, dust_nmoded *nm) |
double | SilEnergyExactFast (double a, double T, dust_nmoded *nm, double BoltzCut) |
double | SilEnergyExactFast (double a, double T, dust_nmoded *dm) |
double * | PAHLowStates (double a, unsigned n, dust_nmoded *dm) |
double * | SilLowStates (double a, unsigned n, dust_nmoded *dm) |
double | PAHEnergyDebye (double a, double T, dust_nmoded *nm) |
double | SilEnergyDebye (double a, double T, dust_nmoded *nm) |
EBins * | MkEBins (double *lowstates, unsigned NLow, unsigned NLin, unsigned NLog, dust_model *dm, double LogFact) |
double * | LowStates (double a, unsigned NLow, dust_type type, dust_model *dm) |
EBins * | MkEBins (double a, dust_type type, dust_model *dm) |
void | BinDist (unsigned &NLog, double &LogFact, double a, dust_type type, dust_model *dm) |
dust_EBins * | dust_cEBinsv2 (double a, dust_type type, dust_model *dm, double debyerad) |
double | BinTEquiv (dust_EBins *eb, unsigned i) |
std::ostream & | operator<< (std::ostream &os, EBins &eb) |
std::istream & | operator>> (std::istream &is, EBins &eb) |
void | EBWrite (EBins &eb, char *fname) |
EBins * | EBLoad (char *fname) |
void | Print (dust_pvector *pvect, size_t n) |
double | CalcEquivTempVmin (double a, double E, dust_type type, dust_model *dm, CETmethod method) |
double | CalcEquivTempVroot (double a, double E, dust_type type, dust_model *dm, CETmethod method, double Tmin, double Tmax) |
double | CalcEquivTemp (double a, double E, dust_type type, dust_model *dm, CETmethod method) |
void | CalcBinTemps (EBins &eb, double a, dust_type type, dust_model *dm, double debyerad) |
double | PowerOut (UnaryDD &Cabs, double T) |
double | PowerIn (UnaryDD &Cabs, RadField &rf) |
Calculates he power absorbed by a grain. | |
double | EquiT (UnaryDD &Cabs, RadField &rf) |
Calculates the equilibrium temperature for a dust grain. | |
double | EquiEmm (double lambda, double T, UnaryDD &Cabs) |
double | CTEmission (double lambda, EBins *eb, dust_pvector *pvect, UnaryDD &Cabs) |
double | CTEmission (double lambda, EBins *eb, dust_pvector *pvect, BNLib::UnaryDD &Cabs) |
double | TUpward (EBins *eb, unsigned u, unsigned l, UnaryDD &Cabs, RadField &rf) |
double | TUpwardLim (EBins *eb, unsigned l, UnaryDD &Cabs, RadField &rf) |
double | TCDown (EBins *eb, unsigned u, UnaryDD &Cabs) |
TMatrix * | CTMatrix (EBins *eb, UnaryDD &Cabs, RadField &rf, bool fast_upward) |
double | TUpward (EBins *eb, unsigned u, unsigned l, TUpwardEval &tue) |
double | IRF_Solar_UV (double lambda_m) |
double | ulconvert (double ul, double lambda_m) |
Converts erg cm**-2, s**-1 micron**-1 to m**-3. | |
void | AdjustSmallG (dust_sdpars *sd, double f) |
dust_sdpars * | DraineBestFit (void) |
DielctrcIplt | MkStaticDielectric (const double *data, size_t size) |
DielctrcIplt | MkEpsGraphitePar (void) |
Makes the interpolators for Graphite in the 'parallel' direction. | |
DielctrcIplt | MkEpsGraphitePerp (void) |
Makes the interpolators for Graphite in the 'perpendicular' direction. | |
DielctrcIplt | MkEpsSil (void) |
Make the interpolator for silicate grains. | |
double | EvalReal (DielctrcIplt iplt, double lambda) |
double | EvalImag (DielctrcIplt iplt, double lambda) |
std::vector< double > * | CarbRaster (double a, dust_model *dm) |
std::vector< double > * | SilRaster (double a, dust_model *dm) |
as CarbRaster but for silicate grains | |
double | GraphCAbs (double lambda, double a, Dielectrics &d, dust_model *m) |
double | PAHCAbs (double lambda, double a, dust_ionisation state, Dielectrics &d, dust_model *m) |
double | CarbCAbs (double lambda, double a, double ionf, Dielectrics &d, dust_model *m) |
InterpolatorBase * | CarbCAbsIplt (double a, double ionf, dust_model *m) |
double | SilCAbs (double lambda, double a, Dielectrics &d, dust_model *m) |
BNLib::InterpolatorBase * | SilCabsIplt (double a, dust_model *m) |
Collect all size -distribution parameters in one place
typedef std::pair< InterpolatorBase * , InterpolatorBase * > Dust::DielctrcIplt |
Pair of interpolator for use in evaluating the real and imag. parts of the dilectric constants.
enum Dust::CETmethod |
Exact: do the sum over the discrete normal modes Debye: use the continuum approximation
void Dust::AdjustSmallG | ( | dust_sdpars * | sd, | |
double | f | |||
) |
Reduce the frequency of grains in the two log-normal distributions by multiplying by the factor f
References dust_lognormalpars::Bi, dust_sdpars::carbpars, and dust_carbsdpars::lnd.
void Dust::BinDist | ( | unsigned & | NLog, | |
double & | LogFact, | |||
double | a, | |||
dust_type | type, | |||
dust_model * | dm | |||
) |
This is a function used by the bin creation routines. It returns the number of bins and their spacing at high energy for grains of given size and type.
NLog is the number of bins in the log-spaced regime (i.e., at high energies). LogFact is a factor by which the size of bins is increased from default.
Referenced by dust_cEBinsv2().
double Dust::BinTEquiv | ( | dust_EBins * | eb, | |
unsigned | i | |||
) |
Just a convenience function for use from python
void Dust::CalcBinTemps | ( | EBins & | eb, | |
double | a, | |||
dust_type | type, | |||
dust_model * | dm, | |||
double | debyerad = 1.0 | |||
) |
Calculate bin temperatures. For grains larger than debyerad use only debye approximation.
References bndust_PAHatoHc(), bndust_PAHatoNC(), CalcEquivTemp(), dust_silatona(), Dust::EBins::E(), LowStates(), dust_EBins::n, and dust_EBins::Teqi.
Referenced by dust_cEBinsv2().
double Dust::CalcEquivTemp | ( | double | a, | |
double | E, | |||
dust_type | type, | |||
dust_model * | dm, | |||
CETmethod | method | |||
) |
Calculate temperature which equivalent to grain energy E.
References CalcEquivTempVmin(), and CalcEquivTempVroot().
Referenced by CalcBinTemps().
double Dust::CalcEquivTempVmin | ( | double | a, | |
double | E, | |||
dust_type | type, | |||
dust_model * | dm, | |||
CETmethod | method | |||
) |
Calculate equivalent temperature using the 1-d minimisation algorithm. Uses derivatives so relatively fast. Not obvious what goes wrong when real root not stradled by endpoints. Returns a negative value when minimisation fails.
Referenced by CalcEquivTemp().
double Dust::CalcEquivTempVroot | ( | double | a, | |
double | E, | |||
dust_type | type, | |||
dust_model * | dm, | |||
CETmethod | method, | |||
double | Tmin, | |||
double | Tmax | |||
) |
As CalcEquivTempVmin but uses true root finding algorithm
Referenced by CalcEquivTemp().
double Dust::CarbCAbs | ( | double | lambda, | |
double | a, | |||
double | ionf, | |||
Dielectrics & | d, | |||
dust_model * | m | |||
) |
Calculates the cross section of a carbonacous grain (PAH or graphite).
ionf is the ionisation fraction
References dust_carbprops::axi, bndust_xiPAH(), dust_model::carbprops, GraphCAbs(), PAHCAbs(), and dust_carbprops::qgra.
Referenced by dust_cAbsXSection().
BNLib::InterpolatorBase * Dust::CarbCAbsIplt | ( | double | a, | |
double | ionf, | |||
dust_model * | m | |||
) |
Returns an interplator with carbonacious grain cross section
References CarbRaster(), and dust_cAbsXSection().
Referenced by dust_mkAbsXSection().
std::vector< double > * Dust::CarbRaster | ( | double | a, | |
dust_model * | dm | |||
) |
Makes a vector of wavelengths suitable for sampling carbonaceous grains.
a is the grain radius
Referenced by CarbCAbsIplt().
double Dust::CTEmission | ( | double | lambda, | |
EBins * | eb, | |||
dust_pvector * | pvect, | |||
BNLib::UnaryDD & | Cabs | |||
) |
Returns the emitted specific intensity at wavelength lambda from a transiently heated grain given the energy bins (eb), probability distribution (pvect) and absorption cross section (Cabs). After eq 56 of Draine and Li 2001.
Referenced by dust_ctemission().
TMatrix * Dust::CTMatrix | ( | EBins * | eb, | |
UnaryDD & | Cabs, | |||
RadField & | rf, | |||
bool | fast_upward = true | |||
) |
Calculates the complete transition matrix.
References dust_EBins::n, TCDown(), TUpward(), and TUpwardLim().
Referenced by dust_ctmatrix().
dust_EBins * Dust::dust_cEBinsv2 | ( | double | a, | |
dust_type | type, | |||
dust_model * | dm, | |||
double | debyerad | |||
) |
This is a version of dust_cEBinsv2 with an extra parameter: `debyerad` which is the grain radius at which _all_ energy bin temperatures are calculate using the continuum approximation rather than the exact calculation.
References BinDist(), CalcBinTemps(), LowStates(), and MkEBins().
Referenced by dust_cEBins().
void Dust::EBWrite | ( | EBins & | eb, | |
char * | fname | |||
) |
Use this just for testing -- writes out the bins to a file
double Dust::EquiEmm | ( | double | lambda, | |
double | T, | |||
UnaryDD & | Cabs | |||
) |
Equilibrium emission from a grain. Return value is W per Hz per steradian.
Referenced by dust_equiemm().
double Dust::GraphCAbs | ( | double | lambda, | |
double | a, | |||
Dielectrics & | d, | |||
dust_model * | m | |||
) |
Calculate the abosrption cross section of a graphitic grain
References dust_miecalc(), Dust::Dielectrics::GraphPar, and Dust::Dielectrics::GraphPerp.
Referenced by CarbCAbs(), and PAHCAbs().
double Dust::IRF_Solar_UV | ( | double | lambda_m | ) |
This is what is in the UV compononet as it is in the paper. The units are erg cm**-2 s**-1 micron**-1. Needs to be divided by c to get RF density.
double * Dust::LowStates | ( | double | a, | |
unsigned | NLow, | |||
dust_type | type, | |||
dust_model * | dm | |||
) |
Return the lowest n states switching on dust type
References dust_model::norm, PAHLowStates(), and SilLowStates().
Referenced by CalcBinTemps(), and dust_cEBinsv2().
EBins * Dust::MkEBins | ( | double | a, | |
dust_type | type, | |||
dust_model * | dm | |||
) |
Wraps creation of bins completely up
References dust_cEBins().
EBins * Dust::MkEBins | ( | double * | lowstates, | |
unsigned | NLow, | |||
unsigned | NLin, | |||
unsigned | NLog, | |||
dust_model * | dm, | |||
double | LogFact = 1.0 | |||
) |
Make suitable energy bins for a particular grain. lowstates is a double array of length NLow which contains the lowest states of the grains. NLin is the number of bins linear in energy and NLog is the number of bins logarthmic in energy. LogFact is a factor to increase spacing of the log bins.
References Dust::EBins::EBins().
Referenced by dust_cEBinsv2().
DielctrcIplt Dust::MkStaticDielectric | ( | const double * | data, | |
size_t | size | |||
) |
Makes the interpolators for real and imaginary dielectric constants of the dust given a static structure like resides in the file epsdrainedata.c .
Referenced by MkEpsGraphitePar(), MkEpsGraphitePerp(), and MkEpsSil().
std::ostream & Dust::operator<< | ( | std::ostream & | os, | |
EBins & | eb | |||
) |
Write the energy bins the output stream. May use binary format -- may not translate between architectures.
References dust_EBins::Emax, dust_EBins::Emin, dust_EBins::n, and dust_EBins::Teqi.
double Dust::PAHCAbs | ( | double | lambda, | |
double | a, | |||
dust_ionisation | state, | |||
Dielectrics & | d, | |||
dust_model * | m | |||
) |
Calclates the overall absorption cross section of a pah molecule
References bndust_drudeS(), bndust_PAHatoNC(), bndust_PAHCutoff(), dust_CPAHDrudes(), GraphCAbs(), and dust_model::pahenhancements.
Referenced by CarbCAbs().
void Dust::PAHCCIPModes | ( | std::vector< double > & | Evect, | |
double | a, | |||
unsigned | maxmodes, | |||
dust_nmoded * | nm | |||
) |
Returns the PAH C-C in-plane modes. if maxmodes == 0 return all modes;
References Dust::GenEigenModes::Fill().
Referenced by PAHEnergyExact(), and PAHLowStates().
void Dust::PAHCCOPModes | ( | std::vector< double > & | Evect, | |
double | a, | |||
unsigned | maxmodes, | |||
dust_nmoded * | nm | |||
) |
Returns the PAH C-C out-of-plane modes
if maxmodes == 0 return all modes;
References Dust::GenEigenModes::Fill().
Referenced by PAHEnergyExact(), and PAHLowStates().
double Dust::PAHEnergyDebye | ( | double | a, | |
double | T, | |||
dust_nmoded * | dm | |||
) |
Returns the approximate expectation value of energy calculated using the continuum Debye approximation.
References bndust_PAHatoNC(), dust_nmoded::CHIP, dust_nmoded::CHOP, dust_nmoded::CHStretch, dust_boseyn(), dust_nmoded::PAHTDebCCIP, and dust_nmoded::PAHTDebCCOP.
double Dust::PAHEnergyExact | ( | double | a, | |
double | T, | |||
dust_nmoded * | dm | |||
) |
Calculate the exact energy expectation value of a PAH given its nominal temperature.
a is the grain radius, T is the temperature. Return value is energy in Joules.
References dust_nmoded::CHIP, dust_nmoded::CHOP, dust_nmoded::CHStretch, PAHCCIPModes(), and PAHCCOPModes().
double Dust::PAHEnergyExactFast | ( | double | a, | |
double | T, | |||
dust_nmoded * | dm | |||
) |
Uses a sensible default for BoltzCut
References PAHEnergyExactFast().
double Dust::PAHEnergyExactFast | ( | double | a, | |
double | T, | |||
dust_nmoded * | dm, | |||
double | BoltzCut | |||
) |
As PAHEnergyExact but should truncate the serries and thus faster
References dust_nmoded::CHIP, dust_nmoded::CHOP, and dust_nmoded::CHStretch.
Referenced by PAHEnergyExactFast().
double * Dust::PAHLowStates | ( | double | a, | |
unsigned | n, | |||
dust_nmoded * | dm | |||
) |
Return the energies of n lowest PAH states
References PAHCCIPModes(), and PAHCCOPModes().
Referenced by LowStates().
double Dust::PowerOut | ( | UnaryDD & | Cabs, | |
double | T | |||
) |
Calculate the power output of a grain with specified absorption cross section and temperature. Return value is W per grain.
Note that the integration limits are chosen to be appropriate for dust.
double Dust::SilCAbs | ( | double | lambda, | |
double | a, | |||
Dielectrics & | d, | |||
dust_model * | m | |||
) |
Calculates the absorption cross section of silicate grains
References dust_miecalc(), and Dust::Dielectrics::Sil.
Referenced by dust_cAbsXSection().
BNLib::InterpolatorBase * Dust::SilCabsIplt | ( | double | a, | |
dust_model * | m | |||
) |
Returns an interpolator with silicate grain cross section
References dust_cAbsXSection(), and SilRaster().
Referenced by dust_mkAbsXSection().
double Dust::SilEnergyDebye | ( | double | a, | |
double | T, | |||
dust_nmoded * | dm | |||
) |
As PAHEnergyDebye but for Silicate grains.
References dust_boseyn(), dust_silatona(), dust_nmoded::Sil2DT, and dust_nmoded::Sil3DT.
double Dust::SilEnergyExact | ( | double | a, | |
double | T, | |||
dust_nmoded * | dm | |||
) |
As PAHEnergyExact but for silicate grains.
double * Dust::SilLowStates | ( | double | a, | |
unsigned | n, | |||
dust_nmoded * | dm | |||
) |
Return the energies of n lowest Silicate states
Referenced by LowStates().
double Dust::TCDown | ( | EBins * | eb, | |
unsigned | u, | |||
UnaryDD & | Cabs | |||
) |
Calculates the transition rate from bin u to bin u-1 using the thermal-continuous approximation. See eq 41 of Draine and Li 2001
References Dust::EBins::E(), OUTINTEG_MAXSTEPS, and dust_EBins::Teqi.
Referenced by CTMatrix().
double Dust::TUpward | ( | EBins * | eb, | |
unsigned | u, | |||
unsigned | l, | |||
TUpwardEval & | tue | |||
) |
Calculate the upward transtion rate using the TUpwardEval class
References Dust::EBins::DE(), Dust::EBins::E(), Dust::TUpwardEval::EIdx(), Dust::TUpwardEval::EMax, Dust::TUpwardEval::EMin, Dust::TUpwardEval::Idx(), Dust::EBins::W1(), Dust::EBins::W2(), Dust::EBins::W3(), and Dust::EBins::W4().
double Dust::TUpward | ( | EBins * | eb, | |
unsigned | u, | |||
unsigned | l, | |||
UnaryDD & | Cabs, | |||
RadField & | rf | |||
) |
Calculates the upward transition rate from bin l to bin u given the grain absorption cross section Cabs and the radiation field rf. Note that there exists a version which faster when evaluating all upward rates (see file tupward.hxx).
References Dust::RadField::cuthigh_J, Dust::RadField::cutlow_J, Dust::EBins::DE(), Dust::EBins::E(), RFINTEG_MAXSTEPS, Dust::EBins::W1(), and Dust::EBins::W4().
Referenced by CTMatrix().
double Dust::TUpwardLim | ( | EBins * | eb, | |
unsigned | l, | |||
UnaryDD & | Cabs, | |||
RadField & | rf | |||
) |
Limitting case of upward transtions from bin l to the top bin
References Dust::RadField::cuthigh_J, Dust::EBins::E(), dust_EBins::n, RFINTEG_MAXSTEPS, Dust::EBins::W1(), and Dust::EBins::Wc().
Referenced by CTMatrix().