Gyoto Namespace Reference

Namespace for the Gyoto library. More...

## Namespaces

namespace | Register
| Gyoto registers.
namespace | Metric
| Access to metrics.
namespace | Astrobj
| Access to astronomical objects.
namespace | Spectrum
| Spectrum of a simple object (e.g. a Gyoto::Astrobj::Star).
namespace | Spectrometer
| Access to spectrometers.
namespace | Units
| Units-related classes and functions.
namespace | Functor
| Classes with an operator() method.
namespace | Hook
| Listeners attach to Tellers.
namespace | Python
| Helpers for the classes deriving from Gyoto::Python::Base.

## Classes

class | Error
| Class for thowing exceptions. More...
class | Factory
| XML input/output. More...
class | FactoryMessenger
| Factory / SmartPointee::Subcontractor_t interface. More...
class | FitsRW
class | GridData2D
| Class for reading data stored in a 2D grid. More...
class | Object
| Object with properties. More...
class | Photon
| A null geodesic transporting light. More...
class | SmartPointer
| Pointers performing reference counting. More...
class | Property
| Property that can be set and got using standard methods. More...
class | Scenery
| Ray-tracing scene. More...
class | Screen
| The camera with which the Astrobj is observed. More...
class | SmartPointee
| Can be pointed to by a SmartPointer. More...
class | Value
| Container for the value of a Property. More...
class | WIP
| Base class for work in progress. More...
class | Worldline
| Timelike or null geodesics. More...

## Typedefs

typedef std::vector< double > | state_t
Observable quantities

Individual quantities are represented as a variable of this type. A combination of quantities is an ored list of Quantity_t, e.g.

GYOTO_QUANTITY_INTENSITY | GYOTO_QUANTITY_EMISSIONTIME
GYOTO_QUANTITY_INTENSITY
#define GYOTO_QUANTITY_INTENSITY
Intensity: Iν at Scenery::freq_obs_.
Definition GyotoDefs.h:83
GYOTO_QUANTITY_EMISSIONTIME
#define GYOTO_QUANTITY_EMISSIONTIME
EmissionTime: Emission date.
Definition GyotoDefs.h:85

To check wheter a given quantity is listed in a Quantity_t variable quant:

if (quant & GYOTOQUANTITY_EMISSION) ...

List of all possible Quantity_t individual values and the corresponding string (see Gyoto::Scenery) with corresponding XML name:

typedef unsigned int | Quantity_t
| Type for observabke quantities.
Gyoto messages

Controling which messages are shown to the user

The user should be able to choose which messages are shown to her. In Gyoto, this is determined by a user-settable verbosity level (see Gyoto::verbose()) and a user-settable debug mode (see Goyto::debug()).

The following macros define various debug and verbosity level and provide short-cuts to display formatted messages only at a given verbosity level or in debug mode.

typedef unsigned int | Verbosity_t
| Type for verbosity levels.
Coordinate system kind
GYOTO_COORDKIND_CARTESIAN or GYOTO_COORDKIND_SPHERICAL Every Gyoto::Metric has a coordinate system kind. It can be used by functions which need to express coordinates always in spherical or always in Cartesian form, with trivial conversion between the two.
typedef unsigned int | CoordKind_t
| Type for coordinate system kinds.

## Functions

void | throwError (std::string)
| Throw a Gyoto::Error.
void * | loadPlugin (char const *const plugname, int nofail=0)
| Load a plugin by name.
bool | havePlugin (std::string plugname)
| Check whether a given plug-in has already been loaded.
void | requirePlugin (std::string plugname, int nofail=0)
| Load a plugin by name, only if not loaded yet.
void | debug (int mode)
| Set debug mode.
int | debug ()
| Get debug mode.
void | verbose (int mode)
| Set verbosity level.
int | verbose ()
| Get verbosity level.
void | convert (double *const x, const std::size_t nelem, const double mass_sun, const double distance_kpc, const std::string unit)
| Convert lengths (deprecated).
double | atof (const char *str)
| Interpret C string as double.
void | help (std::string class_name)
| Print help on class.
std::vector< std::string > | split (std::string const &src, std::string const &delim)
| Split string.
double | bessi0 (double xx)
| Bessel function computation.
double | bessi1 (double xx)
| Modified Bessel function I1.
double | bessk0 (double xx)
| Modified Bessel function K0.
double | bessk1 (double xx)
| Modified Bessel function K1.
double | bessk (int nn, double xx)
| Modified Bessel function.
double | hypergeom (double kappaIndex, double thetae)
| Gauss hypergeometric 2F1 term for kappa-distribution synchrotron.
void | cartesianToSpherical (double const cpos[3], double spos[3])
| Tranform from Cartesian 3-position to spherical 3-position.
void | sphericalToCartesian (double const spos[3], double cpos[3])
| Tranform from spherical 3-position to Cartesian 3-position.
void | matrix4Invert (double ARGOUT_ARRAY2[4][4], double const IN_ARRAY2[4][4])
| Invert 4x4 matrix.
void | matrix4CircularInvert (double ARGOUT_ARRAY2[4][4], double const IN_ARRAY2[4][4])
| Invert 4x4 circular spacetime metric.

## Detailed Description

Namespace for the Gyoto library.

## Function Documentation

## atof()

double Gyoto::atof | ( | const char * | str | ) |

Interpret C string as double.

Wrapper around std::atof() that also interprets DBL_MIN, DBL_MAX, -DBL_MIN and -DBL_MAX.

If str starts with "(-)DBL_M" and is not one of the four special values, then an error is thrown.

Parameters

  [in] | str | C string to interpret

Returns
  double valu represented by str.

## bessi0()

double Gyoto::bessi0 | ( | double | xx | ) |

Bessel function computation.

Modified Bessel function I0

## convert()

void Gyoto::convert | ( | double *const | x,
|  | const std::size_t | nelem,
|  | const double | mass_sun,
|  | const double | distance_kpc,
|  | const std::string | unit )

Convert lengths (deprecated).

Deprecated
  Will be removed once it is not used anymore in Gyoto per se. Prefer Gyoto::Units framework.

Parameters

  [in,out] | x | Lengths to convert, in geometrical units on input, in specified unit on output.
  [in] | nelem | Size of x array.
  [in] | mass_sun | Black-hole mass in Solar masses.
  [in] | distance_kpc | Distance from observer in kiloparsecs.
  [in] | unit | One of "geometrical", "m", "km", "sun radius", "rad", "degree", "arcmin", "arcsec", "mas", "uas".

## debug() [1/2]

int Gyoto::debug | ( |  | ) |

Get debug mode.

Returns
  >=1 if debug mode is on, else 0.

## debug() [2/2]

void Gyoto::debug | ( | int | mode | ) |

Set debug mode.

Parameters

  mode | 1 to turn on debug mode, 0 to turn it off.

## havePlugin()

bool Gyoto::havePlugin | ( | std::string | plugname | ) |

Check whether a given plug-in has already been loaded.

Parameters

  [in] | plugname | std::string Plug-in name.

## help()

void Gyoto::help | ( | std::string | class_name | ) |

Print help on class.

Parameters

  [in] | class_name | e.g. "Gyoto::Screen", "Gyoto::Astrobj::Torus".

## loadPlugin()

void * Gyoto::loadPlugin | ( | char const *const | plugname,
|  | int | nofail = 0 )

Load a plugin by name.

Uses dlopen to load the file libgyoto-<plugname>.so, looks for the function __Gyoto<plugname>Init inside it and run it. Plug-ins must be located in the runtime link search path, or in GYOTO_PKGLIBDIR, or in GYOTO_PKGLIBDIR/GYOTO_SOVERS/.

Parameters

  [in] | plugname | C string Plug-in name.
  [in] | nofail | int Unless nofail evals to true, the inability to find a plug-in or to run the initialization function inside it throws an Gyoto::Error. If nofail is 2 or more, such conditions are silently ignored. If nofail is one, those conditions trigger a warning.

Returns
  void* handle to the dlopen'ed plug-in.

## matrix4CircularInvert()

void Gyoto::matrix4CircularInvert | ( | double | ARGOUT_ARRAY2[4][4],
|  | double const | IN_ARRAY2[4][4] )

Invert 4x4 circular spacetime metric.

A circular spacetime metric (in the right coordinate system)

- is symmetrical (like all metric matrices);
- has only 6 non-zero element: the diagonal and the corners.

Parameters

  [in] | IN_ARRAY2 | the 4×4 matrix to invert
  [out] | ARGOUT_ARRAY2 | the invert matrix of IN_ARRAY2

## matrix4Invert()

void Gyoto::matrix4Invert | ( | double | ARGOUT_ARRAY2[4][4],
|  | double const | IN_ARRAY2[4][4] )

Invert 4x4 matrix.

Parameters

  [in] | IN_ARRAY2 | the 4×4 matrix to invert
  [out] | ARGOUT_ARRAY2 | the invert matrix of IN_ARRAY2

## requirePlugin()

void Gyoto::requirePlugin | ( | std::string | plugname,
|  | int | nofail = 0 )

Load a plugin by name, only if not loaded yet.

Parameters

  [in] | plugname | std::string Plug-in name.
  [in] | nofail | int Unless nofail evals to true, the inability to find a plug-in or to run the initialization function inside it throws an Gyoto::Error. If nofail is 2 or more, such conditions are silently ignored. If nofail is one, those conditions trigger a warning.

## throwError()

void Gyoto::throwError | ( | std::string |  | ) |

Throw a Gyoto::Error.

Most code should use the GYOTO_ERROR macro instead

## verbose() [1/2]

int Gyoto::verbose | ( |  | ) |

Get verbosity level.

See verbose(int mode).

## verbose() [2/2]

void Gyoto::verbose | ( | int | mode | ) |

Set verbosity level.

See standard verbosity levels defined in GyotoDefs.h:

- GYOTO_DEFAULT_DEBUG_MODE
- GYOTO_QUIET_VERBOSITY
- GYOTO_SEVERE_VERBOSITY
- GYOTO_WARNING_VERBOSITY
- GYOTO_DEFAULT_VERBOSITY
- GYOTO_INFO_VERBOSITY
- GYOTO_DEBUG_VERBOSITY