27#ifndef __GyotoPatternDisk_H_
28#define __GyotoPatternDisk_H_
112 void
fillProperty(Gyoto::FactoryMessenger *fmp, Property const &p) const;
135 virtual void file(std::string const &f);
136 virtual std::string file() const ;
138#ifdef GYOTO_USE_CFITSIO
194 size_t const naxes[3] = NULL);
214 size_t const naxes[3] = NULL);
231 size_t const naxes[2] = NULL);
254 virtual void
nu0(double freq);
255 virtual double
nu0() const;
257 virtual void
dnu(double dfreq);
258 virtual double
dnu() const;
267 void
getIndices(size_t i[3], double const co[4], double nu=0.) const ;
273 state_t const &c_ph, double const c_obj[8]=NULL) const;
274 virtual double
transmission(double nu_em, double dsem, state_t const &, double const coord[8]) const;
#define size_t
If not defined in <sys/types.h>.
Definition GyotoConfig.h:390
#define GYOTO_OBJECT
Declare class::properties and class::getProperties().
Definition GyotoObject.h:84
Geometrically thin disks and rings.
virtual double emission(double nu_em, double dsem, state_t const &coord_ph, double const coord_obj[8]=NULL) const
Specific intensity Iν.
Geometrically thin disk read from FITS file.
Definition GyotoPatternDisk.h:51
virtual void copyVelocity(double const *const pattern=NULL, size_t const naxes[2]=NULL)
Set PatternDisk::velocity_.
double phimin_
Minimum φ in grid.
Definition GyotoPatternDisk.h:93
double phimax_
Maximum φ in grid.
Definition GyotoPatternDisk.h:95
virtual void outerRadius(double)
Set rout_.
virtual void copyOpacity(double const *const pattern=NULL, size_t const naxes[3]=NULL)
Set PatternDisk::opacity_.
void setEmission(double *pattern)
Set PatternDisk::emission_.
virtual double const * opacity() const
Get PatternDisk::opacity_.
size_t nr_
Number of rows in the patternGrid size in the r direction.
Definition GyotoPatternDisk.h:104
double * emission_
Iν(ν, r, φ).
Definition GyotoPatternDisk.h:60
void getIndices(size_t i[3], double const co[4], double nu=0.) const
Get emission_ cell corresponding to position co[4].
double t0_
Date for which i=0 corresponds to phi=0.
Definition GyotoPatternDisk.h:86
double dr_
Radius step.
Definition GyotoPatternDisk.h:103
virtual double const * getGridRadius() const
Get PatternDisk::radius_.
void phimin(double phimin)
Set PatternDisk::phimin_.
double * radius_
Radius vector.
Definition GyotoPatternDisk.h:74
virtual void getIntensityNaxes(size_t naxes[3]) const
Get PatternDisk::nnu_, PatternDisk::nphi_, and PatternDisk::nr_.
double dphi_
δφ between two grid columns
Definition GyotoPatternDisk.h:92
virtual void patternVelocity(double)
Set PatternDisk::Omega_.
size_t nphi_
Grid size in the φ direction.
Definition GyotoPatternDisk.h:94
double Omega_
Pattern angular velocity.
Definition GyotoPatternDisk.h:80
virtual void copyGridRadius(double const *const pattern=NULL, size_t nr=0)
Set PatternDisk::radius_.
PatternDisk()
Standard constructor.
virtual void fitsRead(std::string filename_)
Read parameters and arrays from FITS file.
virtual void repeatPhi(size_t n)
Set PatternDisk::repeat_phi_.
virtual void nu0(double freq)
Set PatternDisk::nu0_.
double dnu_
Frequency scale of PatternDisk::emission_ in Hz.
Definition GyotoPatternDisk.h:88
void setVelocity(double *pattern)
Set PatternDisk::velocity__.
double * velocity_
velocity(r, φ)
Definition GyotoPatternDisk.h:69
double nu0_
Lowest frequency provided in PatternDisk::emission_ in Hz.
Definition GyotoPatternDisk.h:89
void fillProperty(Gyoto::FactoryMessenger *fmp, Property const &p) const
Output a single Property to XML.
size_t nnu_
Number of frequencies provided in PatternDisk::emission_.
Definition GyotoPatternDisk.h:90
virtual double transmission(double nu_em, double dsem, state_t const &, double const coord[8]) const
Transmission: exp( αν * dsem ).
double * opacity_
Same dimenstions as emission, or NULL.
Definition GyotoPatternDisk.h:62
virtual double const * getVelocity() const
Get PatternDisk::velocity_.
void radius(double *pattern)
Set PatternDisk::radius_.
virtual double emission(double nu_em, double dsem, state_t const &c_ph, double const c_obj[8]=NULL) const
Specific intensity Iν.
virtual double const * getIntensity() const
Get PatternDisk::emission_.
void phimax(double phimax)
Set PatternDisk::phimax_.
virtual void copyIntensity(double const *const pattern=NULL, size_t const naxes[3]=NULL)
Set PatternDisk::emission_.
virtual PatternDisk * clone() const
Cloner.
size_t repeat_phi_
Number of times the pattern should be repeated to cover [0, 2Π].
Definition GyotoPatternDisk.h:101
virtual void fitsWrite(std::string filename_)
Write parameters and arrays to FITS file.
std::string filename_
Optional FITS file name containing the arrays.
Definition GyotoPatternDisk.h:54
virtual void innerRadius(double)
Set rin_.
virtual void dnu(double dfreq)
Set PatternDisk::dnu_.
Geometrically thin disks and rings.
Definition GyotoThinDisk.h:71
virtual double innerRadius() const
Get rin_.
virtual double outerRadius() const
Get rout_.
Pointers performing reference counting.
Definition GyotoSmartPointer.h:135
Access to astronomical objects.
Definition GyotoAstrobj.h:49
Namespace for the Gyoto library.
Definition GyotoAstrobj.h:44