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
35namespace 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_;
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
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
92 virtual double emission(double nu_em, double dsem,
93 state_t const &c_ph, double const c_obj[8]=NULL) const;
94
95 void getVelocity(double const pos[4], double vel[4]);
96 double const * getVelocity() const;
97
98 protected:
99
101
104 void copyQuantities(int iq) ;
105
106 void nullifyQuantities() ;
107
108
109};
110
111#endif
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
A PatternDisk object with possibility to compute a black body spectrum when PatternDiskBB::emission_ ...
Geometrically thin disk read from a set of FITS files.
Definition: GyotoDynamicalDisk.h:50
virtual DynamicalDisk * clone() const
Cloner.
int nb_times_
Number of dates.
Definition: GyotoDynamicalDisk.h:56
double dt_
Time increment between two FITS (assumed constant)
Definition: GyotoDynamicalDisk.h:55
void copyQuantities(int iq)
Set underlying PatternDisk pointers to a specific date slice.
virtual double emission(double nu_em, double dsem, state_t const &c_ph, double const c_obj[8]=NULL) const
Specific intensity Iν
double tinit_
date of the first FITS file
Definition: GyotoDynamicalDisk.h:54
double const * getVelocity() const
Get PatternDisk::velocity_.
double ** velocity_array_
Array of PatternDisk::velocity_ arrays.
Definition: GyotoDynamicalDisk.h:63
double ** radius_array_
Array of PatternDisk::radius_ arrays.
Definition: GyotoDynamicalDisk.h:66
int nr_
Grid dimensions (assumed constant)
Definition: GyotoDynamicalDisk.h:57
char * dirname_
FITS files directory.
Definition: GyotoDynamicalDisk.h:53
double ** emission_array_
Array of PatternDisk::emission_ arrays.
Definition: GyotoDynamicalDisk.h:60
Geometrically thin disk read from FITS file with black body spectrum.
Definition: GyotoPatternDiskBB.h:54
double emission(double nu_em, double dsem, state_t const &c_ph, double const c_obj[8]=NULL) const
Specific intensity Iν
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:135
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43