Gyoto
GyotoPatternDiskBB.h
Go to the documentation of this file.
1 
9 /*
10  Copyright 2011 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 
59  private:
60  int SpectralEmission_, PLDisk_;
61 
62  double PLSlope_, PLRho_, rPL_, rmax_;
63 
64  // Constructors - Destructor
65  // -------------------------
66  public:
67  PatternDiskBB();
68 
69  PatternDiskBB(const PatternDiskBB& ) ;
70  virtual PatternDiskBB* clone () const;
71 
72  virtual ~PatternDiskBB() ;
73 
74  // Accessors
75  // ---------
76  public:
77 
78  int setParameter(std::string name, std::string content);
79 
80  public:
81  double emission(double nu_em, double dsem,
82  double c_ph[8], double c_obj[8]) const;
83 
84  double const * const getVelocity() const ;
85  void getVelocity(double const pos[4], double vel[4]) ;
86 
87  void setMetric(SmartPointer<Metric::Generic> gg);
88 
89  public:
90 #ifdef GYOTO_USE_XERCES
91  void fillElement(FactoryMessenger *fmp) const ;
92 #endif
93 
94 };
95 
96 #endif