27 #ifndef __GyotoDisk3D_H_ 28 #define __GyotoDisk3D_H_ 35 namespace Astrobj {
class Disk3D; }
113 void
fillProperty(Gyoto::FactoryMessenger *fmp, Property const &p) const;
126 #ifdef GYOTO_USE_CFITSIO 127 virtual void fitsRead(std::string filename);
141 virtual void fitsWrite(std::string filename,
142 const std::string & prefix = "");
145 void file(std::string const &f);
146 std::string file() const;
149 void tPattern(double t);
150 double tPattern() const;
151 void omegaPattern(double t);
152 double omegaPattern() const;
165 void
opacity(double * pattern);
194 size_t const naxes[4] = NULL);
202 virtual void copyOpacity(double const * const pattern = NULL,
203 size_t const naxes[4] = NULL);
206 virtual double const *
opacity() const;
221 virtual void
copyVelocity(double const * const pattern = NULL,
222 size_t const naxes[3] = NULL);
232 virtual void
nu0(double freq);
234 virtual double
nu0() const;
237 virtual void
dnu(double dfreq);
239 virtual double
dnu() const;
242 void
rin(double rrin);
247 void
rout(double rout);
252 void
zmin(double zmin);
257 void
zmax(double zmax);
262 void
phimin(double phimin);
267 void
phimax(double phimax);
272 void
getIndices(size_t i[4], double const co[4], double nu=0.) const ;
276 int
Impact(Photon *ph, size_t index, Astrobj::Properties *data);
286 virtual void
getVelocity(double const pos[4], double vel[4]) ;
double omegaPattern_
If the disk is being rotated (like a pattern disk) this is the rotation velocity dphi/dt.
Definition: GyotoDisk3D.h:106
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
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
virtual void getEmissquantNaxes(size_t naxes[4]) const
Get { Disk3D::nnu_, Disk3D::nphi_, Disk3D::nz_, Disk3D::nr_ }.
double dr_
Radius step.
Definition: GyotoDisk3D.h:98
void setVelocity(double *pattern)
Set Disk3D::velocity__.
virtual double const * getEmissquant() const
Get Disk3D::emissquant_.
double phimin_
Minimum φ in grid.
Definition: GyotoDisk3D.h:82
double dphi_
δφ between two grid columns
Definition: GyotoDisk3D.h:81
double rin() const
Get Disk3D::rin_.
virtual double dnu() const
Get Disk3D::dnu_.
#define size_t
If not defined in <sys/types.h>.
Definition: GyotoConfig.h:424
int Impact(Photon *ph, size_t index, Astrobj::Properties *data)
Does a photon at these coordinates impact the object?
double zmax() const
Get Disk3D::zmax_.
size_t repeat_phi_
Number of times the pattern should be repeated to cover [0, 2Π].
Definition: GyotoDisk3D.h:90
std::string filename_
Optional FITS file name containing the arrays.
Definition: GyotoDisk3D.h:59
double phimin() const
Get Disk3D::phimin_.
double nu0_
Lowest frequency provided in PatternDisk::emission_ in Hz.
Definition: GyotoDisk3D.h:78
void fillProperty(Gyoto::FactoryMessenger *fmp, Property const &p) const
Output a single Property to XML.
void getIndices(size_t i[4], double const co[4], double nu=0.) const
Get emissquant_ cell corresponding to position co[4].
double rout() const
Get Disk3D::rout_.
virtual double nu0() const
Get Disk3D::nu0_.
int zsym_
1 to symmetrize the grid z -> -z (default case)
Definition: GyotoDisk3D.h:103
size_t nnu_
Number of frequencies provided in PatternDisk::emission_.
Definition: GyotoDisk3D.h:79
size_t nphi_
Grid size in the φ direction.
Definition: GyotoDisk3D.h:83
double * velocity_
Velocity(r, z, phi)
Definition: GyotoDisk3D.h:75
virtual void copyVelocity(double const *const pattern=NULL, size_t const naxes[3]=NULL)
Set Disk3D::velocity_.
double phimax_
Maximum φ in grid.
Definition: GyotoDisk3D.h:84
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:46
double rin_
Inner radius of the grid.
Definition: GyotoDisk3D.h:99
virtual Disk3D * clone() const
Cloner.
double * opacity_
Opacity, same dimensions as emissquant_.
Definition: GyotoDisk3D.h:68
double zmin() const
Get Disk3D::zmin_.
Pointers performing reference counting.
Definition: GyotoProperty.h:45
double dnu_
Frequency scale of PatternDisk::emission_ in Hz.
Definition: GyotoDisk3D.h:77
double dz_
Altitude step.
Definition: GyotoDisk3D.h:93
double zmin_
Minimum altitude.
Definition: GyotoDisk3D.h:94
double tPattern_
If the disk is being rotated (like a pattern disk) this is the origin of time for this rotation...
Definition: GyotoDisk3D.h:105
double rout_
Outer radius of the grid.
Definition: GyotoDisk3D.h:101
void setEmissquant(double *pattern)
Set Disk3D::emissquant_.
virtual size_t repeatPhi() const
Get Disk3D::repeat_phi_.
virtual double const * opacity() const
Get Disk3D::opacity_.
Base class for astronomical object.
Definition: GyotoAstrobj.h:205
double * emissquant_
Physical quantity yielding emission.
Definition: GyotoDisk3D.h:66
size_t nz_
Grid size in the altitude direction.
Definition: GyotoDisk3D.h:95
double zmax_
Maximum altitude.
Definition: GyotoDisk3D.h:96
virtual double const * getVelocity() const
Get Disk3D::velocity_.
size_t nr_
Number of rows in the patternGrid size in the r direction.
Definition: GyotoDisk3D.h:100
double phimax() const
Get Disk3D::phimax_.