Gyoto
GyotoDynamicalDisk.h
Go to the documentation of this file.
1 
8 /*
9  Copyright 2011-2015, 2018 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 
52  private:
53  char* dirname_;
54  double tinit_;
55  double dt_;
56  int nb_times_;
57  int nnu_, nphi_, nr_;
58 
60  double ** emission_array_;
61 
63  double ** velocity_array_;
64 
66  double ** radius_array_;
67 
68  // Constructors - Destructor
69  // -------------------------
70  public:
72 
73  DynamicalDisk();
74 
75  DynamicalDisk(const DynamicalDisk& ) ;
76  virtual DynamicalDisk* clone () const;
77 
78  virtual ~DynamicalDisk() ;
79 
80  // Accessors
81  // ---------
82  public:
83 
84  std::string file() const;
85  void file(std::string const &fname);
86  void tinit(double t);
87  double tinit()const;
88  void dt(double t);
89  double dt()const;
90 
91  // fillProperty is overridden to set only the directory
92  void fillProperty(Gyoto::FactoryMessenger *fmp, Property const &p) const;
93 
95  virtual double emission(double nu_em, double dsem,
96  state_t const &c_ph, double const c_obj[8]=NULL) const;
97 
98  void getVelocity(double const pos[4], double vel[4]);
99  double const * getVelocity() const;
100 
101  protected:
102 
104 
107  void copyQuantities(int iq) ;
108 
109  void nullifyQuantities() ;
110 
111 
112 };
113 
114 #endif
double ** emission_array_
Array of PatternDisk::emission_ arrays.
Definition: GyotoDynamicalDisk.h:60
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
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.
Definition: GyotoPatternDiskBB.h:54
Geometrically thin disk read from a set of FITS files.
Definition: GyotoDynamicalDisk.h:50
virtual DynamicalDisk * clone() const
Cloner.
void copyQuantities(int iq)
Set underlying PatternDisk pointers to a specific date slice.
double ** velocity_array_
Array of PatternDisk::velocity_ arrays.
Definition: GyotoDynamicalDisk.h:63
double const * getVelocity() const
Get PatternDisk::velocity_.
void fillProperty(Gyoto::FactoryMessenger *fmp, Property const &p) const
Output a single Property to XML.
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
A PatternDisk object with possibility to compute a black body spectrum when PatternDiskBB::emission_ ...
Pointers performing reference counting.
Definition: GyotoProperty.h:45
virtual double emission(double nu_em, double dsem, state_t const &c_ph, double const c_obj[8]=NULL) const
Specific intensity Iν
double emission(double nu_em, double dsem, state_t const &c_ph, double const c_obj[8]=NULL) const
Specific intensity Iν
double ** radius_array_
Array of PatternDisk::radius_ arrays.
Definition: GyotoDynamicalDisk.h:66
int nr_
Grid dimensions (assumed constant)
Definition: GyotoDynamicalDisk.h:57
double tinit_
date of the first FITS file
Definition: GyotoDynamicalDisk.h:54
int nb_times_
Number of dates.
Definition: GyotoDynamicalDisk.h:56