27 #ifndef __GyotoPatternDisk_H_
28 #define __GyotoPatternDisk_H_
35 namespace Astrobj {
class PatternDisk; }
132 virtual void
fitsRead(std::string filename_);
135 virtual void
fitsWrite(std::string filename_);
185 virtual void
copyIntensity(double const * const pattern = NULL,
186 size_t const naxes[3] = NULL);
205 virtual void
copyOpacity(double const * const pattern = NULL,
206 size_t const naxes[3] = NULL);
222 virtual void
copyVelocity(double const * const pattern = NULL,
223 size_t const naxes[2] = NULL);
246 virtual void
nu0(double freq);
247 virtual double
nu0() const;
249 virtual void
dnu(double dfreq);
250 virtual double
dnu() const;
252 void
phimin(double phimin);
255 void
phimax(double phimax);
263 void
getIndices(size_t i[3], double const co[4], double nu=0.) const ;
268 virtual double
emission(double nu_em, double dsem,
269 double c_ph[8], double c_obj[8]) const;
270 virtual double
transmission(double nu_em, double dsem, double coord[8]) const;
272 virtual void
getVelocity(double const pos[4], double vel[4]) ;
275 #ifdef GYOTO_USE_XERCES
276 virtual void
fillElement(FactoryMessenger *fmp) const ;
double nu0_
Lowest frequency provided in PatternDisk::emission_ in Hz.
Definition: GyotoPatternDisk.h:89
virtual void getIntensityNaxes(size_t naxes[3]) const
Get PatternDisk::nnu_, PatternDisk::nphi_, and PatternDisk::nr_.
virtual void copyOpacity(double const *const pattern=NULL, size_t const naxes[3]=NULL)
Set PatternDisk::opacity_.
virtual void setOuterRadius(double)
Set rout_.
double * velocity_
velocity(r, φ)
Definition: GyotoPatternDisk.h:69
double Omega_
Pattern angular velocity.
Definition: GyotoPatternDisk.h:80
void setVelocity(double *pattern)
Set PatternDisk::velocity__.
virtual double emission(double nu_em, double dsem, double coord_ph[8], double coord_obj[8]=NULL) const
Specific intensity Iν
size_t nnu_
Number of frequencies provided in PatternDisk::emission_.
Definition: GyotoPatternDisk.h:90
#define size_t
If not defined in <sys/types.h>.
Definition: GyotoConfig.h:293
virtual void copyGridRadius(double const *const pattern=NULL, size_t nr=0)
Set PatternDisk::radius_.
virtual double const * getOpacity() const
Get PatternDisk::opacity_.
virtual double emission(double nu_em, double dsem, double c_ph[8], double c_obj[8]) const
Specific intensity Iν
double phimin_
Minimum φ in grid.
Definition: GyotoPatternDisk.h:93
size_t nr_
Number of rows in the patternGrid size in the r direction.
Definition: GyotoPatternDisk.h:104
virtual void copyIntensity(double const *const pattern=NULL, size_t const naxes[3]=NULL)
Set PatternDisk::emission_.
void getIndices(size_t i[3], double const co[4], double nu=0.) const
Get emission_ cell corresponding to position co[4].
virtual size_t repeatPhi() const
Get PatternDisk::repeat_phi_.
double * radius_
Radius vector.
Definition: GyotoPatternDisk.h:74
virtual double const * getVelocity() const
Get PatternDisk::velocity_.
double dnu_
Frequency scale of PatternDisk::emission_ in Hz.
Definition: GyotoPatternDisk.h:88
double phimax() const
Get PatternDisk::phimax_.
virtual double getPatternVelocity()
Get PatternDisk::Omega_.
std::string filename_
Optional FITS file name containing the arrays.
Definition: GyotoPatternDisk.h:54
virtual void setOuterRadius(double)
Set rout_.
virtual double const * getGridRadius() const
Get PatternDisk::radius_.
Geometrically thin disks and rings.
Definition: GyotoThinDisk.h:68
Geometrically thin disk read from FITS file.
Definition: GyotoPatternDisk.h:51
double * opacity_
Same dimenstions as emission, or NULL.
Definition: GyotoPatternDisk.h:62
Geometrically thin disks and rings.
virtual int setParameter(std::string name, std::string content, std::string unit)
Set parameter by name.
virtual void fillElement(FactoryMessenger *fmp) const
Fill the generic XML bits.
virtual void fitsWrite(std::string filename_)
Write parameters and arrays to FITS file.
virtual PatternDisk * clone() const
Cloner.
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:51
double phimin() const
Get PatternDisk::phimin_.
virtual void setParameters(FactoryMessenger *fmp)
Main loop in Subcontractor_t function.
virtual void setPatternVelocity(double)
Set PatternDisk::Omega_.
virtual void setInnerRadius(double)
Set rin_.
size_t repeat_phi_
Number of times the pattern should be repeated to cover [0, 2Π].
Definition: GyotoPatternDisk.h:101
void setRadius(double *pattern)
Set PatternDisk::radius_.
virtual double const * getIntensity() const
Get PatternDisk::emission_.
virtual void copyVelocity(double const *const pattern=NULL, size_t const naxes[2]=NULL)
Set PatternDisk::velocity_.
double dr_
Radius step.
Definition: GyotoPatternDisk.h:103
double t0_
Date for which i=0 corresponds to phi=0.
Definition: GyotoPatternDisk.h:86
double * emission_
Iν(ν, r, φ)
Definition: GyotoPatternDisk.h:60
size_t nphi_
Grid size in the φ direction.
Definition: GyotoPatternDisk.h:94
virtual double nu0() const
Get PatternDisk::nu0_.
double phimax_
Maximum φ in grid.
Definition: GyotoPatternDisk.h:95
double dphi_
δφ between two grid columns
Definition: GyotoPatternDisk.h:92
virtual void setInnerRadius(double)
Set rin_.
virtual double transmission(double nu_em, double dsem, double coord[8]) const
Transmission: exp( αν * dsem )
virtual double dnu() const
Get PatternDisk::dnu_.
void setEmission(double *pattern)
Set PatternDisk::emission_.
virtual void fitsRead(std::string filename_)
Read parameters and arrays from FITS file.