Gyoto
GyotoThinDiskIronLine.h
Go to the documentation of this file.
1 /*
2  Copyright 2013-2015, 2018 Frederic Vincent, Thibaut Paumard
3 
4  This file is part of Gyoto.
5 
6  Gyoto is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  Gyoto is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
22 #ifndef __GyotoThinDiskIronLine_h
23 #define __GyotoThinDiskIronLine_h
24 
25 #include <GyotoThinDisk.h>
26 
27 namespace Gyoto {
28  namespace Astrobj {
29  class ThinDiskIronLine;
30  }
31 }
32 
34 : public Gyoto::Astrobj::ThinDisk {
36  private:
37  double plindex_;
38  double linefreq_;
39  double cutradius_;
40  public:
43  ThinDiskIronLine(const ThinDiskIronLine &o);
44  virtual ~ThinDiskIronLine();
45  virtual ThinDiskIronLine * clone() const ;
46 
47  using ThinDisk::emission;
48  virtual double emission(double nu_em, double dsem,
49  state_t const &c_ph, double const c_obj[8]=NULL) const;
50  void getVelocity(double const pos[4], double vel[4]);
51 
52 
53  // standard pairs of accessors
54  GYOTO_OBJECT_ACCESSORS(double, PowerLawIndex);
55  GYOTO_OBJECT_ACCESSORS(double, LineFreq);
56  void LineFreq(double v, std::string const &u);
57  double LineFreq(std::string const &u)const;
58  GYOTO_OBJECT_ACCESSORS(double, CutRadius);
59  void CutRadius(double v, std::string const &u);
60  double CutRadius(std::string const &u)const;
61 
62 };
63 #endif
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
virtual double emission(double nu_em, double dsem, state_t const &c_ph, double const c_obj[8]=NULL) const
Specific intensity Iν
double cutradius_
r<cutradius_ -> emission = 0
Definition: GyotoThinDiskIronLine.h:39
double plindex_
power law index for line emission
Definition: GyotoThinDiskIronLine.h:37
double linefreq_
intrinsic line frequency (Hz)
Definition: GyotoThinDiskIronLine.h:38
#define GYOTO_OBJECT_ACCESSORS(type, method)
Declare a pair of accessors to scalar member in a class declaration.
Definition: GyotoObject.h:60
Definition: GyotoThinDiskIronLine.h:33
Geometrically thin disks and rings.
Definition: GyotoThinDisk.h:68
virtual ThinDiskIronLine * clone() const
Cloner.
Geometrically thin disks and rings.
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
Pointers performing reference counting.
Definition: GyotoProperty.h:45
void getVelocity(double const pos[4], double vel[4])
Get fluid 4-velocity at point.
virtual double emission(double nu_em, double dsem, state_t const &coord_ph, double const coord_obj[8]=NULL) const
Specific intensity Iν