GyotoThinDiskIronLine.h
Go to the documentation of this file.
/*
Copyright 2013-2015, 2018 Frederic Vincent, Thibaut Paumard
This file is part of Gyoto.
Gyoto is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Gyoto is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __GyotoThinDiskIronLine_h
#define __GyotoThinDiskIronLine_h
#include <GyotoThinDisk.h>
namespace Gyoto {
namespace Astrobj {
class ThinDiskIronLine;
}
}
class Gyoto::Astrobj::ThinDiskIronLine
: public Gyoto::Astrobj::ThinDisk {
friend class Gyoto::SmartPointer<Gyoto::Astrobj::ThinDiskIronLine>;
private:
double plindex_;
double linefreq_;
double cutradius_;
public:
GYOTO_OBJECT;
ThinDiskIronLine();
ThinDiskIronLine(const ThinDiskIronLine &o);
virtual ~ThinDiskIronLine();
virtual ThinDiskIronLine * clone() const ;
using ThinDisk::emission;
virtual double emission(double nu_em, double dsem,
state_t const &c_ph, double const c_obj[8]=NULL) const;
void getVelocity(double const pos[4], double vel[4]);
// standard pairs of accessors
GYOTO_OBJECT_ACCESSORS(double, PowerLawIndex);
GYOTO_OBJECT_ACCESSORS(double, LineFreq);
void LineFreq(double v, std::string const &u);
double LineFreq(std::string const &u)const;
GYOTO_OBJECT_ACCESSORS(double, CutRadius);
void CutRadius(double v, std::string const &u);
double CutRadius(std::string const &u)const;
};
#endif
GYOTO_OBJECT
#define GYOTO_OBJECT
Declare class::properties and class::getProperties().
Definition GyotoObject.h:84
GyotoThinDisk.h
Geometrically thin disks and rings.
Gyoto::Astrobj::Generic::emission
virtual double emission(double nu_em, double dsem, state_t const &coord_ph, double const coord_obj[8]=NULL) const
Specific intensity Iν.
Gyoto::Astrobj::ThinDisk
Geometrically thin disks and rings.
Definition GyotoThinDisk.h:71
Gyoto::Astrobj::ThinDiskIronLine
Definition GyotoThinDiskIronLine.h:34
Gyoto::Astrobj::ThinDiskIronLine::linefreq_
double linefreq_
intrinsic line frequency (Hz)
Definition GyotoThinDiskIronLine.h:38
Gyoto::Astrobj::ThinDiskIronLine::plindex_
double plindex_
power law index for line emission
Definition GyotoThinDiskIronLine.h:37
Gyoto::Astrobj::ThinDiskIronLine::emission
virtual double emission(double nu_em, double dsem, state_t const &c_ph, double const c_obj[8]=NULL) const
Specific intensity Iν.
Gyoto::Astrobj::ThinDiskIronLine::clone
virtual ThinDiskIronLine * clone() const
Cloner.
Gyoto::Astrobj::ThinDiskIronLine::cutradius_
double cutradius_
r<cutradius_ -> emission = 0
Definition GyotoThinDiskIronLine.h:39
Gyoto::Astrobj::ThinDiskIronLine::getVelocity
void getVelocity(double const pos[4], double vel[4])
Get fluid 4-velocity at point.
Gyoto::SmartPointer
Pointers performing reference counting.
Definition GyotoSmartPointer.h:135
Gyoto::Astrobj
Access to astronomical objects.
Definition GyotoAstrobj.h:49
Gyoto
Namespace for the Gyoto library.
Definition GyotoAstrobj.h:44