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  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,
100  std::string content,
101  std::string unit);
102 
104  double emission1date(double nu_em, double dsem,
105  double c_ph[8], double c_obj[8]) const;
106 
107  using Disk3D::emission;
109  virtual double emission(double nu_em, double dsem,
110  double c_ph[8], double c_obj[8]) const;
111 
113  double transmission1date(double nu_em, double dsem,
114  double c_ph[8], double c_obj[8]) const;
115 
117  double transmission(double nu_em, double dsem,
118  double c_obj[8]) const;
119 
120  void getVelocity(double const pos[4], double vel[4]);
121  double const * getVelocity() const;
122 
123  protected:
124 
126 
129  void copyQuantities(int iq) ;
130 
131  public:
132 #ifdef GYOTO_USE_XERCES
133  virtual void fillElement(FactoryMessenger *fmp) const ;
134 #endif
135 
136 };
137 
138 #endif
Geometrically thick disk read from FITS file.
Definition: GyotoDisk3D.h:56
double tinit_
Time of the first FITS file.
Definition: GyotoDisk3D_BB.h:65
double ** velocity_array_
velocity(r, z, phi)
Definition: GyotoDisk3D_BB.h:82
double emission1date(double nu_em, double dsem, double c_ph[8], double c_obj[8]) const
Compute emission at one grid date.
virtual double emission(double nu_em, double dsem, double coord_ph[8], double coord_obj[8]=NULL) const
Specific intensity Iν
virtual Disk3D_BB * clone() const
Cloner.
virtual void fillElement(FactoryMessenger *fmp) const
Fill XML section.
virtual int setParameter(std::string name, std::string content, std::string unit)
Set parameter by name.
void copyQuantities(int iq)
Set underlying Disk3D pointers to a specific date slice.
A geometrically thick, optically thin disk.
void setMetric(SmartPointer< Metric::Generic > gg)
Set the Metric Generic::gg_.
double transmission(double nu_em, double dsem, double c_obj[8]) const
Interpolate transmission between grid dates.
char * dirname_
FITS files directory.
Definition: GyotoDisk3D_BB.h:64
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:51
int nb_times_
Number of times.
Definition: GyotoDisk3D_BB.h:67
double const * getVelocity() const
Get Disk3D::velocity_.
double transmission1date(double nu_em, double dsem, double c_ph[8], double c_obj[8]) const
Compute transmission at one grid date.
virtual double emission(double nu_em, double dsem, double c_ph[8], double c_obj[8]) const
Interpolate emission between grid dates.
double dt_
Time increment between two FITS (assumed constant)
Definition: GyotoDisk3D_BB.h:66
SmartPointer< Spectrum::BlackBody > spectrumBB_
emission law
Definition: GyotoDisk3D_BB.h:61
Geometrically thick optically thin disk read from a set of FITS files.
Definition: GyotoDisk3D_BB.h:58
I_nu(nu, T) = cst_*2*h*nu^3/c^2/(exp(h*nu/k*T)-1.);.
double ** temperature_array_
Definition: GyotoDisk3D_BB.h:74