24 #ifndef __GyotoDefs_H_ 25 #define __GyotoDefs_H_ 41 #define sincos(t, s, c) *s=sin(t); *c=cos(t) 44 # define sincos(t, s, c) (undefined) 50 typedef std::vector<double> state_t;
80 #define GYOTO_QUANTITY_NONE 0 83 #define GYOTO_QUANTITY_INTENSITY 1<<0 84 #define GYOTO_QUANTITY_EMISSIONTIME 1<<1 90 #define GYOTO_QUANTITY_MIN_DISTANCE 1<<2 91 #define GYOTO_QUANTITY_FIRST_DMIN 1<<3 93 #define GYOTO_QUANTITY_REDSHIFT 1<<4 99 #define GYOTO_QUANTITY_IMPACTCOORDS 1<<5 100 #define GYOTO_QUANTITY_SPECTRUM 1<<6 102 #define GYOTO_QUANTITY_SPECTRUM_STOKES_Q 1<<7 104 #define GYOTO_QUANTITY_SPECTRUM_STOKES_U 1<<8 106 #define GYOTO_QUANTITY_SPECTRUM_STOKES_V 1<<9 108 #define GYOTO_QUANTITY_BINSPECTRUM 1<<10 110 #define GYOTO_QUANTITY_NBCROSSEQPLANE 1<<11 114 #define GYOTO_QUANTITY_USER1 1<<31 115 #define GYOTO_QUANTITY_USER2 1<<30 117 #define GYOTO_QUANTITY_USER3 1<<29 119 #define GYOTO_QUANTITY_USER4 1<<28 121 #define GYOTO_QUANTITY_USER5 1<<27 123 #define GYOTO_QUANTITY_SPECTRAL (GYOTO_QUANTITY_SPECTRUM | GYOTO_QUANTITY_SPECTRUM_STOKES_Q | GYOTO_QUANTITY_SPECTRUM_STOKES_U | GYOTO_QUANTITY_SPECTRUM_STOKES_V | GYOTO_QUANTITY_BINSPECTRUM) 125 #define GYOTO_QUANTITY_SPECTRUM_STOKES (GYOTO_QUANTITY_SPECTRUM | GYOTO_QUANTITY_SPECTRUM_STOKES_Q | GYOTO_QUANTITY_SPECTRUM_STOKES_U | GYOTO_QUANTITY_SPECTRUM_STOKES_V) 147 #define GYOTO_DEFAULT_DEBUG_MODE 0 155 #define GYOTO_QUIET_VERBOSITY 1 164 #define GYOTO_SEVERE_VERBOSITY 3 173 #define GYOTO_WARNING_VERBOSITY GYOTO_SEVERE_VERBOSITY 182 #define GYOTO_DEFAULT_VERBOSITY 5 191 #define GYOTO_INFO_VERBOSITY 10 201 #define GYOTO_DEBUG_VERBOSITY 3000 213 #define GYOTO_QUIET if (Gyoto::verbose() >= GYOTO_QUIET_VERBOSITY) std::cout 221 #define GYOTO_SEVERE if(Gyoto::verbose()>=GYOTO_SEVERE_VERBOSITY) std::cerr<<"SEVERE: " 229 #define GYOTO_WARNING if(Gyoto::verbose()>=GYOTO_SEVERE_VERBOSITY) std::cerr<<"WARNING: " 240 #define GYOTO_MSG if (Gyoto::verbose() >= GYOTO_DEFAULT_VERBOSITY) std::cout 251 #define GYOTO_INFO if (Gyoto::verbose() >= GYOTO_INFO_VERBOSITY) std::cerr<<"INFO: " 261 #define GYOTO_WARNING_UDUNITS(from, to) \ 262 GYOTO_WARNING << "unit ignored (trying to convert from \"" << from \ 265 << "\"), you may have more chance recompiling Gyoto with --with-udunits\n" 280 #define GYOTO_DEBUG_EXPR(a) GYOTO_DEBUG << #a << "=" << a << std::endl 294 #define GYOTO_DEBUG_THIS_EXPR(a) GYOTO_DEBUG_THIS << #a << "=" << a << std::endl 313 #define GYOTO_DEBUG_ARRAY(a,n) if (GYOTO_DEBUG_MODE) { \ 314 std::cerr << "DEBUG: " << __PRETTY_FUNCTION__ << ": " \ 315 << #a << "=[" << a[0] ; \ 316 for (size_t _gyoto_debug_array_i=1; _gyoto_debug_array_i < n; \ 317 ++_gyoto_debug_array_i) \ 318 std::cerr << "," << a[_gyoto_debug_array_i] ; \ 319 std::cerr << "]" << std::endl ;} 338 #define GYOTO_DEBUG_THIS_ARRAY(a,n) { \ 339 std::cerr << "DEBUG: " << __PRETTY_FUNCTION__ << ": " \ 340 << #a << "=[" << a[0] ; \ 341 for (size_t _gyoto_debug_array_i=1; _gyoto_debug_array_i < n; \ 342 ++_gyoto_debug_array_i) \ 343 std::cerr << "," << a[_gyoto_debug_array_i] ; \ 344 std::cerr << "]" << std::endl ;} 355 #define GYOTO_DEBUG_THIS std::cerr << "DEBUG: " << __PRETTY_FUNCTION__ << ": " 367 #define GYOTO_DEBUG if (GYOTO_DEBUG_MODE) GYOTO_DEBUG_THIS 374 #define GYOTO_IF_DEBUG if (GYOTO_DEBUG_MODE) { 381 #define GYOTO_ENDIF_DEBUG } 384 #define GYOTO_DEBUG_MODE Gyoto::debug() 401 #define GYOTO_COORDKIND_UNSPECIFIED 0 402 #define GYOTO_COORDKIND_CARTESIAN 1 403 #define GYOTO_COORDKIND_SPHERICAL 2 412 #define GYOTO_DEFAULT_X_SIZE 1024 421 #define GYOTO_DEFAULT_DELTA 0.01 426 #define GYOTO_DEFAULT_DELTA_MAX DBL_MAX 431 #define GYOTO_DEFAULT_DELTA_MIN DBL_MIN 441 #define GYOTO_DEFAULT_DELTA_MAX_OVER_R 1. 443 #define GYOTO_DEFAULT_ABSTOL 1e-6 444 #define GYOTO_DEFAULT_RELTOL 1e-6 445 #define GYOTO_DEFAULT_NORMTOL 1e-3 450 #define GYOTO_DEFAULT_MAXITER 100000 457 #define GYOTO_T_TOL 1e-4 //1e-7 //1e-4 459 #define GYOTO_KERR_HORIZON_SECURITY 0.01 462 #define GYOTO_SCREEN_DMAX DBL_MAX 466 #define GYOTO_PREC 15 467 #define GYOTO_WIDTH 25 472 #ifndef GYOTO_DEFAULT_PLUGINS 473 #define GYOTO_DEFAULT_PLUGINS "stdplug,nowarn:lorene" 476 #ifndef GYOTO_PLUGIN_SFX 477 #define GYOTO_PLUGIN_SFX "so" 486 #define GYOTO_C 299792458. 488 #define GYOTO_C_CGS 2.99792458e10 490 #define GYOTO_C2_CGS 8.98755178736817668096e+20 492 #define GYOTO_C2_CGS_M1 1.1126500560536184087938986e-21 494 #define GYOTO_G 6.67428e-11 496 #define GYOTO_G_CGS 6.67428e-8 498 #define GYOTO_G_OVER_C_SQUARE 7.4261380161175445989e-28 500 #define GYOTO_G_OVER_C_SQUARE_CGS 7.4261380161175445989e-29 502 #define GYOTO_PLANCK 6.62606896e-34 504 #define GYOTO_PLANCK_CGS 6.62606896e-27 506 #define GYOTO_PLANCK_OVER_C_SQUARE 7.3724959997591407964e-51 508 #define GYOTO_BOLTZMANN 1.3806504e-23 510 #define GYOTO_BOLTZMANN_CGS 1.3806504e-16 512 #define GYOTO_STEFANBOLTZMANN_CGS 5.670373e-5 514 #define GYOTO_PLANCK_OVER_BOLTZMANN 4.7992373449498869688e-11 516 #define GYOTO_GAS_CST 8.3144621 518 #define GYOTO_GAS_CST_CGS 8.3144621e7 520 #define GYOTO_AVOGADRO 6.0221413e23 522 #define GYOTO_THOMSON_CGS 6.6524e-25 524 #define GYOTO_ALPHA_F 0.00729927 526 #define GYOTO_PROTON_MASS_CGS 1.67262158e-24 528 #define GYOTO_ELECTRON_MASS_CGS 9.10938188e-28 530 #define GYOTO_ELECTRON_CLASSICAL_RADIUS_CGS 2.8179e-13 532 #define GYOTO_ELEMENTARY_CHARGE_CGS 4.80320427e-10 534 #define GYOTO_EULER_MASCHERONI 0.577216 536 #define GYOTO_ATOMIC_MASS_UNIT_CGS 1.660537781e-24 538 #define GYOTO_INU_CGS_TO_SI 0.001 540 #define GYOTO_JNU_CGS_TO_SI (GYOTO_INU_CGS_TO_SI * 100.) 542 #define GYOTO_ANU_CGS_TO_SI 100. 546 #define GYOTO_SUN_MASS 1.98843e30 547 #define GYOTO_SUN_MASS_CGS 1.98843e33 549 #define GYOTO_SUN_RADIUS 6.955e8 551 #define GYOTO_KPC 3.08568025e19 553 #define GYOTO_ASTRONOMICAL_UNIT 1.49597870700e11 555 #define GYOTO_LIGHT_YEAR 9.4607304725808e15 559 #define GYOTO_RADEG 57.2957795130823 560 #define GYOTO_DEGRAD 0.0174532925199433 562 #define GYOTO_MINRAD 2.908882086657216e-04 564 #define GYOTO_SECRAD 4.848136811095360e-06 566 #define GYOTO_MASRAD 4.848136811095360e-09 568 #define GYOTO_MUASRAD 4.848136811095360e-12 572 #define GYOTO_eV2Hz 2.417989348e+14 580 #define obskind_t unsigned int 582 #define GYOTO_OBSKIND_ATINFINITY 0 584 #define GYOTO_OBSKIND_KEPLERIAN 1 586 #define GYOTO_OBSKIND_ZAMO 2 588 #define GYOTO_OBSKIND_VELOCITYSPECIFIED 3 590 #define GYOTO_OBSKIND_FULLYSPECIFIED 4 595 #define GYOTO_STRINGIFY(a) GYOTO_STRINGIFY_ARGUMENT(a) 598 #define GYOTO_STRINGIFY_ARGUMENT(a) #a 600 #ifndef GYOTO_NO_DEPRECATED 601 #warning Using deprecated method names.\ 602 Define GYOTO_NO_DEPRECATED to disable. 612 # define getMetric metric 613 # define setMetric metric 614 # define setScreen screen 615 # define getScreen screen 616 # define getRmax rMax 617 # define setRmax rMax 618 # define getMass mass 619 # define setMass mass 620 # define getCoordKind coordKind 621 # define setCoordKind coordKind 622 # define getKind kind 623 # define setKind kind 624 # define getSpin spin 625 # define setSpin spin 626 # define getIntegKind integKind 627 # define setIntegKind integKind 628 # define getFileName fileName 629 # define setFileName fileName 630 # define getDistance distance 631 # define setDistance distance 632 # define getPALN PALN 633 # define setPALN PALN 634 # define getArgument argument 635 # define setArgument argument 636 # define getInclination inclination 637 # define setInclination inclination 638 # define getAstrobj astrobj 639 # define setAstrobj astrobj 640 # define getSpectrometer spectrometer 641 # define setSpectrometer spectrometer 642 # define getSpectrum spectrum 643 # define setSpectrum spectrum 644 # define getOpacity opacity 645 # define setOpacity opacity 646 # define setDelta delta 647 # define getDelta delta 648 # define setDelta delta 649 # define getDelta delta 650 # define setDangle2 dangle2 651 # define getDangle2 dangle2 652 # define setDangle1 dangle1 653 # define getDangle1 dangle1 654 # define setAnglekind anglekind 655 # define getTmin tMin 656 # define setTmin tMin 657 # define getTime time 658 # define setTime time 659 # define getFreqObs freqObs 660 # define setFreqObs freqObs 661 # define getFieldOfView fieldOfView 662 # define setFieldOfView fieldOfView 663 # define getRadius radius 664 # define setRadius radius 665 # define getLargeRadius largeRadius 666 # define setLargeRadius largeRadius 667 # define getSmallRadius smallRadius 668 # define setSmallRadius smallRadius 669 # define getCentralDensity centralDensity 670 # define setCentralDensity centralDensity 671 # define getDmax dMax 672 # define setDmax dMax 673 # define getTemperature temperature 674 # define setTemperature temperature 675 # define getScaling scaling 676 # define setScaling scaling 677 # define getPatternVelocity patternVelocity 678 # define setPatternVelocity patternVelocity 679 # define getLambda lambda 680 # define setLambda lambda 681 # define getCentralTempOverVirial centralTempOverVirial 682 # define setCentralTempOverVirial centralTempOverVirial 683 # define getBeta beta 684 # define setBeta beta 685 # define getConstant constant 686 # define setConstant constant 687 # define getExponent exponent 688 # define setExponent exponent 689 # define getFlag_radtransf opticallyThin 690 # define setFlag_radtransf opticallyThin 691 # define getNThreads nThreads 692 # define setNThreads nThreads 693 # define getResolution resolution 694 # define setResolution resolution 695 # define getNSamples nSamples 696 # define setNSamples nSamples 697 # define getSpectralOverSampling spectralOversampling 698 # define setSpectralOverSampling spectralOversampling 699 # define setBinSpectrumConverter binSpectrumConverter 700 # define setSpectrumConverter spectrumConverter 701 # define setIntensityConverter intensityConverter 702 # define getSafetyValue safetyValue; 703 # define setSafetyValue safetyValue; 704 # define setInnerRadius innerRadius; 705 # define getInnerRadius innerRadius; 706 # define setOuterRadius outerRadius; 707 # define getOuterRadius outerRadius; 708 # define setThickness thickness; 709 # define getThickness thickness; 712 # define setBand band; 713 # define setObserverKind observerKind; 714 # define getObserverKind observerKind; unsigned int Verbosity_t
Type for verbosity levels.
Definition: GyotoDefs.h:144
Compile-time configuration.
unsigned int CoordKind_t
Type for coordinate system kinds.
Definition: GyotoDefs.h:400
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:46
unsigned int Quantity_t
Type for observabke quantities.
Definition: GyotoDefs.h:76