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>
38
39#ifdef GYOTO_USE_XERCES
40#include <GyotoRegister.h>
41#endif
42
43#include <string>
44
54
55 // Data :
56 // -----
57 private:
59 double temperature_;
60 double timeRef_M_;
61 double timeSigma_M_;
63 double kappaIndex_;
64 SmartPointer<Spectrum::KappaDistributionSynchrotron> spectrumKappaSynch_; // kappa-distribution synchrotron spectrum
65
66 // Constructors - Destructor
67 // -------------------------
68 public:
69 GYOTO_OBJECT; // This object has a (non-inherited) Property list
70
77 Blob();
78
79 Blob(const Blob& orig);
80 virtual Blob * clone() const ;
81
82 virtual ~Blob() ;
83
84 public:
85 virtual std::string className() const ;
86 virtual std::string className_l() const ;
87
88 public:
89 double numberDensity() const;
90 double numberDensity(std::string const &unit) const;
91 void numberDensity(double ne);
92 void numberDensity(double dens, std::string const &unit);
93 double temperature() const;
94 void temperature(double tt);
95 double timeRef() const;
96 double timeRef(std::string const &unit) const;
97 void timeRef(double tt);
98 void timeRef(double tt, std::string const &unit);
99 double timeSigma() const;
100 double timeSigma(std::string const &unit) const;
101 void timeSigma(double tt);
102 void timeSigma(double tt, std::string const &unit);
103 void magnetizationParameter(double rr);
104 double magnetizationParameter() const;
105 double kappaIndex() const;
106 void kappaIndex(double);
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
113};
114
115
116#endif
Powerlaw synchrotron spectrum.
Base class for metric description.
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
Gyoto registers.
Mass-less, spherical object following a timelike geodesic.
Blob of plasma following a Star orbit, emitting synchrotron, with Gaussian time-evolving density and ...
Definition: GyotoBlob.h:52
double kappaIndex_
hotspot synchrotron kappa-distribution index
Definition: GyotoBlob.h:63
double magnetizationParameter_
magnetization parameter
Definition: GyotoBlob.h:62
virtual std::string className() const
"Blob"
double temperature_
temperature of hotspot
Definition: GyotoBlob.h:59
double timeRef_M_
M-unit reference time for Gaussian hotspot evolution.
Definition: GyotoBlob.h:60
double numberDensity_cgs_
cgs-unit number density of hotspot
Definition: GyotoBlob.h:58
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:61
virtual std::string className_l() const
"inflate_star"
Mass-less, spherical object following a timelike geodesic.
Definition: GyotoStar.h:95
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:135
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43