Manticore
Version 2.0alpha
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 |
Single-temperature graybody integrated flux Sigma-derivative (erg/s/g). More... | |
double | dF_dSc (double Tc, double Sigmac, double Th=0.0, double Sigmah=0.0, const Detector *detect=nullptr, 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=0.0, double Sigmah=0.0, const Detector *detect=nullptr, 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=nullptr, 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=0.0, double Sigmah=0.0, const Detector *detect=nullptr, 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=0.0, double Sigmah=0.0, const Detector *detect=nullptr, 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=0.0, double Sigmah=0.0) 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=0.0, double Sigmah=0.0) 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=0.0, double Sigmah=0.0) 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=0.0, double Sigmah=0.0) const |
Two-temperature graybody specific intensity Th-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 |
Single-temperature graybody integrated flux (erg/cm^2/s). More... | |
double | F (double Tc, double Sigmac, double Th=0.0, double Sigmah=0.0, const Detector *detect=nullptr, double sr=1.0) const |
Two-temperature graybody integrated flux (erg/cm^2/s). More... | |
double | Inu (double nu, double T, double Sigma) const |
Simgle-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... | |
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 |
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=0.0, double Sigmah=0.0, const Detector *detect=nullptr, double sr=1.0) const |
Two-temperature 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.
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 38 of file Graybody.h.
|
inline |
Default constructor.
[in] | dust | Dust model. |
[in] | err | Relative error target for integrations. |
Definition at line 46 of file Graybody.h.
|
inline |
Copy constructor.
Definition at line 51 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 63 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 69 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 (optional). |
[in] | sr | Solid angle (sr, optional). |
Definition at line 194 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 (optional). |
[in] | sr | Solid angle (sr, optional). |
Definition at line 227 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 (optional). |
[in] | sr | Solid angle (sr, optional). |
Definition at line 249 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 (optional). |
[in] | sr | Solid angle (sr, optional). |
Definition at line 185 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 (optional). |
[in] | sr | Solid angle (sr, optional). |
Definition at line 216 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 (optional). |
[in] | sr | Solid angle (sr, optional). |
Definition at line 238 of file Graybody.h.
References dInu_dTh(), and Itot2().
|
inline |
Single-temperature 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 94 of file Graybody.h.
References Bnu(), dust_, and manticore::Dust::kappa().
Referenced by dF_dS().
|
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 135 of file Graybody.h.
References Bnu(), dust_, and manticore::Dust::kappa().
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 163 of file Graybody.h.
References Bnu(), dust_, and manticore::Dust::kappa().
Referenced by dF_dSh().
|
inline |
Single-temperature 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 86 of file Graybody.h.
References dBnu_dT(), dust_, and manticore::Dust::kappa().
Referenced by dF_dT().
|
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 121 of file Graybody.h.
References dBnu_dT(), dust_, and manticore::Dust::kappa().
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 149 of file Graybody.h.
References dBnu_dT(), dust_, and manticore::Dust::kappa().
Referenced by dF_dTh().
|
inlinenoexcept |
|
inlinenoexcept |
|
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 (optional). |
[in] | sr | Solid angle (sr, optional). |
Definition at line 176 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 (optional). |
[in] | sr | Solid angle (sr, optional). |
Definition at line 205 of file Graybody.h.
|
inline |
Simgle-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 78 of file Graybody.h.
References Bnu(), dust_, and manticore::Dust::kappa().
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 105 of file Graybody.h.
References Bnu(), dust_, and manticore::Dust::kappa().
|
protected |
Single-temperature 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 55 of file Graybody.cc.
References err_, manticore::graybody::flux(), manticore::Detector::freqRange(), manticore::h_Planck, integ_, intKey, manticore::k_Boltzman, and subLimit.
|
protected |
Two-temperature graybody integrated flux variant (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 (optional). |
[in] | sr | Solid angle (sr, optional). |
Definition at line 73 of file Graybody.cc.
References err_, manticore::graybody::flux(), manticore::Detector::freqRange(), manticore::h_Planck, manticore::k_Boltzman, and mutils::kgauss_r().
Referenced by dF_dSc(), dF_dSh(), dF_dTc(), dF_dTh(), and F().
Blackbody convenience value.
Definition at line 41 of file Graybody.h.
|
protected |
Dust model.
Definition at line 281 of file Graybody.h.
Referenced by dInu_dS(), dInu_dSc(), dInu_dSh(), dInu_dT(), dInu_dTc(), dInu_dTh(), dust(), and Inu().
|
protected |
Integration relative error.
Definition at line 284 of file Graybody.h.
|
protected |
|
staticprotected |
|
staticprotected |