Gyoto
GyotoThermalBremsstrahlungSpectrum.h
Go to the documentation of this file.
1
7/*
8 Copyright 2014 Frederic Vincent, Thibaut Paumard
9
10 This file is part of Gyoto.
11
12 Gyoto is free software: you can redistribute it and/or modify
13 it under the terms of the GNU General Public License as published by
14 the Free Software Foundation, either version 3 of the License, or
15 (at your option) any later version.
16
17 Gyoto is distributed in the hope that it will be useful,
18 but WITHOUT ANY WARRANTY; without even the implied warranty of
19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 GNU General Public License for more details.
21
22 You should have received a copy of the GNU General Public License
23 along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
24 */
25
26#ifndef __GyotoThermalBremsstrahlungSpectrum_H_
27#define __GyotoThermalBremsstrahlungSpectrum_H_
28#include "GyotoSpectrum.h"
30
31namespace Gyoto {
32 namespace Spectrum {
33 class ThermalBremsstrahlung;
34 }
35}
36
51 protected:
52 SmartPointer<Spectrum::BlackBody> spectrumBB_;
53 double T_;
54 double Tm1_;
55 double Tm05_;
57
58 public:
60
62 ThermalBremsstrahlung(const ThermalBremsstrahlung &);
63 virtual ThermalBremsstrahlung * clone() const;
64
65 using Gyoto::Spectrum::Generic::operator();
72 virtual double operator()(double nu) const;
81#ifndef GYOTO_SWIGIMPORTED
82 virtual double operator()(double nu,double ,double ds) const;
83#endif
84 // NB: the second argument, opacity in the Spectrum API
85 // is useless here
86
87 double temperature() const;
88 void temperature(double tt);
89 double numberdensityCGS() const;
90 void numberdensityCGS(double rho);
91
98 double jnuCGS(double nu) const;
104 double alphanuCGS(double nu) const;
105
110 void radiativeQ(double jnu[], // output
111 double alphanu[], // output
112 double const nu_ems[],
113 size_t nbnu
114 );
115
116};
117
118#endif
I_nu(nu, T) = cst_*2*h*nu^3/c^2/(exp(h*nu/k*T)-1.);.
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
Spectrum of a simple object (e.g. Star)
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:135
Spectrum emitted by an Astrobj.
Definition: GyotoSpectrum.h:137
Thermal brems spectrum.
Definition: GyotoThermalBremsstrahlungSpectrum.h:49
double Tm1_
1/T
Definition: GyotoThermalBremsstrahlungSpectrum.h:54
double numberdensityCGS_
Number density in CGS UNITS (careful)
Definition: GyotoThermalBremsstrahlungSpectrum.h:56
virtual ThermalBremsstrahlung * clone() const
Cloner.
double alphanuCGS(double nu) const
void radiativeQ(double jnu[], double alphanu[], double const nu_ems[], size_t nbnu)
double Tm05_
1/sqrt(T)
Definition: GyotoThermalBremsstrahlungSpectrum.h:55
double T_
Temperature.
Definition: GyotoThermalBremsstrahlungSpectrum.h:53
SmartPointer< Spectrum::BlackBody > spectrumBB_
blackbody emission
Definition: GyotoThermalBremsstrahlungSpectrum.h:52
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43