27 #ifndef __GyotoDisk3D_H_
28 #define __GyotoDisk3D_H_
35 namespace Astrobj {
class Disk3D; }
118 virtual void
fitsRead(std::string filename_);
121 virtual void
fitsWrite(std::string filename_);
160 size_t const naxes[4] = NULL);
181 virtual void
copyVelocity(double const * const pattern = NULL,
182 size_t const naxes[3] = NULL);
192 virtual void
nu0(double freq);
194 virtual double
nu0() const;
197 virtual void
dnu(double dfreq);
199 virtual double
dnu() const;
202 void
rin(double rrin);
207 void
rout(double rout);
212 void
zmin(double zmin);
217 void
zmax(double zmax);
222 void
phimin(double phimin);
227 void
phimax(double phimax);
236 void
getIndices(size_t i[4], double const co[4], double nu=0.) const ;
240 int
Impact(Photon *ph, size_t index, Astrobj::Properties *data);
250 virtual void
getVelocity(double const pos[4], double vel[4]) ;
253 #ifdef GYOTO_USE_XERCES
254 virtual void
fillElement(FactoryMessenger *fmp) const ;
double phimin() const
Get Disk3D::phimin_.
virtual void copyEmissquant(double const *const pattern=NULL, size_t const naxes[4]=NULL)
Set Disk3D::emissquant_.
Geometrically thick disk read from FITS file.
Definition: GyotoDisk3D.h:56
virtual Disk3D * clone() const
Cloner.
void getIndices(size_t i[4], double const co[4], double nu=0.) const
Get emissquant_ cell corresponding to position co[4].
virtual size_t repeatPhi() const
Get Disk3D::repeat_phi_.
double dr_
Radius step.
Definition: GyotoDisk3D.h:96
void setVelocity(double *pattern)
Set Disk3D::velocity__.
double phimin_
Minimum φ in grid.
Definition: GyotoDisk3D.h:80
virtual void setParameters(FactoryMessenger *fmp)
Main loop in Subcontractor_t function.
double dphi_
δφ between two grid columns
Definition: GyotoDisk3D.h:79
#define size_t
If not defined in <sys/types.h>.
Definition: GyotoConfig.h:293
int Impact(Photon *ph, size_t index, Astrobj::Properties *data)
Does a photon at these coordinates impact the object?
size_t repeat_phi_
Number of times the pattern should be repeated to cover [0, 2Π].
Definition: GyotoDisk3D.h:88
std::string filename_
Optional FITS file name containing the arrays.
Definition: GyotoDisk3D.h:59
double zmin() const
Get Disk3D::zmin_.
double nu0_
Lowest frequency provided in PatternDisk::emission_ in Hz.
Definition: GyotoDisk3D.h:76
size_t nnu_
Number of frequencies provided in PatternDisk::emission_.
Definition: GyotoDisk3D.h:77
size_t nphi_
Grid size in the φ direction.
Definition: GyotoDisk3D.h:81
double * velocity_
Velocity(r, z, phi)
Definition: GyotoDisk3D.h:73
virtual void copyVelocity(double const *const pattern=NULL, size_t const naxes[3]=NULL)
Set Disk3D::velocity_.
virtual double nu0() const
Get Disk3D::nu0_.
double phimax_
Maximum φ in grid.
Definition: GyotoDisk3D.h:82
virtual void fitsRead(std::string filename_)
Read parameters and arrays from FITS file.
double rin_
Inner radius of the grid.
Definition: GyotoDisk3D.h:97
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:51
double dnu_
Frequency scale of PatternDisk::emission_ in Hz.
Definition: GyotoDisk3D.h:75
double dz_
Altitude step.
Definition: GyotoDisk3D.h:91
double zmin_
Minimum altitude.
Definition: GyotoDisk3D.h:92
virtual void fillElement(FactoryMessenger *fmp) const
Fill XML section.
double rout() const
Get Disk3D::rout_.
double rout_
Outer radius of the grid.
Definition: GyotoDisk3D.h:99
void setEmissquant(double *pattern)
Set Disk3D::emissquant_.
double zmax() const
Get Disk3D::zmax_.
double rin() const
Get Disk3D::rin_.
Base class for astronomical object.
Definition: GyotoAstrobj.h:187
virtual int setParameter(std::string name, std::string content, std::string unit)
Set parameter by name.
double * emissquant_
Physical quantity yielding emission.
Definition: GyotoDisk3D.h:66
size_t nz_
Grid size in the altitude direction.
Definition: GyotoDisk3D.h:93
double phimax() const
Get Disk3D::phimax_.
double zmax_
Maximum altitude.
Definition: GyotoDisk3D.h:94
virtual void fitsWrite(std::string filename_)
Write parameters and arrays to FITS file.
virtual double const * getEmissquant() const
Get Disk3D::emissquant_.
size_t nr_
Number of rows in the patternGrid size in the r direction.
Definition: GyotoDisk3D.h:98
virtual double const * getVelocity() const
Get Disk3D::velocity_.
virtual void getEmissquantNaxes(size_t naxes[4]) const
Get { Disk3D::nnu_, Disk3D::nphi_, Disk3D::nz_, Disk3D::nr_ }.
virtual double dnu() const
Get Disk3D::dnu_.