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 
59  double ** emission_array_;
60 
62  double ** opacity_array_;
63 
65  double ** velocity_array_;
66 
68  double ** radius_array_;
69 
71  double * dnu_array_;
72 
74  double * nu0_array_;
75 
78 
79 
81  double * dphi_array_;
82 
85 
86 
88  double * dr_array_;
89 
92 
93  // Constructors - Destructor
94  // -------------------------
95  public:
96  DynamicalDisk();
97 
98  DynamicalDisk(const DynamicalDisk& ) ;
99  virtual DynamicalDisk* clone () const;
100 
101  virtual ~DynamicalDisk() ;
102 
103  // Accessors
104  // ---------
105  public:
106 
107  virtual int setParameter(std::string name,
108  std::string content,
109  std::string unit);
110 
112  virtual double emission(double nu_em, double dsem,
113  double c_ph[8], double c_obj[8]) const;
114 
115  void getVelocity(double const pos[4], double vel[4]);
116  double const * getVelocity() const;
117 
118  protected:
119 
121 
124  void copyQuantities(int iq) ;
125 
126  public:
127 #ifdef GYOTO_USE_XERCES
128  virtual void fillElement(FactoryMessenger *fmp) const ;
129 #endif
130 
131 };
132 
133 #endif
double ** emission_array_
Array of PatternDisk::emission_ arrays.
Definition: GyotoDynamicalDisk.h:59
size_t * nr_array_
Array of PatternDisk::nr_ values.
Definition: GyotoDynamicalDisk.h:91
char * dirname_
FITS files directory.
Definition: GyotoDynamicalDisk.h:53
double dt_
Time increment between two FITS (assumed constant)
Definition: GyotoDynamicalDisk.h:55
Geometrically thin disk read from FITS file with black body spectrum and a power law extension up to ...
Definition: GyotoPatternDiskBB.h:63
Geometrically thin disk read from a set of FITS files.
Definition: GyotoDynamicalDisk.h:50
virtual void fillElement(FactoryMessenger *fmp) const
Fill the generic XML bits.
void copyQuantities(int iq)
Set underlying PatternDisk pointers to a specific date slice.
double ** velocity_array_
Array of PatternDisk::velocity_ arrays.
Definition: GyotoDynamicalDisk.h:65
double emission(double nu_em, double dsem, double c_ph[8], double c_obj[8]) const
Specific intensity Iν
double * dr_array_
Array of PatternDisk::dr_ values.
Definition: GyotoDynamicalDisk.h:88
#define size_t
If not defined in &lt;sys/types.h&gt;.
Definition: GyotoConfig.h:293
virtual double emission(double nu_em, double dsem, double c_ph[8], double c_obj[8]) const
Specific intensity Iν
virtual int setParameter(std::string name, std::string content, std::string unit)
Set parameter by name.
virtual DynamicalDisk * clone() const
Cloner.
size_t * nnu_array_
Array of PatternDisk::nu1_ values.
Definition: GyotoDynamicalDisk.h:77
double * nu0_array_
Array of PatternDisk::nu0_ values.
Definition: GyotoDynamicalDisk.h:74
double * dphi_array_
Array of PatternDisk::dphi_ values.
Definition: GyotoDynamicalDisk.h:81
double const * getVelocity() const
Get PatternDisk::velocity_.
A PatternDisk object with black body spectrum and a power law extension up to some rmax_...
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:51
size_t * nphi_array_
Array of PatternDisk::nphi_ values.
Definition: GyotoDynamicalDisk.h:84
double ** radius_array_
Array of PatternDisk::radius_ arrays.
Definition: GyotoDynamicalDisk.h:68
double ** opacity_array_
Array of PatternDisk::opacity_ arrays.
Definition: GyotoDynamicalDisk.h:62
double tinit_
date of the first FITS file
Definition: GyotoDynamicalDisk.h:54
int nb_times_
Number of dates.
Definition: GyotoDynamicalDisk.h:56
double * dnu_array_
Array of PatternDisk::dnu_ values.
Definition: GyotoDynamicalDisk.h:71