Gyoto
GyotoThinDiskProfile.h
Go to the documentation of this file.
1 
9 /*
10  Copyright 2020 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 __GyotoThinDiskProfile_H_
29 #define __GyotoThinDiskProfile_H_
30 
31 #include <iostream>
32 #include <fstream>
33 #include <iomanip>
34 
35 namespace Gyoto{
36  namespace Astrobj { class ThinDiskProfile; }
37 }
38 
39 //#include <GyotoMetric.h>
40 #include <GyotoThinDisk.h>
41 
50  private:
51  double* model_param_;
53  protected:
54 
55  // Constructors - Destructor
56  // -------------------------
57  public:
60 
62 
63  ThinDiskProfile(const ThinDiskProfile& ) ;
64  virtual ThinDiskProfile* clone () const;
65 
66  virtual ~ThinDiskProfile() ;
67 
68  // Accessors
69  // ---------
70  public:
71  bool circularMotion() const;
72  void circularMotion(bool circ);
73 
74  void model_param(std::vector<double> const &v);
75  std::vector<double> model_param() const;
76 
77  public:
78  virtual double emission(double nu_em, double dsem,
79  state_t const &c_ph,double const c_obj[8]=NULL) const;
80 
81  virtual void getVelocity(double const pos[4], double vel[4]);
82 
83  virtual void processHitQuantities(Photon* ph,
84  state_t const &coord_ph_hit,
85  double const *coord_obj_hit,
86  double dt,
87  Properties* data) const;
88 
89 };
90 
91 #endif
#define GYOTO_OBJECT_THREAD_SAFETY
Declare virtual bool isThreadSafe() const.
Definition: GyotoObject.h:99
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
Geometrically thin disks and rings.
Geometrically thin disks and rings.
Definition: GyotoThinDisk.h:71
A subclass of ThinDisk emitting according to some specified profile that should be hardcoded in emiss...
Definition: GyotoThinDiskProfile.h:48
bool circular_motion_
True if motion is circular, else radial fall.
Definition: GyotoThinDiskProfile.h:52
virtual void processHitQuantities(Photon *ph, state_t const &coord_ph_hit, double const *coord_obj_hit, double dt, Properties *data) const
Fills Astrobj::Properties.
double * model_param_
A vector containing an arbitrary number of parameters necessary to compute the disk image.
Definition: GyotoThinDiskProfile.h:51
virtual void getVelocity(double const pos[4], double vel[4])
Get fluid 4-velocity at point.
virtual ThinDiskProfile * clone() const
Cloner.
virtual 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:44