View
-
template<typename Type>
class View Subclassed by SBody::Camera< Type >
Public Functions
-
inline View(std::shared_ptr<Metric<Type>> metric, Type r, Type theta, Type iota, Type v_alpha = 0.0, Type v_beta = 0.0)
Constructor.
- Parameters:
r – Distance to the black hole
theta – Angle between the observer and the \(z\) axis, \(\theta\).
iota – Rotational angle of the coordiante of the view, \(\iota\).
-
inline int InitializePhoton(boost::numeric::ublas::bounded_vector<Type, 8> &photon, Type &photon_time, Type alpha, Type beta)
Initialize the position and velocity of a trace back photon.
- Parameters:
photon – 9 dimensional vector, photon[8] is used to store the look back time.
alpha – x position of the target in the observer’s view.
beta – y position of the target in the observer’s view.
- Returns:
status
-
inline int Trace(const boost::numeric::ublas::bounded_vector<Type, 8> &position, TimeSystem object_time, boost::numeric::ublas::bounded_vector<Type, 5> &record, bool calculate_magnification, bool fast_trace = true)
- Parameters:
position – 8 dimensional vector
object_time – time system of the object
record – position to save the observational values
calculate_magnification – switch of the magnification calculation
fast_trace – switch of the fast trace
- Returns:
status
-
inline int Magnification(const boost::numeric::ublas::bounded_vector<Type, 8> &position, TimeSystem object_time, Type &magnification, const boost::numeric::ublas::bounded_vector<Type, 8> &photon, Type redshift)
Calculate the magnification of the object.
- Parameters:
position – 8 dimensional vector
object_time – time system of the object
magnification – position to save the magnification
photon – 8 dimensional vector of the photon traced to the object
redshift – redshift of the photon
- Returns:
int
-
inline int Shadow(std::string file_name, std::optional<ProgressBar> &bars)
Calculate the radius of the black hole shadow at different direction, saved in the file.
- Parameters:
file_name – file name.
- Returns:
status
-
inline View(std::shared_ptr<Metric<Type>> metric, Type r, Type theta, Type iota, Type v_alpha = 0.0, Type v_beta = 0.0)
Camera
-
template<typename Type>
class Camera : public SBody::View<Type> Public Functions
-
inline Camera(std::shared_ptr<Metric<Type>> metric, std::size_t pixel, Type half_angle, Type r, Type theta, Type iota)
Construct a new camera object.
- Parameters:
pixel –
half_angle –
r –
theta –
file_name –
-
inline int Lens(std::optional<ProgressBar> &bars)
- Returns:
int
-
inline int Save(std::string file_name)
- Returns:
int
-
inline Camera(std::shared_ptr<Metric<Type>> metric, std::size_t pixel, Type half_angle, Type r, Type theta, Type iota)