Gyoto
GyotoBlob.h
Go to the documentation of this file.
1
8/*
9 Copyright 2019 Frederic Vincent, Thibaut Paumard
10
11 This file is part of Gyoto.
12
13 Gyoto is free software: you can redistribute it and/or modify
14 it under the terms of the GNU General Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 Gyoto is distributed in the hope that it will be useful,
19 but WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 GNU General Public License for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
25 */
26
27
28#ifndef __GyotoBlob_H_
29#define __GyotoBlob_H_
30
31namespace Gyoto{
32 namespace Astrobj { class Blob; }
33}
34
35#include <GyotoMetric.h>
36#include <GyotoStar.h>
40
41#ifdef GYOTO_USE_XERCES
42#include <GyotoRegister.h>
43#endif
44
45#include <string>
46
56
57 // Data :
58 // -----
59 private:
61 double temperature_;
62 double timeRef_M_;
63 double timeSigma_M_;
65 double kappaIndex_;
66 SmartPointer<Spectrum::KappaDistributionSynchrotron> spectrumKappaSynch_; // kappa-distribution synchrotron spectrum
67 SmartPointer<Spectrum::PowerLawSynchrotron> spectrumPLSynch_; // PL-distribution synchrotron spectrum
68 SmartPointer<Spectrum::ThermalSynchrotron> spectrumThermalSynch_; // Thermal distribution synchrotron spectrum
69 std::string magneticConfig_; // Magnetic field geometry (toroidal, vertical)
70 std::string electronDistrib_; // Electron distribution (thermal, kappa)
71
72 // Constructors - Destructor
73 // -------------------------
74 public:
75 GYOTO_OBJECT; // This object has a (non-inherited) Property list
76
83 Blob();
84
85 Blob(const Blob& orig);
86 virtual Blob * clone() const ;
87
88 virtual ~Blob() ;
89
90 public:
91 void electronDistribution(const std::string &kind);
92 std::string electronDistribution() const;
93
94 virtual std::string className() const ;
95 virtual std::string className_l() const ;
96
97 public:
98 double numberDensity() const;
99 double numberDensity(std::string const &unit) const;
100 void numberDensity(double ne);
101 void numberDensity(double dens, std::string const &unit);
102 double temperature() const;
103 void temperature(double tt);
104 double timeRef() const;
105 double timeRef(std::string const &unit) const;
106 void timeRef(double tt);
107 void timeRef(double tt, std::string const &unit);
108 double timeSigma() const;
109 double timeSigma(std::string const &unit) const;
110 void timeSigma(double tt);
111 void timeSigma(double tt, std::string const &unit);
112 void magnetizationParameter(double rr);
113 double magnetizationParameter() const;
114 double kappaIndex() const;
115 void kappaIndex(double);
116 void magneticConfiguration(std::string config);
117 std::string magneticConfiguration() const;
118
119 virtual void radiativeQ(double Inu[], double Taunu[],
120 double const nu_em[], size_t nbnu,
121 double dsem, state_t const &coord_ph,
122 double const coord_obj[8]=NULL) const ;
123
124 virtual void radiativeQ(double Inu[], double Qnu[], double Unu[],
125 double Vnu[], Eigen::Matrix4d Onu[],
126 double const nu_ems[], size_t nbnu, double dsem,
127 state_t const &coord_ph, double const coord_obj[8]) const;
128
129};
130
131
132#endif
Powerlaw synchrotron spectrum.
Base class for metric description.
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition GyotoObject.h:84
Powerlaw synchrotron spectrum.
Gyoto registers.
Mass-less, spherical object following a timelike geodesic.
Thermal synchrotron spectrum.
Blob of plasma following a Star orbit, emitting synchrotron, with Gaussian time-evolving density and ...
Definition GyotoBlob.h:54
double kappaIndex_
hotspot synchrotron kappa-distribution index
Definition GyotoBlob.h:65
double magnetizationParameter_
magnetization parameter
Definition GyotoBlob.h:64
virtual std::string className() const
"Blob"
double temperature_
temperature of hotspot
Definition GyotoBlob.h:61
double timeRef_M_
M-unit reference time for Gaussian hotspot evolution.
Definition GyotoBlob.h:62
double numberDensity_cgs_
cgs-unit number density of hotspot
Definition GyotoBlob.h:60
virtual Blob * clone() const
Cloner.
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 timeSigma_M_
M-unit temporal sigma for Gaussian hotspot evolution.
Definition GyotoBlob.h:63
virtual std::string className_l() const
"inflate_star"
Mass-less, spherical object following a timelike geodesic.
Definition GyotoStar.h:96
Pointers performing reference counting.
Definition GyotoSmartPointer.h:135
Namespace for the Gyoto library.
Definition GyotoAstrobj.h:44