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
53namespace Gyoto{
54 namespace Astrobj { class Jet; }
55}
56
60
88: public Astrobj::Standard,
89 public Hook::Listener
90{
92 private:
93 SmartPointer<Spectrum::KappaDistributionSynchrotron> spectrumKappaSynch_;
94 SmartPointer<Spectrum::ThermalSynchrotron> spectrumThermalSynch_;
98 double gammaJet_;
104
105 // Constructors - Destructor
106 // -------------------------
107 public:
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
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_.
Simple jet model with thermal or kappa-distribution synchrotron emission from Pandya et al....
Definition: GyotoJet.h:90
double baseTemperature_
electron temperature at jet base (K)
Definition: GyotoJet.h:101
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
virtual SmartPointer< Metric::Generic > metric() const
Get the Metric gg_.
double gammaJet_
Constant Lorentz factor in jet.
Definition: GyotoJet.h:98
virtual void getVelocity(double const pos[4], double vel[4])
Fluid velocity field.
double jetInnerOpeningAngle_
Jet inner opening angle (rad)
Definition: GyotoJet.h:96
double jetVphiOverVr_
this is (r*Vphi/Vr) where V is the jet velocity measured by the ZAMO
Definition: GyotoJet.h:99
double temperatureSlope_
electron temperature \propto z^temperatureSlope_
Definition: GyotoJet.h:102
virtual Jet * clone() const
Cloner.
double jetBaseHeight_
Height of the base of the jet (z value, M units)
Definition: GyotoJet.h:97
double jetOuterOpeningAngle_
Jet outer opening angle (rad)
Definition: GyotoJet.h:95
double magnetizationParameter_
Pmagn/(ne mp c2)
Definition: GyotoJet.h:103
double baseNumberDensity_cgs_
electron nb density at jet base (cgs)
Definition: GyotoJet.h:100
Astronomical objects defined bya a potential/distance.
Definition: GyotoStandardAstrobj.h:87
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