Gyoto
Namespaces | Classes | Typedefs | Functions
Gyoto Namespace Reference

Namespace for the Gyoto library. More...

Namespaces

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

#define GYOTO_QUANTITY_INTENSITY
Intensity: Iν at Scenery::freq_obs_.
Definition: GyotoDefs.h:83
#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. 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.
 

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]

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
mode1 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]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.

◆ 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]

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