Gyoto
Namespaces | Classes | Typedefs | Functions
Gyoto Namespace Reference

Namespace for the Gyoto library. More...

Namespaces

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

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  NumericalMetricLorene
 Class for 3+1 numerical metrics computed by LORENE. This class can handle (so far) any kind of LORENE metric, stars, collapsing stars, Kerr, boson star e.g. More...
 
class  Object
 Object with properties. More...
 
class  Photon
 A null geodesic transporting light. 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  SmartPointer
 Pointers performing reference counting. 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.

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. More...
 
void * loadPlugin (char const *const plugname, int nofail=0)
 Load a plugin by name. More...
 
bool havePlugin (std::string plugname)
 Check whether a given plug-in has already been loaded. More...
 
void requirePlugin (std::string plugname, int nofail=0)
 Load a plugin by name, only if not loaded yet. More...
 
void debug (int mode)
 Set debug mode. More...
 
int debug ()
 Get debug mode. More...
 
void verbose (int mode)
 Set verbosity level. More...
 
int verbose ()
 Get verbosity level. More...
 
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) More...
 
double atof (const char *str)
 Interpret C string as double. More...
 
void help (std::string class_name)
 Print help on class. More...
 
std::vector< std::string > split (std::string const &src, std::string const &delim)
 Split string.
 
double bessi0 (double xx)
 Bessel function computation. More...
 
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. More...
 
void matrix4CircularInvert (double ARGOUT_ARRAY2[4][4], double const IN_ARRAY2[4][4])
 Invert 4x4 circular spacetime metric. More...
 

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]strC 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]xLengths to convert, in geometrical units on input, in specified unit on output.
[in]nelemSize of x array.
[in]mass_sunBlack-hole mass in Solar masses.
[in]distance_kpcDistance from observer in kiloparsecs.
[in]unitOne of "geometrical", "m", "km", "sun radius", "rad", "degree", "arcmin", "arcsec", "mas", "uas".

◆ debug() [1/2]

void Gyoto::debug ( int  mode)

Set debug mode.

Parameters
mode1 to turn on debug mode, 0 to turn it off.

◆ debug() [2/2]

int Gyoto::debug ( )

Get debug mode.

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

◆ havePlugin()

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

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

Parameters
[in]plugnamestd::string Plug-in name.

◆ help()

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

Print help on class.

Parameters
[in]class_namee.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]plugnameC string Plug-in name.
[in]nofailint 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_ARRAY2the 4×4 matrix to invert
[out]ARGOUT_ARRAY2the 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_ARRAY2the 4×4 matrix to invert
[out]ARGOUT_ARRAY2the 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]plugnamestd::string Plug-in name.
[in]nofailint 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]

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

◆ verbose() [2/2]

int Gyoto::verbose ( )

Get verbosity level.

See verbose(int mode).