Gyoto
GyotoOscilTorus.h
Go to the documentation of this file.
1
8/*
9 * Copyright (c) 2013, 2018 Frederic Vincent & Thibaut Paumard
10 *
11 *
12 */
13
14#ifndef __OscilTorus_h
15#define __OscilTorus_h
16
17#include <GyotoAstrobj.h>
19#include <GyotoKerrBL.h>
20
21
22namespace Gyoto {
23 namespace Astrobj {
24 class OscilTorus;
25 };
26 class FactoryMessenger;
27 namespace Spectrum {
28 class Generic;
29 }
30};
31
34 public Hook::Listener {
36
37 private:
38 // Members corresponding to properties:
46 double c_;
47 unsigned long mode_;
48 double polycst_;
49 double polyindex_;
51 enum perturb_t {Radial=1, Vertical=2, X=3, Plus=4, Breathing=5};
52 perturb_t perturb_kind_;
53 std::string emitting_area_;
55
56 // Cached values:
58 std::vector<double> tt_;
59 std::vector<double> area_; // tt_ and area_ contain area of cross section at time tt
60 size_t nbt_;
62
63 double sigma_;
64 double alpha_;
65 double w1_;
66 double w2_;
67 double omr2_;
68 double omth2_;
69 double Omegac_;
70 double lc_;
71 double g_rr_;
72 double g_thth_;
73 bool hold_;
74
75 public:
77 OscilTorus();
78 OscilTorus(const OscilTorus &o);
79 virtual ~OscilTorus();
80 virtual OscilTorus * clone() const ;
81
82 GYOTO_OBJECT_ACCESSORS_UNIT(largeRadius);
83 GYOTO_OBJECT_ACCESSORS(unsigned long, mode);
84 GYOTO_OBJECT_ACCESSORS(double, polyCst);
85 GYOTO_OBJECT_ACCESSORS(double, polyIndex);
86 GYOTO_OBJECT_ACCESSORS(double, centralDensity);
87 GYOTO_OBJECT_ACCESSORS_STRING(perturbKind);
88 GYOTO_OBJECT_ACCESSORS(double, perturbIntens);
89 GYOTO_OBJECT_ACCESSORS_STRING(emittingArea);
90 using Generic::metric;
92
93 virtual double operator()(double const coord[4]) ;
94 virtual void getVelocity(double const pos[4], double vel[4]) ;
95 double emission(double nuem,double,state_t const &,double const *) const;
96
97#ifdef GYOTO_USE_XERCES
99#endif
100
101 virtual void updateCachedValues();
102 void computeXbYb(const double * pos, double & xb, double & yb) ;
103
104 // Hook::Listener API //
105 public:
113 virtual void tell(Gyoto::Hook::Teller *msg);
114
115};
116
117#endif
Astronomical objects (light emitters)
KerrBL metric.
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
Astronomical objects defined bya a potential/distance.
virtual SmartPointer< Metric::Generic > metric() const
Get the Metric gg_.
Definition: GyotoOscilTorus.h:34
virtual void setParameters(Gyoto::FactoryMessenger *fmp)
Main loop in Subcontractor_t function.
virtual void getVelocity(double const pos[4], double vel[4])
Fluid velocity field.
virtual void metric(Gyoto::SmartPointer< Gyoto::Metric::Generic >)
Set the Metric gg_.
double w1_
factors appearing in perturbed surf func
Definition: GyotoOscilTorus.h:65
double perturb_intens_
Perturbation intensity.
Definition: GyotoOscilTorus.h:54
size_t nbt_
numberof tt_
Definition: GyotoOscilTorus.h:60
virtual void tell(Gyoto::Hook::Teller *msg)
Update cached values.
int with_cross_
is 1 if cross section data are given
Definition: GyotoOscilTorus.h:61
double polycst_
Polytropic constant.
Definition: GyotoOscilTorus.h:48
virtual double operator()(double const coord[4])
Function defining the object interior.
double c_
Large Radius.
Definition: GyotoOscilTorus.h:46
std::string emitting_area_
Only for mode=0, file containing time series of cross section area.
Definition: GyotoOscilTorus.h:53
double Omegac_
Omega and l at torus center.
Definition: GyotoOscilTorus.h:69
double alpha_
perturbation normalization (oder-unity)
Definition: GyotoOscilTorus.h:64
double central_density_
Central density.
Definition: GyotoOscilTorus.h:50
double polyindex_
Polytropic index.
Definition: GyotoOscilTorus.h:49
double g_rr_
metric coef at torus center
Definition: GyotoOscilTorus.h:71
virtual OscilTorus * clone() const
Cloner.
double omr2_
epicyclic freq at torus center
Definition: GyotoOscilTorus.h:67
double sigma_
perturbation rescaled pulsation
Definition: GyotoOscilTorus.h:63
Astronomical objects defined bya a potential/distance.
Definition: GyotoStandardAstrobj.h:87
Factory / SmartPointee::Subcontractor_t interface.
Definition: GyotoFactoryMessenger.h:92
I might listen to a Teller.
Definition: GyotoHooks.h:64
Listen to me and I'll warn you when I change.
Definition: GyotoHooks.h:82
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:135
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43