Gyoto
GyotoDisk3D_BB.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 __GyotoDisk3D_BB_H_
29 #define __GyotoDisk3D_BB_H_
30 
31 #include <iostream>
32 #include <fstream>
33 #include <iomanip>
34 #include <cstring>
35 
36 namespace Gyoto{
37  namespace Astrobj { class Disk3D_BB; }
38 }
39 
40 #include <GyotoDisk3D.h>
41 #include <GyotoBlackBodySpectrum.h>
42 
59  friend class Gyoto::SmartPointer<Gyoto::Astrobj::Disk3D_BB>;
60  protected:
61  SmartPointer<Spectrum::BlackBody> spectrumBB_;
62 
63  private:
64  char* dirname_;
65  double tinit_;
66  double dt_;
67  int nb_times_;
68 
74  double ** temperature_array_;
75 
82  double ** velocity_array_;
83 
84  // Constructors - Destructor
85  // -------------------------
86  public:
87  Disk3D_BB();
88 
89  Disk3D_BB(const Disk3D_BB& ) ;
90  virtual Disk3D_BB* clone () const;
91 
92  virtual ~Disk3D_BB() ;
93 
94  // Accessors
95  // ---------
96  public:
97 
98  void setMetric(SmartPointer<Metric::Generic> gg);
99  virtual int setParameter(std::string name, std::string content);
100 
101  double emission1date(double nu_em, double dsem,
102  double c_ph[8], double c_obj[8]) const;
103 
104  virtual double emission(double nu_em, double dsem,
105  double c_ph[8], double c_obj[8]) const;
106 
107  void getVelocity(double const pos[4], double vel[4]);
108  double const * const getVelocity() const;
109 
110  protected:
111 
112  void copyQuantities(int iq) ;
113 
114  public:
115 #ifdef GYOTO_USE_XERCES
116  virtual void fillElement(FactoryMessenger *fmp) const ;
117 #endif
118 
119 };
120 
121 #endif