89 #ifndef __GyotoPython_H_ 90 #define __GyotoPython_H_ 222 virtual std::string module()
const ;
223 virtual std::string inlineModule()
const ;
233 virtual void module(
const std::string&);
243 virtual void inlineModule(
const std::string&);
246 virtual std::string klass()
const ;
261 virtual void klass(
const std::string& c);
264 virtual std::vector<double> parameters()
const;
271 virtual void parameters(
const std::vector<double>&);
308 PyObject * pIntegrate_;
327 bool pCall_overloaded_;
336 virtual Python * clone() const;
342 virtual std::string module() const ;
343 virtual void module(const std::string&);
344 virtual std::string inlineModule() const ;
345 virtual void inlineModule(const std::string&);
346 virtual std::string klass() const ;
347 virtual void klass(const std::string&);
348 virtual std::vector<double> parameters() const;
349 virtual void parameters(const std::vector<double>&);
351 virtual double operator()(double nu) const;
352 virtual double operator()(double nu, double opacity, double ds) const;
354 virtual double integrate(double nu1, double nu2) ;
390 PyObject * pChristoffel_;
397 virtual Python* clone() const ;
402 void spherical(bool);
403 bool spherical() const;
404 virtual std::string module() const ;
405 virtual void module(const std::string&);
406 virtual std::string inlineModule() const ;
407 virtual void inlineModule(const std::string&);
408 virtual std::string klass() const ;
409 virtual void klass(const std::string&);
410 virtual std::vector<double> parameters() const;
411 virtual void parameters(const std::vector<double>&);
413 virtual void mass(double m);
416 void gmunu(double g[4][4], const double * x) const ;
417 int christoffel(double dst[4][4][4], const double * x) const ;
437 PyObject *pEmission_, *pIntegrateEmission_, *pTransmission_, *pCall_,
438 *pGetVelocity_, *pGiveDelta_;
439 bool pEmission_overloaded_, pIntegrateEmission_overloaded_;
451 virtual double emission(double nu_em, double dsem, double coord_ph[8],
452 double coord_obj[8]=NULL) const ;
454 virtual void emission(double Inu[], double nu_em[], size_t nbnu,
455 double dsem, double coord_ph[8],
456 double coord_obj[8]=NULL) const ;
458 virtual double integrateEmission(double nu1, double nu2, double dsem,
459 double c_ph[8], double c_obj[8]=NULL) const;
461 virtual void integrateEmission(double * I, double const * boundaries,
462 size_t const * chaninds, size_t nbnu,
463 double dsem, double *cph, double *co) const;
465 virtual double transmission(double nuem, double dsem, double coord[8]) const ;
468 virtual double operator()(double const coord[4]) ;
469 virtual void getVelocity(double const pos[4], double vel[4]) ;
470 virtual double giveDelta(double coord[8]);
473 virtual std::string module() const ;
474 virtual void module(const std::string&);
475 virtual std::string inlineModule() const ;
476 virtual void inlineModule(const std::string&);
477 virtual std::string klass() const ;
478 virtual void klass(const std::string&);
479 virtual std::vector<double> parameters() const;
480 virtual void parameters(const std::vector<double>&);
481 virtual double criticalValue() const ;
482 virtual void criticalValue(double) ;
502 PyObject *pEmission_, *pIntegrateEmission_, *pTransmission_, *pCall_,
503 *pGetVelocity_, *pGiveDelta_;
504 bool pEmission_overloaded_, pIntegrateEmission_overloaded_;
516 virtual double emission(double nu_em, double dsem, double coord_ph[8],
517 double coord_obj[8]=NULL) const ;
519 virtual void emission(double Inu[], double nu_em[], size_t nbnu,
520 double dsem, double coord_ph[8],
521 double coord_obj[8]=NULL) const ;
523 virtual double integrateEmission(double nu1, double nu2, double dsem,
524 double c_ph[8], double c_obj[8]=NULL) const;
526 virtual void integrateEmission(double * I, double const * boundaries,
527 size_t const * chaninds, size_t nbnu,
528 double dsem, double *cph, double *co) const;
530 virtual double transmission(double nuem, double dsem, double coord[8]) const ;
533 virtual double operator()(double const coord[4]) ;
534 virtual void getVelocity(double const pos[4], double vel[4]) ;
537 virtual std::string module() const ;
538 virtual void module(const std::string&);
539 virtual std::string inlineModule() const ;
540 virtual void inlineModule(const std::string&);
541 virtual std::string klass() const ;
542 virtual void klass(const std::string&);
543 virtual std::vector<double> parameters() const;
544 virtual void parameters(const std::vector<double>&);
PyObject * pGyotoMetric()
Get reference to the Metric constructor in the gyoto Python extension.
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:83
double mass() const
Get mass used in unitLength()
PyObject * pModule_
Reference to the python module once it has been loaded.
Definition: GyotoPython.h:210
std::string class_
Name of the Python class that we want to expose.
Definition: GyotoPython.h:196
PyObject * pGyotoThinDisk()
Get reference to the ThinDisk constructor in the gyoto Python extension.
void PyInstance_SetThis(PyObject *pInstance, PyObject *pNew, void *ptr)
Set "this" attribute in instance.
Base class for metrics.
Definition: GyotoMetric.h:148
PyObject * pInstance_
Reference to the python instance once it has been instantiated.
Definition: GyotoPython.h:215
PyObject * pGyotoSpectrum()
Get reference to the Spectrum constructor in the gyoto Python extension.
std::string module_
Name of the Python module that holds the class.
Definition: GyotoPython.h:183
Astronomical objects defined bya a potential/distance.
std::string inline_module_
Python source code for module that holds the class.
Definition: GyotoPython.h:189
PyObject * PyImport_Gyoto()
Return refernce to the gyoto module, or NULL.
Base class for metric description.
Geometrically thin disks and rings.
Definition: GyotoThinDisk.h:68
Metric coded in Python.
Definition: GyotoPython.h:374
Coding a Gyoto::Astrobj::Standard in Python.
Definition: GyotoPython.h:430
Geometrically thin disks and rings.
Spectrum of a simple object (e.g. Star)
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
PyObject * PyInstance_GetMethod(PyObject *pInstance, const char *name)
Return new reference to method, or NULL if method not found.
Pointers performing reference counting.
Definition: GyotoProperty.h:41
Coding a Gyoto::Astrobj::ThinDisk in Python.
Definition: GyotoPython.h:495
Spectrum emitted by an Astrobj.
Definition: GyotoSpectrum.h:126
Loader for Python classes implementing the Spectrum interface.
Definition: GyotoPython.h:290
Astronomical objects defined bya a potential/distance.
Definition: GyotoStandardAstrobj.h:84
Base class for classes in the Python plug-in.
Definition: GyotoPython.h:175
PyObject * pGyotoStandardAstrobj()
Get reference to the StandardAstrobj constructor in the gyoto Python extension.
bool PyCallable_HasVarArg(PyObject *pMethod)
Check whether method accepts the varargs argument.
PyObject * PyModule_NewFromPythonCode(const char *code)
Create module from Python source code in a C string.
std::vector< double > parameters_
Parameters that this class needs.
Definition: GyotoPython.h:205