Gyoto
GyotoPatternDiskBB.h
Go to the documentation of this file.
1 
9 /*
10  Copyright 2012-2016 Frederic Vincent, Thibaut Paumard
11 
12  This file is part of Gyoto.
13 
14  Gyoto is free software: you can redistribute it and/or modify
15  it under the terms of the GNU General Public License as published by
16  the Free Software Foundation, either version 3 of the License, or
17  (at your option) any later version.
18 
19  Gyoto is distributed in the hope that it will be useful,
20  but WITHOUT ANY WARRANTY; without even the implied warranty of
21  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22  GNU General Public License for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
26  */
27 
28 #ifndef __GyotoPatternDiskBB_H_
29 #define __GyotoPatternDiskBB_H_
30 
31 #include <iostream>
32 #include <fstream>
33 #include <iomanip>
34 
35 namespace Gyoto{
36  namespace Astrobj { class PatternDiskBB; }
37 }
38 
39 //#include <GyotoMetric.h>
40 #include <GyotoPatternDisk.h>
41 #include <GyotoBlackBodySpectrum.h>
42 
55  friend class Gyoto::SmartPointer<Gyoto::Astrobj::PatternDiskBB>;
56  protected:
57  SmartPointer<Spectrum::BlackBody> spectrumBB_;
58  private:
67  double risco_;
68  // double rmax_; ///< Maximal extension of the disk !!! see Astrobj::rmax_
69  // Constructors - Destructor
70  // -------------------------
71  public:
74 
75  PatternDiskBB();
76 
77  PatternDiskBB(const PatternDiskBB& ) ;
78  virtual PatternDiskBB* clone () const;
79 
80  virtual ~PatternDiskBB() ;
81 
82  // Accessors
83  // ---------
84  public:
85  bool spectralEmission() const;
86  void spectralEmission(bool t);
87  double risco() const;
88  void risco(double r);
89 
90  public:
92  double emission(double nu_em, double dsem,
93  double c_ph[8], double c_obj[8]=NULL) const;
94 
95  double const * getVelocity() const ;
96  void getVelocity(double const pos[4], double vel[4]) ;
97 
98  using Generic::metric;
99  void metric(SmartPointer<Metric::Generic> gg);
100 
101 };
102 
103 #endif
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
A geometrically thin, optically thick disk.
Geometrically thin disk read from FITS file with black body spectrum.
Definition: GyotoPatternDiskBB.h:54
virtual double emission(double nu_em, double dsem, double c_ph[8], double c_obj[8]=NULL) const
Specific intensity Iν
#define GYOTO_OBJECT_THREAD_SAFETY
Declare virtual bool isThreadSafe() const.
Definition: GyotoObject.h:99
SmartPointer< Spectrum::BlackBody > spectrumBB_
emission law
Definition: GyotoPatternDiskBB.h:57
double risco_
ISCO radius (if non-Kerr metric, not computable directly)
Definition: GyotoPatternDiskBB.h:67
virtual PatternDiskBB * clone() const
Cloner.
Geometrically thin disk read from FITS file.
Definition: GyotoPatternDisk.h:51
double emission(double nu_em, double dsem, double c_ph[8], double c_obj[8]=NULL) const
Specific intensity Iν
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
Pointers performing reference counting.
Definition: GyotoProperty.h:45
virtual SmartPointer< Metric::Generic > metric() const
Get the Metric gg_.
int SpectralEmission_
1 if spectral emission.
Definition: GyotoPatternDiskBB.h:66
I_nu(nu, T) = cst_*2*h*nu^3/c^2/(exp(h*nu/k*T)-1.);.
double const * getVelocity() const
Get PatternDisk::velocity_.