Gyoto
GyotoStandardAstrobj.h
Go to the documentation of this file.
1
13/*
14 Copyright 2011 Thibaut Paumard, Frederic Vincent
15
16 This file is part of Gyoto.
17
18 Gyoto is free software: you can redistribute it and/or modify
19 it under the terms of the GNU General Public License as published by
20 the Free Software Foundation, either version 3 of the License, or
21 (at your option) any later version.
22
23 Gyoto is distributed in the hope that it will be useful,
24 but WITHOUT ANY WARRANTY; without even the implied warranty of
25 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 GNU General Public License for more details.
27
28 You should have received a copy of the GNU General Public License
29 along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
30 */
31
32
33#ifndef __GyotoStandardAstrobj_H_
34#define __GyotoStandardAstrobj_H_
35
36#include <iostream>
37#include <fstream>
38#include <iomanip>
39#include <string>
40
41#include "GyotoAstrobj.h"
42#include "GyotoFunctors.h"
43
44namespace Gyoto{
45 namespace Astrobj {
46 class Standard;
47 }
48}
49
87{
89
90
91 // Data :
92 // -----
93 protected:
96 double delta_inobj_;
97
98 // Constructors - Destructor
99 // -------------------------
100 public:
102
107
111 Standard(double radmax);
112
116 Standard(std::string kind);
117
121 Standard(const Standard& ) ;
122
123 virtual ~Standard() ;
124
125 // Accessors
126 // ---------
127 public:
128 virtual void safetyValue(double val) ;
129 virtual double safetyValue() const ;
130
136 double deltaInObj() const;
137 void deltaInObj(double val);
138
139 // Outputs
140 // -------
141 public:
142 virtual int Impact(Gyoto::Photon* ph, size_t index,
143 Astrobj::Properties *data=NULL) ;
144
155 virtual double operator()(double const coord[4]) = 0;
156
165 virtual void getVelocity(double const pos[4], double vel[4]) = 0 ;
166
177 virtual double giveDelta(double coord[8]);
178
179
180
181};
182
183
184#endif
Astronomical objects (light emitters)
Classes with an operator() method.
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
Base class for astronomical object.
Definition: GyotoAstrobj.h:199
Astronomical objects defined bya a potential/distance.
Definition: GyotoStandardAstrobj.h:87
double critical_value_
See operator()(double const coord[4])
Definition: GyotoStandardAstrobj.h:94
virtual int Impact(Gyoto::Photon *ph, size_t index, Astrobj::Properties *data=NULL)
Does a photon at these coordinates impact the object?
double delta_inobj_
Constant value of the integration step inside object, in units of the compact object's mass M.
Definition: GyotoStandardAstrobj.h:96
double deltaInObj() const
Get Generic::delta_inobj_.
virtual double giveDelta(double coord[8])
Maximum δ inside object.
virtual double safetyValue() const
Get Standard::safety_value_.
virtual void getVelocity(double const pos[4], double vel[4])=0
Fluid velocity field.
double safety_value_
See operator()(double const coord[4])
Definition: GyotoStandardAstrobj.h:95
A functor like double (func) (double const data[])
Definition: GyotoFunctors.h:44
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:135
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43