Gyoto
GyotoJet.h
Go to the documentation of this file.
1 
27 /*
28  Copyright 2017-2018 Frederic Vincent
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>
59 
87 : public Astrobj::Standard,
88  public Hook::Listener
89 {
90  friend class Gyoto::SmartPointer<Gyoto::Astrobj::Jet>;
91  private:
92  SmartPointer<Spectrum::KappaDistributionSynchrotron> spectrumKappaSynch_;
95  double jetBaseHeight_;
96  double gammaJet_;
101 
102  // Constructors - Destructor
103  // -------------------------
104  public:
105  GYOTO_OBJECT;
107 
108  Jet();
109 
110  Jet(const Jet& ) ;
111  virtual Jet* clone () const;
112 
113  virtual ~Jet() ;
114 
115  // Accessors
116  // ---------
117  public:
118  void jetOuterOpeningAngle(double ang);
119  double jetOuterOpeningAngle() const;
120  void jetInnerOpeningAngle(double ang);
121  double jetInnerOpeningAngle() const;
122  void jetBaseHeight(double hh);
123  double jetBaseHeight() const;
124  void gammaJet(double gam);
125  double gammaJet() const;
126  double baseNumberDensity() const;
127  double baseNumberDensity(std::string const &unit) const;
128  void baseNumberDensity(double ne);
129  void baseNumberDensity(double dens, std::string const &unit);
130  void baseTemperature(double tt);
131  double baseTemperature()const;
132  void temperatureSlope(double ss);
133  double temperatureSlope()const;
134  void magnetizationParameter(double rr);
135  double magnetizationParameter()const;
136  void kappaIndex(double index);
137  double kappaIndex()const;
138 
139  public:
140  using Generic::metric;
141  virtual void metric(SmartPointer<Metric::Generic>);
142 
143  virtual double operator()(double const coord[4]) ;
144 
150  virtual double transmission(double nuem, double dsem, double coord[8]) const ;
151 
157  virtual double emission(double nu_em, double dsem, double coord_ph[8],
158  double coord_obj[8]=NULL)
159  const ;
160 
166  virtual void emission(double Inu[], double nu_em[], size_t nbnu,
167  double dsem, double coord_ph[8],
168  double coord_obj[8]=NULL) const ;
169 
170  virtual void radiativeQ(double Inu[], double Taunu[],
171  double nu_em[], size_t nbnu,
172  double dsem, double coord_ph[8],
173  double coord_obj[8]=NULL) const ;
174  virtual void getVelocity(double const pos[4], double vel[4]) ;
175 
176 };
177 
178 #endif
Simple jet model with kappa-distribution synchrotron emission from Pandya et al. (2016) ...
Definition: GyotoJet.h:86
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
double magnetizationParameter_
Pmagn/(ne mp c2)
Definition: GyotoJet.h:100
double jetOuterOpeningAngle_
Jet outer opening angle (rad)
Definition: GyotoJet.h:93
#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:97
Astronomical objects defined bya a potential/distance.
virtual Jet * clone() const
Cloner.
virtual double transmission(double nuem, double dsem, double coord[8]) const
Transmission: exp( αν * dsem )
virtual void radiativeQ(double Inu[], double Taunu[], double nu_em[], size_t nbnu, double dsem, double coord_ph[8], double coord_obj[8]=NULL) const
emission and transmission together
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:95
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
Pointers performing reference counting.
Definition: GyotoProperty.h:45
virtual double emission(double nu_em, double dsem, double coord_ph[8], double coord_obj[8]=NULL) const
Specific intensity Iν
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:96
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:98
double jetInnerOpeningAngle_
Jet inner opening angle (rad)
Definition: GyotoJet.h:94
double temperatureSlope_
electron temperature z^temperatureSlope_
Definition: GyotoJet.h:99