Gyoto
GyotoThickDisk.h
Go to the documentation of this file.
1
13/*
14 Copyright 2019 Frederic Vincent, Thibaut Paumard
15
16 This file is part of Gyoto.
17
18 Gyoto is free software: you can redistribute it and/or modify
19 it under the terms of the GNU General Public License as published by
20 the Free Software Foundation, either version 3 of the License, or
21 (at your option) any later version.
22
23 Gyoto is distributed in the hope that it will be useful,
24 but WITHOUT ANY WARRANTY; without even the implied warranty of
25 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 GNU General Public License for more details.
27
28 You should have received a copy of the GNU General Public License
29 along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
30 */
31
32#ifndef __GyotoThickDisk_H_
33#define __GyotoThickDisk_H_
34
35#include <iostream>
36#include <fstream>
37#include <iomanip>
38
39namespace Gyoto{
40 namespace Astrobj { class ThickDisk; }
41}
42
46
60: public Astrobj::Standard,
61 public Hook::Listener
62{
64 private:
65 SmartPointer<Spectrum::ThermalSynchrotron> spectrumThermalSynch_;
73 double Vphi_over_V_;
74
75 // Constructors - Destructor
76 // -------------------------
77 public:
80
82
83 ThickDisk(const ThickDisk& ) ;
84 virtual ThickDisk* clone () const;
85
86 virtual ~ThickDisk() ;
87
88 // Accessors
89 // ---------
90 public:
91 void thickDiskOpeningAngle(double ang);
92 double thickDiskOpeningAngle() const;
93 void thickDiskInnerRadius(double hh);
94 double thickDiskInnerRadius() const;
95 double numberDensityAtInnerRadius() const;
96 double numberDensityAtInnerRadius(std::string const &unit) const;
97 void numberDensityAtInnerRadius(double ne);
98 void numberDensityAtInnerRadius(double dens, std::string const &unit);
99 void temperatureAtInnerRadius(double tt);
100 double temperatureAtInnerRadius()const;
101 void temperatureSlope(double ss);
102 double temperatureSlope()const;
103 void magnetizationParameter(double rr);
104 double magnetizationParameter()const;
105 void velocityBelowIsco(std::vector<double> const &v);
106 std::vector<double> velocityBelowIsco() const;
107
108 public:
109 using Generic::metric;
110 virtual void metric(SmartPointer<Metric::Generic>);
111
112 virtual double operator()(double const coord[4]) ;
113
114 virtual void radiativeQ(double Inu[], double Taunu[],
115 double const nu_em[], size_t nbnu,
116 double dsem, state_t const &coord_ph,
117 double const coord_obj[8]=NULL) const ;
118 virtual void getVelocity(double const pos[4], double vel[4]) ;
119
120};
121
122#endif
Powerlaw synchrotron spectrum.
#define GYOTO_OBJECT_THREAD_SAFETY
Declare virtual bool isThreadSafe() const.
Definition: GyotoObject.h:99
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
Astronomical objects defined bya a potential/distance.
Thermal synchrotron spectrum.
virtual SmartPointer< Metric::Generic > metric() const
Get the Metric gg_.
Astronomical objects defined bya a potential/distance.
Definition: GyotoStandardAstrobj.h:87
A thick accretion disk described by its opening angle between the BH spin axis and the disk surface,...
Definition: GyotoThickDisk.h:62
virtual ThickDisk * clone() const
Cloner.
double temperatureAtInnerRadius_
electron temperature at inner radius (K)
Definition: GyotoThickDisk.h:69
virtual void getVelocity(double const pos[4], double vel[4])
Fluid velocity field.
double temperatureSlope_
electron temperature \propto z^temperatureSlope_
Definition: GyotoThickDisk.h:70
virtual SmartPointer< Metric::Generic > metric() const
Get the Metric gg_.
double thickDiskOpeningAngle_
ThickDisk opening angle (rad)
Definition: GyotoThickDisk.h:66
double veloZAMONorm_
ZAMO-observed velocity norm below ISCO.
Definition: GyotoThickDisk.h:72
double numberDensityAtInnerRadius_cgs_
electron nb density at inner radius (cgs)
Definition: GyotoThickDisk.h:68
double thickDiskInnerRadius_
Inner disk radius in M units.
Definition: GyotoThickDisk.h:67
virtual void radiativeQ(double Inu[], double Taunu[], double const nu_em[], size_t nbnu, double dsem, state_t const &coord_ph, double const coord_obj[8]=NULL) const
emission and transmission together
double Vphi_over_V_
Vphi/V where V is the ZAMO-observed velocity below ISCO expressed in a unit-vector basis.
Definition: GyotoThickDisk.h:73
double magnetizationParameter_
Pmagn/(ne mp c2)
Definition: GyotoThickDisk.h:71
I might listen to a Teller.
Definition: GyotoHooks.h:64
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:135
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43