/usr/include/Gyoto/GyotoThinDiskPL.h is in libgyoto2-dev 0.2.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | /**
* \file GyotoThinDiskPL.h
* \brief A subclass of ThinDisk emitting according to a powerlaw
*
* The target of ray-traced Gyoto::Photon
*/
/*
Copyright 2011 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 __GyotoThinDiskPL_H_
#define __GyotoThinDiskPL_H_
#include <iostream>
#include <fstream>
#include <iomanip>
namespace Gyoto{
namespace Astrobj { class ThinDiskPL; }
}
//#include <GyotoMetric.h>
#include <GyotoThinDisk.h>
#include <GyotoBlackBodySpectrum.h>
/**
* \class Gyoto::Astrobj::ThinDiskPL
* \brief Geometrically thin disk with black-body emission
*
* Mass density varies with a power-law, temperature depends on density.
*
* ρ = ρ<SUB>0</SUB> (r<SUB>cur</SUB>/r<SUB>0</SUB>)<SUP>α</SUP>
*
* XML entities:
* - PLSlope: ThinDiskPL::PLSlope_
* - PLRho: ThinDiskPL::PLRho_
* - PLRadRef: ThinDiskPL::PLRadRef_
*/
class Gyoto::Astrobj::ThinDiskPL : public Astrobj::ThinDisk {
friend class Gyoto::SmartPointer<Gyoto::Astrobj::ThinDiskPL>;
private:
double PLSlope_; ///< Power law index
double PLRho_; ///< Reference density
double PLRadRef_; ///< Reference radius
protected:
SmartPointer<Spectrum::BlackBody> spectrumBB_; ///< disk black body
// Constructors - Destructor
// -------------------------
public:
ThinDiskPL(); ///< Standard constructor
ThinDiskPL(const ThinDiskPL& ) ;///< Copy constructor
virtual ThinDiskPL* clone () const; ///< Cloner
virtual ~ThinDiskPL() ; ///< Destructor
// Accessors
// ---------
public:
using ThinDisk::emission;
virtual double emission(double nu_em, double dsem,
double c_ph[8],double c_obj[8]) const;
private:
/**
* \brief emission() helper
*/
double emissionBB(double nu, double co[8]) const;
public:
int setParameter(std::string name, std::string content, std::string unit);
#ifdef GYOTO_USE_XERCES
virtual void fillElement(FactoryMessenger *fmp) const ; ///< called from Factory
#endif
};
#endif
|