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;
134 double
getL0() const;
138 void
lambda(double lambda);
149 void
beta(double beta);
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>);
187 int
Impact(Photon *ph, size_t index,
188 Astrobj::Properties *data);
190 virtual double operator()(double const coord[4]) ;
200 virtual void
tell(Gyoto::Hook::Teller * msg);
201 virtual void
getVelocity(double const pos[4], double vel[4]) ;
214 size_t const * chaninds, size_t nbnu,
215 double dsem, state_t const &cph, double const *co) const;
217 virtual void
radiativeQ(double Inu[], double Taunu[],
218 double const nu_em[], size_t nbnu,
219 double dsem, state_t const &coord_ph,
220 double const coord_obj[8]=NULL) const ;
225 double
potential(double r, double theta) const;
double l0_
Angular momentum. Tied to PolishDoughnut::lambda_.
Definition: GyotoPolishDoughnut.h:78
double central_enthalpy_cgs_
Central enthalpy per unit volume in erg/cm3.
Definition: GyotoPolishDoughnut.h:86
double getL0() const
Get PolishDoughnut::l0_.
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
virtual double operator()(double const coord[4])
Function defining the object interior.
A toroidal accretion structure.
Definition: GyotoPolishDoughnut.h:66
bool defangmomrinner_
true if torus defined from l0 and rin
Definition: GyotoPolishDoughnut.h:110
double DeltaWm1_
1./(W_centre_ - W_surface_);
Definition: GyotoPolishDoughnut.h:85
friend std::ostream & operator<<(std::ostream &, const PolishDoughnut &)
Display.
virtual PolishDoughnut * clone() const
Cloner.
Thermal synchrotron spectrum.
Tellers tell Listeners when they mutate.
bool bremsstrahlung_
1 if Komissarov model should compute Brems radiation
Definition: GyotoPolishDoughnut.h:94
Classes with an operator() method.
#define GYOTO_OBJECT_THREAD_SAFETY
Declare virtual bool isThreadSafe() const.
Definition: GyotoObject.h:99
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ν)
double lambda_
Adimentionned angular momentum.
Definition: GyotoPolishDoughnut.h:79
size_t spectralOversampling() const
Get PolishDoughnut::spectral_oversampling_.
int Impact(Photon *ph, size_t index, Astrobj::Properties *data)
Does a photon at these coordinates impact the object?
#define size_t
If not defined in <sys/types.h>.
Definition: GyotoConfig.h:387
bool changeCusp() const
Get PolishDoughnut::komissarov_.
virtual void getVelocity(double const pos[4], double vel[4])
Fluid velocity field.
bool adaf_
true to switch to an ADAF model rather tha Polish doughnut
Definition: GyotoPolishDoughnut.h:104
Astronomical objects defined bya a potential/distance.
A functor like double (func) (double) const.
Definition: GyotoFunctors.h:57
double aa2_
aa_2
Definition: GyotoPolishDoughnut.h:91
virtual void tell(Gyoto::Hook::Teller *msg)
Update PolishDoughnut::aa_.
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
size_t spectral_oversampling_
Oversampling used in integrateEmission()
Definition: GyotoPolishDoughnut.h:92
bool rochelobefilling_
true if torus filling its Roche lobe
Definition: GyotoPolishDoughnut.h:109
bool angle_averaged_
1 if Komissarov model should be angle averaged
Definition: GyotoPolishDoughnut.h:93
double aa_
PolishDoughnut::gg_ spin, cached when setting PolishDoughnut::lambda_.
Definition: GyotoPolishDoughnut.h:90
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ν)
virtual double operator()(double) const
The actual function.
double lambda() const
Get PolishDoughnut::lambda_.
double ADAFdensity_
ADAF central density.
Definition: GyotoPolishDoughnut.h:106
intersection_t intersection
double intersection(double) Functor
Definition: GyotoPolishDoughnut.h:247
double getRcusp() const
Get PolishDoughnut::r_cusp_.
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
double W_centre_
Potential central value. Tied to PolishDoughnut::lambda_.
Definition: GyotoPolishDoughnut.h:81
double central_temperature_
Tcenter in K.
Definition: GyotoPolishDoughnut.h:87
double r_cusp_
Cusp radius in geometrical units. Tied to PolishDoughnut::lambda_.
Definition: GyotoPolishDoughnut.h:82
double W_surface_
Potential surface value. Tied to PolishDoughnut::lambda_.
Definition: GyotoPolishDoughnut.h:80
double potential(double r, double theta) const
Potential defining shape, used by operator()()
Pointers performing reference counting.
Definition: GyotoProperty.h:45
double beta() const
Get PolishDoughnut::beta_.
double r_torusouter_
Torus outer coordinate radius. Tied to PolishDoughnut::lambda_.
Definition: GyotoPolishDoughnut.h:84
double centralTemp() const
Get PolishDoughnut::central_temperature_.
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
I might listen to a Teller.
Definition: GyotoHooks.h:64
void setParameter(Gyoto::Property const &p, std::string const &name, std::string const &content, std::string const &unit)
Set parameter by Property (and name)
virtual SmartPointer< Metric::Generic > metric() const
Get the Metric gg_.
double ADAFtemperature_
ADAF central temperature.
Definition: GyotoPolishDoughnut.h:105
bool changecusp_
true to apply the fishy rcusp_ change (to be changed)
Definition: GyotoPolishDoughnut.h:108
double getRcentre() const
Get PolishDoughnut::r_centre_.
Powerlaw synchrotron spectrum.
Astronomical objects defined bya a potential/distance.
Definition: GyotoStandardAstrobj.h:84
double getWcentre() const
Get PolishDoughnut::W_centre_.
double outerradius(double) Functor class
Definition: GyotoPolishDoughnut.h:256
double intersection(double) Functor class
Definition: GyotoPolishDoughnut.h:239
double centralEnthalpyPerUnitVolume() const
Get PolishDoughnut::central_enthalpy_cgs_.
bool bremsstrahlung() const
Get PolishDoughnut::bremsstrahlung_.
double getWsurface() const
Get PolishDoughnut::W_surface_.
double deltaPL_
fraction of thermal energy in non-thermal electrons
Definition: GyotoPolishDoughnut.h:102
double r_centre_
Central radius in geometrical units. Tied to PolishDoughnut::lambda_.
Definition: GyotoPolishDoughnut.h:83
double rintorus_
Inner radius of the doughnut.
Definition: GyotoPolishDoughnut.h:111
void fillProperty(Gyoto::FactoryMessenger *fmp, Property const &p) const
Output a single Property to XML.
bool angleAveraged() const
Get PolishDoughnut::angle_averaged_.