Manticore
Version 1.0
Physics of Molecular Clouds
|
Graybody emission model. More...
#include <Graybody.h>
Public Member Functions | |
Graybody (Dust &dust, double err=1e-3) | |
Default constructor. More... | |
Graybody (const Graybody &g) | |
Copy constructor. More... | |
double | Bnu (double nu, double T) const |
Blackbody specific intensity (erg/cm^2/s/Hz/sr). More... | |
double | dBnu_dT (double nu, double T) const |
Blackbody specific intensity T-derivative (erg/cm^2/s/Hz/sr/K). More... | |
double | dF_dS (double T, double Sigma, const Detector *detect=nullptr, double sr=1.0) const |
Graybody integrated flux Sigma-derivative (erg/s/g). More... | |
double | dF_dT (double T, double Sigma, const Detector *detect=nullptr, double sr=1.0) const |
Graybody integrated flux T-derivative (erg/cm^2/s/K). More... | |
double | dInu_dS (double nu, double T, double Sigma) const |
Graybody specific intensity Sigma-derivative (erg/s/Hz/sr/g). More... | |
double | dInu_dT (double nu, double T, double Sigma) const |
Graybody specific intensity T-derivative (erg/cm^2/s/Hz/sr/K). More... | |
Dust & | dust () noexcept |
Dust model reference. More... | |
const Dust & | dust () const noexcept |
Dust model reference (const). More... | |
double | F (double T, double Sigma, const Detector *detect=nullptr, double sr=1.0) const |
Graybody integrated flux (erg/cm^2/s). More... | |
double | Inu (double nu, double T, double Sigma) const |
Graybody specific intensity (erg/cm^2/s/Hz/sr). More... | |
Static Public Attributes | |
static constexpr double | B0 = 2.0*h_Planck/(c_light*c_light) |
Blackbody convenience value. More... | |
Protected Member Functions | |
double | Itot (double(Graybody::*I)(double, double, double) const, double T, double Sigma, const Detector *detect=nullptr, double sr=1.0) const |
Graybody integrated flux variant (erg/cm^2/s/??). More... | |
Protected Attributes | |
Dust & | dust_ |
Dust model. More... | |
double | err_ |
Integration relative error. More... | |
gsl_integration_workspace * | integ_ |
Integration workspace. More... | |
Static Protected Attributes | |
static constexpr int | intKey = GSL_INTEG_GAUSS41 |
Integration rule key. More... | |
static constexpr size_t | subLimit = 512 |
Integral subdivision limit. More... | |
Graybody emission model.
A graybody is a blackbody emitter modified by an optical depth factor:
\[ I^{\rm gray}_\nu = (1 - e^{-\tau})B_\nu(T), \]
where \(\tau = \tau(\nu; \Sigma)\) is the optical depth, \(\Sigma\) is the mass column density and \(B_\nu(T)\) is the Planck function:
\[ B_\nu(T) = {2h\nu^3\over c^2}{1\over e^{h\nu/kT}-1}. \]
The functional form for \(\tau\) depends on the details of the dust model. This class accepts an arbitrary dust opacity model.
Definition at line 33 of file Graybody.h.
|
inline |
Default constructor.
[in] | dust | Dust model. |
[in] | err | Relative error target for integrations. |
Definition at line 41 of file Graybody.h.
|
inline |
Copy constructor.
Definition at line 46 of file Graybody.h.
|
inline |
Blackbody specific intensity (erg/cm^2/s/Hz/sr).
[in] | nu | Frequency (Hz). |
[in] | T | Temperature (K). |
Definition at line 58 of file Graybody.h.
References B0, manticore::h_Planck, and manticore::k_Boltzman.
|
inline |
Blackbody specific intensity T-derivative (erg/cm^2/s/Hz/sr/K).
[in] | nu | Frequency (Hz). |
[in] | T | Temperature (K). |
Definition at line 64 of file Graybody.h.
References B0, manticore::h_Planck, and manticore::k_Boltzman.
Referenced by dInu_dT().
|
inline |
Graybody integrated flux Sigma-derivative (erg/s/g).
[in] | T | Temperature (K). |
[in] | Sigma | Mass density (g/cm^2). |
[in] | detect | Detector instance (optional). |
[in] | sr | Solid angle (sr, optional). |
Definition at line 115 of file Graybody.h.
References dInu_dS(), and Itot().
Referenced by manticore::ccfCheck().
|
inline |
Graybody integrated flux T-derivative (erg/cm^2/s/K).
[in] | T | Temperature (K). |
[in] | Sigma | Mass density (g/cm^2). |
[in] | detect | Detector instance (optional). |
[in] | sr | Solid angle (sr, optional). |
Definition at line 106 of file Graybody.h.
References dInu_dT(), and Itot().
Referenced by manticore::ccfCheck().
|
inline |
Graybody specific intensity Sigma-derivative (erg/s/Hz/sr/g).
[in] | nu | Frequency (Hz). |
[in] | T | Temperature (K). |
[in] | Sigma | Mass density (g/cm^2). |
Definition at line 87 of file Graybody.h.
References Bnu(), dust_, and manticore::Dust::kappa().
Referenced by dF_dS().
|
inline |
Graybody specific intensity T-derivative (erg/cm^2/s/Hz/sr/K).
[in] | nu | Frequency (Hz). |
[in] | T | Temperature (K). |
[in] | Sigma | Mass density (g/cm^2). |
Definition at line 80 of file Graybody.h.
References dBnu_dT(), dust_, and manticore::Dust::kappa().
Referenced by dF_dT().
|
inlinenoexcept |
|
inlinenoexcept |
|
inline |
Graybody integrated flux (erg/cm^2/s).
[in] | T | Temperature (K). |
[in] | Sigma | Mass density (g/cm^2). |
[in] | detect | Detector instance (optional). |
[in] | sr | Solid angle (sr, optional). |
Definition at line 97 of file Graybody.h.
Referenced by manticore::Detector::ccf(), and manticore::ccfCheck().
|
inline |
Graybody specific intensity (erg/cm^2/s/Hz/sr).
[in] | nu | Frequency (Hz). |
[in] | T | Temperature (K). |
[in] | Sigma | Mass density (g/cm^2). |
Definition at line 73 of file Graybody.h.
References Bnu(), dust_, and manticore::Dust::kappa().
Referenced by manticore::Detector::ccf(), manticore::ccfCheck(), and F().
|
protected |
Graybody integrated flux variant (erg/cm^2/s/??).
[in] | T | Temperature (K). |
[in] | Sigma | Mass density (g/cm^2). |
[in] | detect | Detector instance (optional). |
[in] | sr | Solid angle (sr, optional). |
Definition at line 45 of file Graybody.cc.
References err_, manticore::graybody::flux(), manticore::Detector::freqRange(), manticore::h_Planck, integ_, intKey, manticore::k_Boltzman, and subLimit.
Blackbody convenience value.
Definition at line 36 of file Graybody.h.
|
protected |
|
protected |
|
protected |
|
staticprotected |
|
staticprotected |