Gyoto
GyotoThinDiskPL.h
Go to the documentation of this file.
1 
8 /*
9  Copyright 2011 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 
56  friend class Gyoto::SmartPointer<Gyoto::Astrobj::ThinDiskPL>;
57  private:
58  double PLSlope_;
59  double PLRho_;
60  double PLRadRef_;
61  protected:
62  SmartPointer<Spectrum::BlackBody> spectrumBB_;
63 
64  // Constructors - Destructor
65  // -------------------------
66  public:
67 
68  ThinDiskPL();
69 
70  ThinDiskPL(const ThinDiskPL& ) ;
71  virtual ThinDiskPL* clone () const;
72 
73  virtual ~ThinDiskPL() ;
74 
75  // Accessors
76  // ---------
77  public:
78  using ThinDisk::emission;
79  virtual double emission(double nu_em, double dsem,
80  double c_ph[8],double c_obj[8]) const;
81 
82  private:
86  double emissionBB(double nu, double co[8]) const;
87 
88  public:
89  int setParameter(std::string name, std::string content, std::string unit);
90 #ifdef GYOTO_USE_XERCES
91  virtual void fillElement(FactoryMessenger *fmp) const ;
92 #endif
93 
94 };
95 
96 #endif