Gyoto
GyotoDynamicalDisk.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 __GyotoDynamicalDisk_H_
28 #define __GyotoDynamicalDisk_H_
29 
30 #include <iostream>
31 #include <fstream>
32 #include <iomanip>
33 #include <cstring>
34 
35 namespace Gyoto{
36  namespace Astrobj { class DynamicalDisk; }
37 }
38 
39 //#include <GyotoMetric.h>
40 #include <GyotoPatternDiskBB.h>
41 
51  friend class Gyoto::SmartPointer<Gyoto::Astrobj::DynamicalDisk>;
52  private:
53  char* dirname_;
54  double tinit_;
55  double dt_;
56  int nb_times_;
57 
63  double ** emission_array_;
64 
65  double ** opacity_array_;
66 
72  double ** velocity_array_;
73 
77  double ** radius_array_;
78 
79  double * dnu_array_;
80  double * nu0_array_;
81  size_t * nnu_array_;
82 
83  double * dphi_array_;
84  size_t * nphi_array_;
85 
86  double * dr_array_;
87  size_t * nr_array_;
88  // double r0_; // this is rin_
89 
90  // Constructors - Destructor
91  // -------------------------
92  public:
93  DynamicalDisk();
94 
95  DynamicalDisk(const DynamicalDisk& ) ;
96  virtual DynamicalDisk* clone () const;
97 
98  virtual ~DynamicalDisk() ;
99 
100  // Accessors
101  // ---------
102  public:
103 
104  virtual int setParameter(std::string name, std::string content);
105 
106  virtual double emission(double nu_em, double dsem,
107  double c_ph[8], double c_obj[8]) const;
108 
109  void getVelocity(double const pos[4], double vel[4]);
110  double const * const getVelocity() const;
111 
112  protected:
113 
114  void copyQuantities(int iq) ;
115 
116  public:
117 #ifdef GYOTO_USE_XERCES
118  virtual void fillElement(FactoryMessenger *fmp) const ;
119 #endif
120 
121 };
122 
123 #endif