37#ifndef __GyotoPolishDoughnut_H_
38#define __GyotoPolishDoughnut_H_
41 namespace Astrobj {
class PolishDoughnut; }
42 class FactoryMessenger;
75 SmartPointer<Spectrum::ThermalBremsstrahlung> spectrumBrems_;
76 SmartPointer<Spectrum::ThermalSynchrotron> spectrumSynch_;
77 SmartPointer<Spectrum::PowerLawSynchrotron> spectrumPLSynch_;
118#ifdef GYOTO_USE_XERCES
120 void
fillProperty(Gyoto::FactoryMessenger *fmp, Property const &p) const;
151 void magnetizationParameter(double rr);
152 double magnetizationParameter()const;
163 void nonThermalDeltaExpo(std::vector<double> const &v);
164 std::vector<double> nonThermalDeltaExpo() const;
165 void angmomrinner(std::vector<double> const &v);
166 std::vector<double> angmomrinner() const;
167 void adafparams(std::vector<double> const &v);
168 std::vector<double> adafparams() const;
172 std::string const & name,
173 std::string const & content,
174 std::string const & unit);
183 virtual void
metric(Gyoto::SmartPointer<Gyoto::Metric::Generic>);
188 Astrobj::Properties *data);
190 virtual double operator()(double const coord[4]) ;
200 virtual void
tell(Gyoto::Hook::Teller * msg);
214 size_t const * chaninds, size_t nbnu,
215 double dsem, state_t const &cph, double const *co) const;
218 double const nu_em[], size_t nbnu,
219 double dsem, state_t const &coord_ph,
220 double const coord_obj[8]=NULL) const ;
#define size_t
If not defined in <sys/types.h>.
Definition: GyotoConfig.h:390
Classes with an operator() method.
Tellers tell Listeners when they mutate.
#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
Powerlaw synchrotron spectrum.
Astronomical objects defined bya a potential/distance.
Thermal synchrotron spectrum.
virtual double integrateEmission(double nu1, double nu2, double dsem, state_t const &c_ph, double const c_obj[8]=NULL) const
∫ν1ν2 Iν dν (or jν)
virtual SmartPointer< Metric::Generic > metric() const
Get the Metric gg_.
double intersection(double) Functor class
Definition: GyotoPolishDoughnut.h:239
double outerradius(double) Functor class
Definition: GyotoPolishDoughnut.h:256
virtual double operator()(double) const
The actual function.
A toroidal accretion structure.
Definition: GyotoPolishDoughnut.h:69
double central_temperature_
Tcenter in K.
Definition: GyotoPolishDoughnut.h:87
double getRcentre() const
Get PolishDoughnut::r_centre_.
void setParameter(Gyoto::Property const &p, std::string const &name, std::string const &content, std::string const &unit)
Set parameter by Property (and name)
bool adaf_
true to switch to an ADAF model rather tha Polish doughnut
Definition: GyotoPolishDoughnut.h:104
double centralTemp() const
Get PolishDoughnut::central_temperature_.
double centralEnthalpyPerUnitVolume() const
Get PolishDoughnut::central_enthalpy_cgs_.
double ADAFdensity_
ADAF central density.
Definition: GyotoPolishDoughnut.h:106
double r_centre_
Central radius in geometrical units. Tied to PolishDoughnut::lambda_.
Definition: GyotoPolishDoughnut.h:83
virtual void integrateEmission(double *I, double const *boundaries, size_t const *chaninds, size_t nbnu, double dsem, state_t const &cph, double const *co) const
∫ν1ν2 Iν dν (or jν)
double r_torusouter_
Torus outer coordinate radius. Tied to PolishDoughnut::lambda_.
Definition: GyotoPolishDoughnut.h:84
double DeltaWm1_
1./(W_centre_ - W_surface_);
Definition: GyotoPolishDoughnut.h:85
double deltaPL_
fraction of thermal energy in non-thermal electrons
Definition: GyotoPolishDoughnut.h:102
virtual double operator()(double const coord[4])
Function defining the object interior.
double r_cusp_
Cusp radius in geometrical units. Tied to PolishDoughnut::lambda_.
Definition: GyotoPolishDoughnut.h:82
double getWsurface() const
Get PolishDoughnut::W_surface_.
bool rochelobefilling_
true if torus filling its Roche lobe
Definition: GyotoPolishDoughnut.h:109
int Impact(Photon *ph, size_t index, Astrobj::Properties *data)
Does a photon at these coordinates impact the object?
bool bremsstrahlung() const
Get PolishDoughnut::bremsstrahlung_.
double getL0() const
Get PolishDoughnut::l0_.
size_t spectral_oversampling_
Oversampling used in integrateEmission()
Definition: GyotoPolishDoughnut.h:92
double aa2_
aa_2
Definition: GyotoPolishDoughnut.h:91
double getRcusp() const
Get PolishDoughnut::r_cusp_.
double getWcentre() const
Get PolishDoughnut::W_centre_.
friend std::ostream & operator<<(std::ostream &, const PolishDoughnut &)
Display.
double beta_
Pgas/Pmagn (careful not standard)
Definition: GyotoPolishDoughnut.h:88
double magnetizationParameter_
Pmagn/(ne mp c2) (careful, very different from above)
Definition: GyotoPolishDoughnut.h:89
double W_surface_
Potential surface value. Tied to PolishDoughnut::lambda_.
Definition: GyotoPolishDoughnut.h:80
size_t spectralOversampling() const
Get PolishDoughnut::spectral_oversampling_.
bool changecusp_
true to apply the fishy rcusp_ change (to be changed)
Definition: GyotoPolishDoughnut.h:108
double beta() const
Get PolishDoughnut::beta_.
double lambda() const
Get PolishDoughnut::lambda_.
virtual void tell(Gyoto::Hook::Teller *msg)
Update PolishDoughnut::aa_.
double aa_
PolishDoughnut::gg_ spin, cached when setting PolishDoughnut::lambda_.
Definition: GyotoPolishDoughnut.h:90
double potential(double r, double theta) const
Potential defining shape, used by operator()()
double lambda_
Adimentionned angular momentum.
Definition: GyotoPolishDoughnut.h:79
double central_enthalpy_cgs_
Central enthalpy per unit volume in erg/cm3.
Definition: GyotoPolishDoughnut.h:86
bool defangmomrinner_
true if torus defined from l0 and rin
Definition: GyotoPolishDoughnut.h:110
double W_centre_
Potential central value. Tied to PolishDoughnut::lambda_.
Definition: GyotoPolishDoughnut.h:81
intersection_t intersection
double intersection(double) Functor
Definition: GyotoPolishDoughnut.h:247
void fillProperty(Gyoto::FactoryMessenger *fmp, Property const &p) const
Output a single Property to XML.
double ADAFtemperature_
ADAF central temperature.
Definition: GyotoPolishDoughnut.h:105
bool changeCusp() const
Get PolishDoughnut::komissarov_.
double rintorus_
Inner radius of the doughnut.
Definition: GyotoPolishDoughnut.h:111
virtual PolishDoughnut * clone() const
Cloner.
bool bremsstrahlung_
1 if Komissarov model should compute Brems radiation
Definition: GyotoPolishDoughnut.h:94
virtual void getVelocity(double const pos[4], double vel[4])
Fluid velocity field.
bool angle_averaged_
1 if Komissarov model should be angle averaged
Definition: GyotoPolishDoughnut.h:93
bool angleAveraged() const
Get PolishDoughnut::angle_averaged_.
double l0_
Angular momentum. Tied to PolishDoughnut::lambda_.
Definition: GyotoPolishDoughnut.h:78
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
Astronomical objects defined bya a potential/distance.
Definition: GyotoStandardAstrobj.h:87
A functor like double (func) (double) const.
Definition: GyotoFunctors.h:58
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