Gyoto
GyotoThinDiskIronLine.h
1 /*
2  Copyright 2013-2015 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 
20 #ifndef __GyotoThinDiskIronLine_h
21 #define __GyotoThinDiskIronLine_h
22 
23 #include <GyotoThinDisk.h>
24 
25 namespace Gyoto {
26  namespace Astrobj {
27  class ThinDiskIronLine;
28  }
29 }
30 
32 : public Gyoto::Astrobj::ThinDisk {
34  private:
35  double plindex_;
36  double linefreq_;
37  double cutradius_;
38  public:
41  ThinDiskIronLine(const ThinDiskIronLine &o);
42  virtual ~ThinDiskIronLine();
43  virtual ThinDiskIronLine * clone() const ;
44 
45  using ThinDisk::emission;
46  virtual double emission(double nu_em, double dsem,
47  double c_ph[8], double c_obj[8]=NULL) const;
48  void getVelocity(double const pos[4], double vel[4]);
49 
50 
51  // standard pairs of accessors
52  GYOTO_OBJECT_ACCESSORS(double, PowerLawIndex);
53  GYOTO_OBJECT_ACCESSORS(double, LineFreq);
54  void LineFreq(double v, std::string const &u);
55  double LineFreq(std::string const &u)const;
56  GYOTO_OBJECT_ACCESSORS(double, CutRadius);
57  void CutRadius(double v, std::string const &u);
58  double CutRadius(std::string const &u)const;
59 
60 };
61 #endif
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:83
double cutradius_
r emission = 0
Definition: GyotoThinDiskIronLine.h:37
double plindex_
power law index for line emission
Definition: GyotoThinDiskIronLine.h:35
double linefreq_
intrinsic line frequency (Hz)
Definition: GyotoThinDiskIronLine.h:36
#define GYOTO_OBJECT_ACCESSORS(type, method)
Declare a pair of accessors to scalar member in a class declaration.
Definition: GyotoObject.h:59
Definition: GyotoThinDiskIronLine.h:31
Geometrically thin disks and rings.
Definition: GyotoThinDisk.h:68
Geometrically thin disks and rings.
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
Pointers performing reference counting.
Definition: GyotoProperty.h:41
void getVelocity(double const pos[4], double vel[4])
Get fluid 4-velocity at point.
virtual ThinDiskIronLine * clone() const
Cloner.
virtual double emission(double nu_em, double dsem, double c_ph[8], double c_obj[8]=NULL) const
Specific intensity Iν