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

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 Trace(std::vector<Object<Type>*> &object_list)
Returns:

int

inline int Lens(std::optional<ProgressBar> &bars)
Returns:

int

inline int Save(std::string file_name)
Returns:

int