View

View Base Class

template<typename T>
class View

Subclassed by sbody::Camera< T >

Public Functions

inline View(const Metric<T> &metric, T r, T theta, T iota, T v_alpha = 0.0, T 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<T, 8> &photon, T &photon_time, T alpha, T beta) const

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<T, 8> &position, TimeSystem object_time, boost::numeric::ublas::bounded_vector<T, 5> &record, T absolute_accuracy, T relative_accuracy, bool calculate_magnification, bool fast_trace_only, const InfraContext &infra_context) const
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<T, 8> &position, TimeSystem object_time, T &magnification, const boost::numeric::ublas::bounded_vector<T, 8> &photon, T doppler_factor) const

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

  • doppler_factor – Doppler factor \(g=1/(1+z)\) of the photon

Returns:

int

inline int Shadow(std::string file_name, const InfraContext &infra_context) const

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 T>
class Camera : public sbody::View<T>

Public Functions

inline Camera(const Metric<T> &metric, std::size_t pixel, T half_angle, T r, T theta, T iota)

Construct a new camera object.

Parameters:
  • pixel –

  • half_angle –

  • r –

  • theta –

  • file_name –

inline int Trace(std::vector<Object<T>*> &object_list, const InfraContext &infra_context)
Returns:

int

inline int Lens(InfraContext &infra_context)
Returns:

int

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

int

Flux Functions

Warning

doxygenfunction: Cannot find function “sbody::Flux” in doxygen xml output for project “SBody” from directory: ../doxygen

Warning

doxygenfunction: Cannot find function “sbody::FluxDensity” in doxygen xml output for project “SBody” from directory: ../doxygen