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:
52  protected:
53 
54  // Constructors - Destructor
55  // -------------------------
56  public:
59 
60  ThinDiskProfile();
61 
62  ThinDiskProfile(const ThinDiskProfile& ) ;
63  virtual ThinDiskProfile* clone () const;
64 
65  virtual ~ThinDiskProfile() ;
66 
67  // Accessors
68  // ---------
69  public:
70  bool circularMotion() const;
71  void circularMotion(bool circ);
72 
73  public:
74  virtual double emission(double nu_em, double dsem,
75  state_t const &c_ph,double const c_obj[8]=NULL) const;
76 
77  virtual void getVelocity(double const pos[4], double vel[4]);
78 
79  virtual void processHitQuantities(Photon* ph,
80  state_t const &coord_ph_hit,
81  double const *coord_obj_hit,
82  double dt,
83  Properties* data) const;
84 
85 };
86 
87 #endif
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
virtual ThinDiskProfile * clone() const
Cloner.
#define GYOTO_OBJECT_THREAD_SAFETY
Declare virtual bool isThreadSafe() const.
Definition: GyotoObject.h:99
A subclass of ThinDisk emitting according to some specified profile that should be hardcoded in emiss...
Definition: GyotoThinDiskProfile.h:48
Geometrically thin disks and rings.
Definition: GyotoThinDisk.h:68
Geometrically thin disks and rings.
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
bool circular_motion_
True if motion is circular, else radial fall.
Definition: GyotoThinDiskProfile.h:51
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ν
virtual void getVelocity(double const pos[4], double vel[4])
Get fluid 4-velocity at point.
virtual void processHitQuantities(Photon *ph, state_t const &coord_ph_hit, double const *coord_obj_hit, double dt, Properties *data) const
Fills Astrobj::Properties.