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
33namespace 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};
Astronomical objects (light emitters)
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
Geometrically thin disks and rings.
Timelike or null geodesics.
Definition: GyotoEquatorialHotSpot.h:41
virtual int setParameter(std::string name, std::string content, std::string unit)
Set parameter by name.
double emission(double nu_em, double dsem, state_t const &, double const coord_obj[8]) const
Specific intensity Iν
virtual EquatorialHotSpot * clone() const
Cloner.
virtual void fillProperty(Gyoto::FactoryMessenger *fmp, Property const &p) const
Output a single Property to XML.
double getMass() const
Get mass of particule.
void setParameters(FactoryMessenger *fmp)
Main loop in Subcontractor_t function.
void metric(SmartPointer< Metric::Generic > gg)
Set the Metric gg_.
void getVelocity(double const pos[4], double vel[4])
Get fluid 4-velocity at point.
virtual SmartPointer< Metric::Generic > metric() const
Get the Metric gg_.
virtual double deltaMax(double coord[8])
Get max step constraint for adaptive integration.
Geometrically thin disks and rings.
Definition: GyotoThinDisk.h:71
Factory / SmartPointee::Subcontractor_t interface.
Definition: GyotoFactoryMessenger.h:92
Property that can be set and got using standard methods.
Definition: GyotoProperty.h:608
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:135
Timelike or null geodesics.
Definition: GyotoWorldline.h:228
double deltaMax() const
Get delta_max_.
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43