Gyoto
GyotoPatternDiskBB.h
Go to the documentation of this file.
1 
13 /*
14  Copyright 2011 Frederic Vincent, Thibaut Paumard
15 
16  This file is part of Gyoto.
17 
18  Gyoto is free software: you can redistribute it and/or modify
19  it under the terms of the GNU General Public License as published by
20  the Free Software Foundation, either version 3 of the License, or
21  (at your option) any later version.
22 
23  Gyoto is distributed in the hope that it will be useful,
24  but WITHOUT ANY WARRANTY; without even the implied warranty of
25  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26  GNU General Public License for more details.
27 
28  You should have received a copy of the GNU General Public License
29  along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
30  */
31 
32 #ifndef __GyotoPatternDiskBB_H_
33 #define __GyotoPatternDiskBB_H_
34 
35 #include <iostream>
36 #include <fstream>
37 #include <iomanip>
38 
39 namespace Gyoto{
40  namespace Astrobj { class PatternDiskBB; }
41 }
42 
43 //#include <GyotoMetric.h>
44 #include <GyotoPatternDisk.h>
45 #include <GyotoBlackBodySpectrum.h>
46 
64  friend class Gyoto::SmartPointer<Gyoto::Astrobj::PatternDiskBB>;
65  protected:
66  SmartPointer<Spectrum::BlackBody> spectrumBB_;
67 
68  private:
76  int PLDisk_;
77  double PLSlope_;
78  double PLRho_;
79  double rPL_;
80  // double rmax_; ///< Maximal extension of the disk !!! see Astrobj::rmax_
81  // Constructors - Destructor
82  // -------------------------
83  public:
84  PatternDiskBB();
85 
86  PatternDiskBB(const PatternDiskBB& ) ;
87  virtual PatternDiskBB* clone () const;
88 
89  virtual ~PatternDiskBB() ;
90 
91  // Accessors
92  // ---------
93  public:
94 
95  int setParameter(std::string name, std::string content, std::string unit);
96 
97  public:
99  double emission(double nu_em, double dsem,
100  double c_ph[8], double c_obj[8]) const;
101 
102  double const * getVelocity() const ;
103  void getVelocity(double const pos[4], double vel[4]) ;
104 
105  void setMetric(SmartPointer<Metric::Generic> gg);
106 
107  public:
108 #ifdef GYOTO_USE_XERCES
109  void fillElement(FactoryMessenger *fmp) const ;
110 #endif
111 
112 };
113 
114 #endif