Gyoto
GyotoDeformedTorus.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 __DeformedTorus_h
15#define __DeformedTorus_h
16
17#include <GyotoAstrobj.h>
19#include <GyotoKerrBL.h>
20
21
22namespace Gyoto {
23 namespace Astrobj {
24 class DeformedTorus;
25 };
26 class FactoryMessenger;
27 namespace Spectrum {
28 class Generic;
29 }
30};
31
35
36 private:
37 SmartPointer<Gyoto::Metric::KerrBL> gg_;
38 SmartPointer<Spectrum::Generic> spectrum_;
39 double c_;
40 unsigned long mode_;
41 double param_beta_;
42 double param_beta_st_;
43 double param_eta_;
44 enum perturb_t {RadialTranslation=1,
45 VerticalTranslation=2,
46 Rotation=3,
47 Expansion=4,
48 RadialShear=5,
49 VerticalShear=6,
50 PureShear=7};
51 perturb_t perturb_kind_;
52 public:
56 virtual ~DeformedTorus();
57 virtual DeformedTorus * clone() const ;
58
59 // Standard accessors
60 GYOTO_OBJECT_ACCESSORS(SmartPointer<Spectrum::Generic>, spectrum);
61 GYOTO_OBJECT_ACCESSORS(double, largeRadius);
62 GYOTO_OBJECT_ACCESSORS(double, beta);
63 GYOTO_OBJECT_ACCESSORS(double, betaSt);
64 GYOTO_OBJECT_ACCESSORS(double, eta);
65 GYOTO_OBJECT_ACCESSORS(unsigned long, mode);
66 GYOTO_OBJECT_ACCESSORS_STRING(perturbKind);
67
68 using Generic::metric;
70 virtual double operator()(double const coord[4]) ;
72 virtual void getVelocity(double const pos[4], double vel[4]) ;
73 /*virtual int Impact(Gyoto::Photon* ph, size_t index,
74 Astrobj::Properties *data=NULL);*/
75 double emission(double nuem,double,state_t const &,double const *) const;
76#endif
77};
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.
Definition: GyotoDeformedTorus.h:33
virtual double operator()(double const coord[4])
Called by Astrobj::Generic::Impact()
virtual void metric(Gyoto::SmartPointer< Gyoto::Metric::Generic >)
Set the Metric #gg_.
virtual DeformedTorus * clone() const
Cloner.
virtual void getVelocity(double const pos[4], double vel[4])
Fluid velocity field.
virtual SmartPointer< Metric::Generic > metric() const
Get the Metric gg_.
Astronomical objects defined bya a potential/distance.
Definition: GyotoStandardAstrobj.h:87
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:135
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43