Gyoto
GyotoThinDiskPL.h
Go to the documentation of this file.
1 
8 /*
9  Copyright 2012-2018 Frederic Vincent, Thibaut Paumard
10 
11  This file is part of Gyoto.
12 
13  Gyoto is free software: you can redistribute it and/or modify
14  it under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  Gyoto is distributed in the hope that it will be useful,
19  but WITHOUT ANY WARRANTY; without even the implied warranty of
20  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  GNU General Public License for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
25  */
26 
27 #ifndef __GyotoThinDiskPL_H_
28 #define __GyotoThinDiskPL_H_
29 
30 #include <iostream>
31 #include <fstream>
32 #include <iomanip>
33 
34 namespace Gyoto{
35  namespace Astrobj { class ThinDiskPL; }
36 }
37 
38 //#include <GyotoMetric.h>
39 #include <GyotoThinDisk.h>
40 #include <GyotoBlackBodySpectrum.h>
41 
53  private:
54  double slope_;
55  double Tinner_;
56  protected:
57  SmartPointer<Spectrum::BlackBody> spectrumBB_;
58 
59  // Constructors - Destructor
60  // -------------------------
61  public:
64 
65  ThinDiskPL();
66 
67  ThinDiskPL(const ThinDiskPL& ) ;
68  virtual ThinDiskPL* clone () const;
69 
70  virtual ~ThinDiskPL() ;
71 
72  // Accessors
73  // ---------
74  public:
75  void Slope(double);
76  double Slope()const;
77  void Tinner(double);
78  double Tinner()const;
79 
80  public:
81  using ThinDisk::emission;
82  virtual double emission(double nu_em, double dsem,
83  state_t const &c_ph,double const c_obj[8]=NULL) const;
84 };
85 
86 #endif
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
#define GYOTO_OBJECT_THREAD_SAFETY
Declare virtual bool isThreadSafe() const.
Definition: GyotoObject.h:99
Geometrically thin disk with black-body emission.
Definition: GyotoThinDiskPL.h:51
virtual ThinDiskPL * clone() const
Cloner.
Geometrically thin disks and rings.
Definition: GyotoThinDisk.h:68
Geometrically thin disks and rings.
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
Pointers performing reference counting.
Definition: GyotoProperty.h:45
I_nu(nu, T) = cst_*2*h*nu^3/c^2/(exp(h*nu/k*T)-1.);.
double Tinner_
Reference temperature assumed at inner radius.
Definition: GyotoThinDiskPL.h:55
virtual double emission(double nu_em, double dsem, state_t const &c_ph, double const c_obj[8]=NULL) const
Specific intensity Iν
SmartPointer< Spectrum::BlackBody > spectrumBB_
disk black body
Definition: GyotoThinDiskPL.h:57
virtual double emission(double nu_em, double dsem, state_t const &coord_ph, double const coord_obj[8]=NULL) const
Specific intensity Iν
double slope_
Power law index.
Definition: GyotoThinDiskPL.h:54