Gyoto
GyotoJet.h
Go to the documentation of this file.
1 
27 /*
28  Copyright 2017-2019 Frederic Vincent, Thibaut Paumard
29 
30  This file is part of Gyoto.
31 
32  Gyoto is free software: you can redistribute it and/or modify
33  it under the terms of the GNU General Public License as published by
34  the Free Software Foundation, either version 3 of the License, or
35  (at your option) any later version.
36 
37  Gyoto is distributed in the hope that it will be useful,
38  but WITHOUT ANY WARRANTY; without even the implied warranty of
39  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
40  GNU General Public License for more details.
41 
42  You should have received a copy of the GNU General Public License
43  along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
44  */
45 
46 #ifndef __GyotoJet_H_
47 #define __GyotoJet_H_
48 
49 #include <iostream>
50 #include <fstream>
51 #include <iomanip>
52 
53 namespace Gyoto{
54  namespace Astrobj { class Jet; }
55 }
56 
57 #include <GyotoStandardAstrobj.h>
60 
88 : public Astrobj::Standard,
89  public Hook::Listener
90 {
91  friend class Gyoto::SmartPointer<Gyoto::Astrobj::Jet>;
92  private:
93  SmartPointer<Spectrum::KappaDistributionSynchrotron> spectrumKappaSynch_;
94  SmartPointer<Spectrum::ThermalSynchrotron> spectrumThermalSynch_;
97  double jetBaseHeight_;
98  double gammaJet_;
99  double jetVphiOverVr_;
104 
105  // Constructors - Destructor
106  // -------------------------
107  public:
108  GYOTO_OBJECT;
110 
111  Jet();
112 
113  Jet(const Jet& ) ;
114  virtual Jet* clone () const;
115 
116  virtual ~Jet() ;
117 
118  // Accessors
119  // ---------
120  public:
121  void jetOuterOpeningAngle(double ang);
122  double jetOuterOpeningAngle() const;
123  void jetInnerOpeningAngle(double ang);
124  double jetInnerOpeningAngle() const;
125  void jetBaseHeight(double hh);
126  double jetBaseHeight() const;
127  void gammaJet(double gam);
128  double gammaJet() const;
129  void jetVphiOverVr(double alpha);
130  double jetVphiOverVr() const;
131  double baseNumberDensity() const;
132  double baseNumberDensity(std::string const &unit) const;
133  void baseNumberDensity(double ne);
134  void baseNumberDensity(double dens, std::string const &unit);
135  void baseTemperature(double tt);
136  double baseTemperature()const;
137  void temperatureSlope(double ss);
138  double temperatureSlope()const;
139  void magnetizationParameter(double rr);
140  double magnetizationParameter()const;
141  void kappaIndex(double index);
142  double kappaIndex()const;
143 
144  public:
145  using Generic::metric;
146  virtual void metric(SmartPointer<Metric::Generic>);
147 
148  virtual double operator()(double const coord[4]) ;
149 
150  virtual void radiativeQ(double Inu[], double Taunu[],
151  double const nu_em[], size_t nbnu,
152  double dsem, state_t const &coord_ph,
153  double const coord_obj[8]=NULL) const ;
154  virtual void getVelocity(double const pos[4], double vel[4]) ;
155 
156 };
157 
158 #endif
Simple jet model with thermal or kappa-distribution synchrotron emission from Pandya et al...
Definition: GyotoJet.h:87
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
double magnetizationParameter_
Pmagn/(ne mp c2)
Definition: GyotoJet.h:103
double jetOuterOpeningAngle_
Jet outer opening angle (rad)
Definition: GyotoJet.h:95
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
Thermal synchrotron spectrum.
#define GYOTO_OBJECT_THREAD_SAFETY
Declare virtual bool isThreadSafe() const.
Definition: GyotoObject.h:99
double baseNumberDensity_cgs_
electron nb density at jet base (cgs)
Definition: GyotoJet.h:100
Astronomical objects defined bya a potential/distance.
virtual Jet * clone() const
Cloner.
double jetVphiOverVr_
this is (r*Vphi/Vr) where V is the jet velocity measured by the ZAMO
Definition: GyotoJet.h:99
virtual void getVelocity(double const pos[4], double vel[4])
Fluid velocity field.
double jetBaseHeight_
Height of the base of the jet (z value, M units)
Definition: GyotoJet.h:97
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
Pointers performing reference counting.
Definition: GyotoProperty.h:45
I might listen to a Teller.
Definition: GyotoHooks.h:64
virtual SmartPointer< Metric::Generic > metric() const
Get the Metric gg_.
double gammaJet_
Constant Lorentz factor in jet.
Definition: GyotoJet.h:98
Astronomical objects defined bya a potential/distance.
Definition: GyotoStandardAstrobj.h:84
Powerlaw synchrotron spectrum.
double baseTemperature_
electron temperature at jet base (K)
Definition: GyotoJet.h:101
double jetInnerOpeningAngle_
Jet inner opening angle (rad)
Definition: GyotoJet.h:96
double temperatureSlope_
electron temperature z^temperatureSlope_
Definition: GyotoJet.h:102