Gyoto
GyotoSphericalAccretion.h
Go to the documentation of this file.
1 
12 /*
13  Copyright 2021 Frederic Vincent, Thibaut Paumard
14 
15  This file is part of Gyoto.
16 
17  Gyoto is free software: you can redistribute it and/or modify
18  it under the terms of the GNU General Public License as published by
19  the Free Software Foundation, either version 3 of the License, or
20  (at your option) any later version.
21 
22  Gyoto is distributed in the hope that it will be useful,
23  but WITHOUT ANY WARRANTY; without even the implied warranty of
24  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25  GNU General Public License for more details.
26 
27  You should have received a copy of the GNU General Public License
28  along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
29  */
30 
31 #ifndef __GyotoSphericalAccretion_H_
32 #define __GyotoSphericalAccretion_H_
33 
34 #include <iostream>
35 #include <fstream>
36 #include <iomanip>
37 
38 namespace Gyoto{
39  namespace Astrobj { class SphericalAccretion; }
40 }
41 
42 #include <GyotoStandardAstrobj.h>
45 
58 : public Astrobj::Standard,
59  public Hook::Listener
60 {
62  private:
63  SmartPointer<Spectrum::ThermalSynchrotron> spectrumThermalSynch_;
70 
71  // Constructors - Destructor
72  // -------------------------
73  public:
76 
78 
79  SphericalAccretion(const SphericalAccretion& ) ;
80  virtual SphericalAccretion* clone () const;
81 
82  virtual ~SphericalAccretion() ;
83 
84  // Accessors
85  // ---------
86  public:
87  void useSelfAbsorption(bool abs) ;
88  bool useSelfAbsorption() const;
89  void sphericalAccretionInnerRadius(double hh);
90  double sphericalAccretionInnerRadius() const;
91  double numberDensityAtInnerRadius() const;
92  double numberDensityAtInnerRadius(std::string const &unit) const;
93  void numberDensityAtInnerRadius(double ne);
94  void numberDensityAtInnerRadius(double dens, std::string const &unit);
95  void temperatureAtInnerRadius(double tt);
96  double temperatureAtInnerRadius()const;
97  void temperatureSlope(double ss);
98  double temperatureSlope()const;
99  void magnetizationParameter(double rr);
100  double magnetizationParameter()const;
101 
102  public:
103  using Generic::metric;
104  virtual void metric(SmartPointer<Metric::Generic>);
105 
106  virtual double operator()(double const coord[4]) ;
107 
108  virtual void radiativeQ(double Inu[], double Taunu[],
109  double const nu_em[], size_t nbnu,
110  double dsem, state_t const &coord_ph,
111  double const coord_obj[8]=NULL) const ;
112  virtual void getVelocity(double const pos[4], double vel[4]) ;
113 
114 };
115 
116 #endif
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
double temperatureAtInnerRadius_
electron temperature at inner radius (K)
Definition: GyotoSphericalAccretion.h:67
Thermal synchrotron spectrum.
#define GYOTO_OBJECT_THREAD_SAFETY
Declare virtual bool isThreadSafe() const.
Definition: GyotoObject.h:99
double temperatureSlope_
electron temperature z^temperatureSlope_
Definition: GyotoSphericalAccretion.h:68
virtual void getVelocity(double const pos[4], double vel[4])
Fluid velocity field.
Astronomical objects defined bya a potential/distance.
virtual SphericalAccretion * clone() const
Cloner.
double magnetizationParameter_
Pmagn/(ne mp c2)
Definition: GyotoSphericalAccretion.h:69
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
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
double numberDensityAtInnerRadius_cgs_
electron nb density at inner radius (cgs)
Definition: GyotoSphericalAccretion.h:66
Pointers performing reference counting.
Definition: GyotoProperty.h:45
A spherically-symmetric accretion flow radially falling onto the central object.
Definition: GyotoSphericalAccretion.h:57
I might listen to a Teller.
Definition: GyotoHooks.h:64
virtual SmartPointer< Metric::Generic > metric() const
Get the Metric gg_.
double sphericalAccretionInnerRadius_
Inner radius of flow in M units.
Definition: GyotoSphericalAccretion.h:65
Astronomical objects defined bya a potential/distance.
Definition: GyotoStandardAstrobj.h:84
Powerlaw synchrotron spectrum.
bool use_selfabsorption_
True if selfabs is used in radiative transfer.
Definition: GyotoSphericalAccretion.h:64