Gyoto
GyotoThermalBremsstrahlungSpectrum.h
Go to the documentation of this file.
1 
7 /*
8  Copyright 2014 Frederic Vincent
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"
29 #include <GyotoBlackBodySpectrum.h>
30 
31 namespace Gyoto {
32  namespace Spectrum {
33  class ThermalBremsstrahlung;
34  }
35 }
36 
51  protected:
52  SmartPointer<Spectrum::BlackBody> spectrumBB_;
53  double cst_;
54  double T_;
55  double Tm1_;
56  double Tm05_;
57  double massdensityCGS_;
58 
59  public:
61 
63 
67  virtual ThermalBremsstrahlung * clone() const;
68 
69  using Gyoto::Spectrum::Generic::operator();
76  virtual double operator()(double nu) const;
85 #ifndef GYOTO_SWIGIMPORTED
86  virtual double operator()(double nu,double ,double ds) const;
87 #endif
88  // NB: the second argument, opacity in the Spectrum API
89  // is useless here
90 
91  double temperature() const;
92  void temperature(double tt);
93  double massdensityCGS() const;
94  void massdensityCGS(double rho);
95 
102  double jnuCGS(double nu) const;
108  double alphanuCGS(double nu) const;
109 
110 };
111 
112 #endif
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:83
double T_
Temperature.
Definition: GyotoThermalBremsstrahlungSpectrum.h:54
Thermal brems spectrum.
Definition: GyotoThermalBremsstrahlungSpectrum.h:49
virtual ThermalBremsstrahlung * clone() const
Constructor setting T_ and cst_.
double cst_
Scaling constant.
Definition: GyotoThermalBremsstrahlungSpectrum.h:53
double alphanuCGS(double nu) const
double massdensityCGS_
Mass density in CGS UNITS (careful)
Definition: GyotoThermalBremsstrahlungSpectrum.h:57
SmartPointer< Spectrum::BlackBody > spectrumBB_
blackbody emission
Definition: GyotoThermalBremsstrahlungSpectrum.h:52
double Tm05_
1/sqrt(T)
Definition: GyotoThermalBremsstrahlungSpectrum.h:56
Spectrum of a simple object (e.g. Star)
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
Pointers performing reference counting.
Definition: GyotoProperty.h:41
Spectrum emitted by an Astrobj.
Definition: GyotoSpectrum.h:126
double Tm1_
1/T
Definition: GyotoThermalBremsstrahlungSpectrum.h:55
I_nu(nu, T) = cst_*2*h*nu^3/c^2/(exp(h*nu/k*T)-1.);.