Manticore
Version 1.5.3
Physics of Molecular Clouds
|
Graybody emission model. More...
#include <Graybody.h>
Public Member Functions | |
Graybody (Dust &dust, double err=1e-3) | |
Single dust model constructor. More... | |
Graybody (Dust &dusth, Dust &dustc, double err=1e-3) | |
Dual dust model constructor. More... | |
Graybody (const Graybody &g) | |
Copy constructor. More... | |
~Graybody () | |
Destructor. 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, double sr=1.0) const |
Single-temperature graybody integrated flux Sigma-derivative (erg/s/g). More... | |
double | dF_dSc (double Tc, double Sigmac, double Th, double Sigmah, const Detector *detect, double sr=1.0) const |
Two-temperature graybody integrated flux Sigmac-derivative (erg/s/g). More... | |
double | dF_dSh (double Tc, double Sigmac, double Th, double Sigmah, const Detector *detect, double sr=1.0) const |
Two-temperature graybody integrated flux Sigmah-derivative (erg/s/g). More... | |
double | dF_dT (double T, double Sigma, const Detector *detect, double sr=1.0) const |
Single-temperature graybody integrated flux T-derivative (erg/cm^2/s/K). More... | |
double | dF_dTc (double Tc, double Sigmac, double Th, double Sigmah, const Detector *detect, double sr=1.0) const |
Two-temperature graybody integrated flux Tc-derivative (erg/cm^2/s/K). More... | |
double | dF_dTh (double Tc, double Sigmac, double Th, double Sigmah, const Detector *detect, double sr=1.0) const |
Two-temperature graybody integrated flux Th-derivative (erg/cm^2/s/K). More... | |
double | dInu_dS (double nu, double T, double Sigma) const |
Single-temperature graybody specific intensity Sigma-derivative (erg/s/Hz/sr/g). More... | |
double | dInu_dSc (double nu, double Tc, double Sigmac, double Th, double Sigmah) const |
Two-temperature graybody specific intensity Sigmac-derivative (erg/s/Hz/sr/g). More... | |
double | dInu_dSh (double nu, double Tc, double Sigmac, double Th, double Sigmah) const |
Two-temperature graybody specific intensity Sigmah-derivative (erg/s/Hz/sr/g). More... | |
double | dInu_dT (double nu, double T, double Sigma) const |
Single-temperature graybody specific intensity T-derivative (erg/cm^2/s/Hz/sr/K). More... | |
double | dInu_dTc (double nu, double Tc, double Sigmac, double Th, double Sigmah) const |
Two-temperature graybody specific intensity Tc-derivative (erg/cm^2/s/Hz/sr/K). More... | |
double | dInu_dTh (double nu, double Tc, double Sigmac, double Th, double Sigmah) const |
Two-temperature graybody specific intensity Th-derivative (erg/cm^2/s/Hz/sr/K). More... | |
double | F (double T, double Sigma, const Detector *detect, double sr=1.0) const |
Single-temperature graybody integrated flux (erg/cm^2/s). More... | |
double | F (double Tc, double Sigmac, double Th, double Sigmah, const Detector *detect, double sr=1.0) const |
Two-temperature graybody integrated flux (erg/cm^2/s). More... | |
double | Inu (double nu, double T, double Sigma) const |
Single-temperature graybody specific intensity (erg/cm^2/s/Hz/sr). More... | |
double | Inu (double nu, double Tc, double Sigmac, double Th, double Sigmah) const |
Two-temperature 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... | |
static constexpr double | Tcmb = 2.73 |
CMB temperature (K). More... | |
Protected Member Functions | |
double | Itot (double(Graybody::*I)(double, double, double) const, double T, double Sigma, const Detector *detect, double sr=1.0) const |
Single-temperature graybody integrated flux variant (erg/cm^2/s/??). More... | |
double | Itot2 (double(Graybody::*I)(double, double, double, double, double) const, double Tc, double Sigmac, double Th, double Sigmah, const Detector *detect, double sr=1.0) const |
Two-temperature graybody integrated flux variant (erg/cm^2/s/??). More... | |
Protected Attributes | |
gsl_interp_accel * | cacc_ = nullptr |
bool | dualDust_ |
Whether the two dust models differ;. More... | |
std::pair< Dust &, Dust & > | dust_ |
Dust models. More... | |
double | err_ |
Integration relative error. More... | |
gsl_interp_accel * | hacc_ = nullptr |
Interpolation index accelerators. 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.
Both single- and dual-temperature emission models are supported. Single-temperature models contain a simple uniform slab of material. Dual-temperature models consist of a slab of "cold" (or "core") material sandwiched between two identical layers of "hot" (or "halo") material.
Definition at line 40 of file Graybody.h.
|
inline |
Single dust model constructor.
[in] | dust | Dust model. |
[in] | err | Relative error target for integrations. |
Definition at line 51 of file Graybody.h.
Dual dust model constructor.
[in] | dusth | Hot/halo dust model. |
[in] | dustc | Cold/core dust model. |
[in] | err | Relative error target for integrations. |
Definition at line 59 of file Graybody.h.
|
inline |
|
inline |
|
inline |
Blackbody specific intensity (erg/cm^2/s/Hz/sr).
[in] | nu | Frequency (Hz). |
[in] | T | Temperature (K). |
Definition at line 77 of file Graybody.h.
References B0, manticore::h_Planck, and manticore::k_Boltzman.
Referenced by dInu_dS(), dInu_dSc(), dInu_dSh(), and Inu().
|
inline |
Blackbody specific intensity T-derivative (erg/cm^2/s/Hz/sr/K).
[in] | nu | Frequency (Hz). |
[in] | T | Temperature (K). |
Definition at line 83 of file Graybody.h.
References B0, manticore::h_Planck, and manticore::k_Boltzman.
Referenced by dInu_dT(), dInu_dTc(), and dInu_dTh().
|
inline |
Single-temperature graybody integrated flux Sigma-derivative (erg/s/g).
[in] | T | Temperature (K). |
[in] | Sigma | Mass density (g/cm^2). |
[in] | detect | Detector instance. |
[in] | sr | Solid angle (sr, optional). |
Definition at line 216 of file Graybody.h.
References dInu_dS(), and Itot().
Referenced by manticore::ccfCheck().
|
inline |
Two-temperature graybody integrated flux Sigmac-derivative (erg/s/g).
[in] | Tc | Cold/core temperature (K). |
[in] | Sigmac | Cold/core mass density (g/cm^2). |
[in] | Th | Hot/halo temperature (K). |
[in] | Sigmah | Hot/halo mass density (g/cm^2). |
[in] | detect | Detector instance. |
[in] | sr | Solid angle (sr, optional). |
Definition at line 249 of file Graybody.h.
References dInu_dSc(), and Itot2().
|
inline |
Two-temperature graybody integrated flux Sigmah-derivative (erg/s/g).
[in] | Tc | Cold/core temperature (K). |
[in] | Sigmac | Cold/core mass density (g/cm^2). |
[in] | Th | Hot/halo temperature (K). |
[in] | Sigmah | Hot/halo mass density (g/cm^2). |
[in] | detect | Detector instance. |
[in] | sr | Solid angle (sr, optional). |
Definition at line 271 of file Graybody.h.
References dInu_dSh(), and Itot2().
|
inline |
Single-temperature 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. |
[in] | sr | Solid angle (sr, optional). |
Definition at line 207 of file Graybody.h.
References dInu_dT(), and Itot().
Referenced by manticore::ccfCheck().
|
inline |
Two-temperature graybody integrated flux Tc-derivative (erg/cm^2/s/K).
[in] | Tc | Cold/core temperature (K). |
[in] | Sigmac | Cold/core mass density (g/cm^2). |
[in] | Th | Hot/halo temperature (K). |
[in] | Sigmah | Hot/halo mass density (g/cm^2). |
[in] | detect | Detector instance. |
[in] | sr | Solid angle (sr, optional). |
Definition at line 238 of file Graybody.h.
References dInu_dTc(), and Itot2().
|
inline |
Two-temperature graybody integrated flux Th-derivative (erg/cm^2/s/K).
[in] | Tc | Cold/core temperature (K). |
[in] | Sigmac | Cold/core mass density (g/cm^2). |
[in] | Th | Hot/halo temperature (K). |
[in] | Sigmah | Hot/halo mass density (g/cm^2). |
[in] | detect | Detector instance. |
[in] | sr | Solid angle (sr, optional). |
Definition at line 260 of file Graybody.h.
References dInu_dTh(), and Itot2().
|
inline |
|
inline |
Two-temperature graybody specific intensity Sigmac-derivative (erg/s/Hz/sr/g).
[in] | nu | Frequency (Hz). |
[in] | Tc | Cold/core temperature (K). |
[in] | Sigmac | Cold/core mass density (g/cm^2). |
[in] | Th | Hot/halo temperature (K). |
[in] | Sigmah | Hot/halo mass density (g/cm^2). |
Definition at line 153 of file Graybody.h.
References Bnu(), cacc_, dualDust_, dust_, and hacc_.
Referenced by dF_dSc().
|
inline |
Two-temperature graybody specific intensity Sigmah-derivative (erg/s/Hz/sr/g).
[in] | nu | Frequency (Hz). |
[in] | Tc | Cold/core temperature (K). |
[in] | Sigmac | Cold/core mass density (g/cm^2). |
[in] | Th | Hot/halo temperature (K). |
[in] | Sigmah | Hot/halo mass density (g/cm^2). |
Definition at line 184 of file Graybody.h.
References Bnu(), cacc_, dualDust_, dust_, and hacc_.
Referenced by dF_dSh().
|
inline |
|
inline |
Two-temperature graybody specific intensity Tc-derivative (erg/cm^2/s/Hz/sr/K).
[in] | nu | Frequency (Hz). |
[in] | Tc | Cold/core temperature (K). |
[in] | Sigmac | Cold/core mass density (g/cm^2). |
[in] | Th | Hot/halo temperature (K). |
[in] | Sigmah | Hot/halo mass density (g/cm^2). |
Definition at line 138 of file Graybody.h.
References cacc_, dBnu_dT(), dualDust_, dust_, and hacc_.
Referenced by dF_dTc().
|
inline |
Two-temperature graybody specific intensity Th-derivative (erg/cm^2/s/Hz/sr/K).
[in] | nu | Frequency (Hz). |
[in] | Tc | Cold/core temperature (K). |
[in] | Sigmac | Cold/core mass density (g/cm^2). |
[in] | Th | Hot/halo temperature (K). |
[in] | Sigmah | Hot/halo mass density (g/cm^2). |
Definition at line 168 of file Graybody.h.
References cacc_, dBnu_dT(), dualDust_, dust_, and hacc_.
Referenced by dF_dTh().
|
inline |
Single-temperature graybody integrated flux (erg/cm^2/s).
[in] | T | Temperature (K). |
[in] | Sigma | Mass density (g/cm^2). |
[in] | detect | Detector instance. |
[in] | sr | Solid angle (sr, optional). |
Definition at line 198 of file Graybody.h.
Referenced by manticore::Detector::ccf(), and manticore::ccfCheck().
|
inline |
Two-temperature graybody integrated flux (erg/cm^2/s).
[in] | Tc | Cold/core temperature (K). |
[in] | Sigmac | Cold/core mass density (g/cm^2). |
[in] | Th | Hot/halo temperature (K). |
[in] | Sigmah | Hot/halo mass density (g/cm^2). |
[in] | detect | Detector instance. |
[in] | sr | Solid angle (sr, optional). |
Definition at line 227 of file Graybody.h.
|
inline |
Single-temperature 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 92 of file Graybody.h.
References Bnu(), CMB, dust_, hacc_, and Tcmb.
Referenced by manticore::Detector::ccf(), manticore::ccfCheck(), and F().
|
inline |
Two-temperature graybody specific intensity (erg/cm^2/s/Hz/sr).
[in] | nu | Frequency (Hz). |
[in] | Tc | Cold/core temperature (K). |
[in] | Sigmac | Cold/core mass density (g/cm^2). |
[in] | Th | Hot/halo temperature (K). |
[in] | Sigmah | Hot/halo mass density (g/cm^2). |
Definition at line 121 of file Graybody.h.
|
protected |
Single-temperature graybody integrated flux variant (erg/cm^2/s/??).
[in] | I | Specific flux integration function. |
[in] | T | Temperature (K). |
[in] | Sigma | Mass density (g/cm^2). |
[in] | detect | Detector instance. |
[in] | sr | Solid angle (sr, optional). |
Definition at line 62 of file Graybody.cc.
References err_, std::pair::first, manticore::graybody::flux(), manticore::Detector::freqRange(), mutils::kgauss_r(), and std::pair::second.
|
protected |
Two-temperature graybody integrated flux variant (erg/cm^2/s/??).
[in] | I | Specific flux integration function. |
[in] | Tc | Cold/core temperature (K). |
[in] | Sigmac | Cold/core mass density (g/cm^2). |
[in] | Th | Hot/halo temperature (K). |
[in] | Sigmah | Hot/halo mass density (g/cm^2). |
[in] | detect | Detector instance. |
[in] | sr | Solid angle (sr, optional). |
Definition at line 73 of file Graybody.cc.
References err_, std::pair::first, manticore::graybody::flux2(), manticore::Detector::freqRange(), mutils::kgauss_r(), and std::pair::second.
Referenced by dF_dSc(), dF_dSh(), dF_dTc(), dF_dTh(), and F().
Blackbody convenience value.
Definition at line 43 of file Graybody.h.
|
protected |
Definition at line 310 of file Graybody.h.
Referenced by dInu_dSc(), dInu_dSh(), dInu_dTc(), dInu_dTh(), Inu(), and ~Graybody().
|
protected |
Whether the two dust models differ;.
Definition at line 302 of file Graybody.h.
Referenced by dInu_dSc(), dInu_dSh(), dInu_dTc(), dInu_dTh(), and Inu().
Dust models.
Definition at line 299 of file Graybody.h.
Referenced by dInu_dS(), dInu_dSc(), dInu_dSh(), dInu_dT(), dInu_dTc(), dInu_dTh(), Graybody(), and Inu().
|
protected |
Integration relative error.
Definition at line 305 of file Graybody.h.
|
protected |
Interpolation index accelerators.
Definition at line 309 of file Graybody.h.
Referenced by dInu_dS(), dInu_dSc(), dInu_dSh(), dInu_dT(), dInu_dTc(), dInu_dTh(), Inu(), and ~Graybody().
|
static |