Gyoto
GyotoEquatorialHotSpot.h
Go to the documentation of this file.
1 
7 /*
8  Copyright 2013, 2018 Frederic Vincent & Thibaut Paumard
9 
10  This file is part of Gyoto.
11 
12  Gyoto is free software: you can redistribute it and/or modify
13  it under the terms of the GNU General Public License as published by
14  the Free Software Foundation, either version 3 of the License, or
15  (at your option) any later version.
16 
17  Gyoto is distributed in the hope that it will be useful,
18  but WITHOUT ANY WARRANTY; without even the implied warranty of
19  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  GNU General Public License for more details.
21 
22  You should have received a copy of the GNU General Public License
23  along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
24  */
25 
26 #ifndef __GyotoEquatorialHotSpot_h
27 #define __GyotoEquatorialHotSpot_h
28 
29 #include <GyotoAstrobj.h>
30 #include <GyotoThinDisk.h>
31 #include <GyotoWorldline.h>
32 
33 namespace Gyoto {
34  namespace Astrobj {
35  class EquatorialHotSpot;
36  };
37 };
38 
41  public Gyoto::Worldline {
43  private:
44  double sizespot_;
45  enum beaming_t {IsotropicBeaming=0, NormalBeaming=1, RadialBeaming=2};
46  beaming_t beaming_;
47  double beamangle_;
48  public:
50  GYOTO_WORLDLINE;
55  virtual ~EquatorialHotSpot();
56  virtual EquatorialHotSpot * clone() const ;
57 
58  // Accessors for the Property list
59  void spotRadSize(double t);
60  double spotRadSize() const;
61 
62  void beaming(std::string const &b);
63  std::string beaming() const;
64 
65  void beamAngle(double t);
66  double beamAngle() const;
67 
68  //
69 
70  double getMass() const;
71  using Generic::metric;
73  void setInitialCondition(double coord[8]);
74 
75  void getVelocity(double const pos[4], double vel[4]);
76 
77  double emission(double nu_em, double dsem,
78  state_t const &,
79  double const coord_obj[8]) const;
80 
81  // needed for legacy XML files
82  virtual int setParameter(std::string name,
83  std::string content,
84  std::string unit);
85 #ifdef GYOTO_USE_XERCES
86  // needed for wait_pos_
88  virtual void fillProperty(Gyoto::FactoryMessenger *fmp, Property const &p) const ;
89 #endif
90 
91 #endif
92 };
Gyoto::Astrobj::EquatorialHotSpot::clone
virtual EquatorialHotSpot * clone() const
Cloner.
GYOTO_OBJECT
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
Gyoto::Astrobj::EquatorialHotSpot::fillProperty
virtual void fillProperty(Gyoto::FactoryMessenger *fmp, Property const &p) const
Output a single Property to XML.
Gyoto::Astrobj::Generic::deltaMax
virtual double deltaMax(double coord[8])
Get max step constraint for adaptive integration.
Gyoto::FactoryMessenger
Factory / SmartPointee::Subcontractor_t interface.
Definition: GyotoFactoryMessenger.h:92
Gyoto::Astrobj::EquatorialHotSpot::setParameter
virtual int setParameter(std::string name, std::string content, std::string unit)
Set parameter by name.
GyotoAstrobj.h
Astronomical objects (light emitters)
Gyoto::Astrobj::EquatorialHotSpot::getMass
double getMass() const
Get mass of particule.
Gyoto::Astrobj::ThinDisk
Geometrically thin disks and rings.
Definition: GyotoThinDisk.h:71
Gyoto::Astrobj::EquatorialHotSpot
Definition: GyotoEquatorialHotSpot.h:41
Gyoto::Worldline::deltaMax
double deltaMax() const
Get delta_max_.
GyotoThinDisk.h
Geometrically thin disks and rings.
Gyoto
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
Gyoto::Worldline
Timelike or null geodesics.
Definition: GyotoWorldline.h:228
Gyoto::SmartPointer
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:135
Gyoto::Astrobj::EquatorialHotSpot::setParameters
void setParameters(FactoryMessenger *fmp)
Main loop in Subcontractor_t function.
Gyoto::Property
Property that can be set and got using standard methods.
Definition: GyotoProperty.h:608
Gyoto::Astrobj::EquatorialHotSpot::metric
void metric(SmartPointer< Metric::Generic > gg)
Set the Metric gg_.
GyotoWorldline.h
Timelike or null geodesics.
Gyoto::Astrobj::EquatorialHotSpot::emission
double emission(double nu_em, double dsem, state_t const &, double const coord_obj[8]) const
Specific intensity Iν
Gyoto::Astrobj::Generic::metric
virtual SmartPointer< Metric::Generic > metric() const
Get the Metric gg_.
Gyoto::Astrobj::EquatorialHotSpot::getVelocity
void getVelocity(double const pos[4], double vel[4])
Get fluid 4-velocity at point.