Kariba
Loading...
Searching...
No Matches
Compton.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <gsl/gsl_spline2d.h>
4
5#include "Radiation.hpp"
6
7namespace kariba {
8
10class Compton : public Radiation {
11 protected:
12 size_t Niter;
13 double tau, ypar;
14 double rphot;
15 double escape_corr;
16
17 std::vector<double> seed_energ;
18 std::vector<double> seed_urad;
19 std::vector<double>
21
22 gsl_spline* seed_ph;
23 gsl_interp_accel* acc_seed;
24
25 gsl_spline* iter_ph;
26 gsl_interp_accel* acc_iter;
27
28 gsl_spline2d* esc_p_sph;
30 gsl_spline2d* esc_p_cyl;
32 gsl_interp_accel* acc_tau;
33 gsl_interp_accel* acc_Te;
34
35 public:
36 ~Compton();
37 Compton(size_t size, size_t seed_size);
38
39 virtual double comintegral(size_t it, double blim, double ulim, double nu, double numin,
40 double numax, gsl_spline* eldis, gsl_interp_accel* acc_eldis);
41 virtual void compton_spectrum(double gmin, double gmax, gsl_spline* eldis,
42 gsl_interp_accel* acc_eldis);
43
44 virtual void cyclosyn_seed(const std::vector<double>& seed_arr,
45 const std::vector<double>& seed_lum);
46 virtual void bb_seed_k(const std::vector<double>& seed_arr, double Urad, double Tbb);
47 virtual void bb_seed_kev(const std::vector<double>& seed_energ, double Urad, double Tbb);
48 virtual void shsdisk_seed(const std::vector<double>& seed_arr, double tin, double rin,
49 double rout, double h, double z);
50
51 virtual void set_frequency(double numin, double numax);
52 virtual void set_tau(double n, double gam);
53 virtual void set_tau(double _tau);
54 virtual void set_escape(double escape);
55 virtual void set_niter(double nu0, double Te);
56 virtual void set_niter(size_t n);
57 virtual void seed_freq_array(const std::vector<double>& seed_energ);
58
59 virtual double get_tau() const { return tau; };
60
61 virtual double get_ypar() const { return ypar; };
62
63 virtual void reset();
64 virtual void urad_test();
65 virtual void test();
66
67 friend double comfnc(double ein, void* p);
68 friend double comint(double gam, void* p);
69 friend double disk_integral(double alfa, void* p);
70};
71
72} // namespace kariba
Class inverse Compton, inherited from Radiation.hpp.
Definition Compton.hpp:10
~Compton()
Definition Compton.cpp:57
virtual void set_escape(double escape)
Definition Compton.cpp:480
double tau
Definition Compton.hpp:13
virtual void seed_freq_array(const std::vector< double > &seed_energ)
Method to set up seed frequency array.
Definition Compton.cpp:483
virtual void compton_spectrum(double gmin, double gmax, gsl_spline *eldis, gsl_interp_accel *acc_eldis)
Definition Compton.cpp:197
virtual void set_frequency(double numin, double numax)
Method to set up the frequency array over desired range.
Definition Compton.cpp:468
gsl_interp_accel * acc_seed
accelerator for above spline
Definition Compton.hpp:23
virtual void reset()
Definition Compton.cpp:492
gsl_interp_accel * acc_Te
accelerator of above spline over Te
Definition Compton.hpp:33
virtual double comintegral(size_t it, double blim, double ulim, double nu, double numin, double numax, gsl_spline *eldis, gsl_interp_accel *acc_eldis)
Definition Compton.cpp:169
std::vector< double > seed_urad
array of seed photon number density in log10(#/erg/cm^3)
Definition Compton.hpp:18
virtual double get_tau() const
Definition Compton.hpp:59
friend double comfnc(double ein, void *p)
Definition Compton.cpp:99
gsl_interp_accel * acc_tau
accelerator of above spline over tau
Definition Compton.hpp:32
virtual void set_tau(double n, double gam)
Definition Compton.cpp:423
double rphot
photospheric radius when tau > 1, used to renormalize volume
Definition Compton.hpp:14
gsl_interp_accel * acc_iter
accelerator of above spline
Definition Compton.hpp:26
virtual void set_niter(double nu0, double Te)
Definition Compton.cpp:408
friend double disk_integral(double alfa, void *p)
Definition Compton.cpp:327
size_t Niter
number of IC iterations
Definition Compton.hpp:12
double escape_corr
escape term, used to renormalize our spectra to CompPS
Definition Compton.hpp:15
virtual void shsdisk_seed(const std::vector< double > &seed_arr, double tin, double rin, double rout, double h, double z)
Definition Compton.cpp:358
virtual double get_ypar() const
Definition Compton.hpp:61
std::vector< double > iter_urad
array of iterated photon number density in log10(#/erg/cm^3)
Definition Compton.hpp:20
double ypar
optical depth/comtpon Y of emitting region
Definition Compton.hpp:13
gsl_spline * seed_ph
interpolation of photon field array seed_urad
Definition Compton.hpp:22
gsl_spline * iter_ph
interpolation of photon field for multiple scatters
Definition Compton.hpp:25
std::vector< double > seed_energ
array of seed frequencies in Hz
Definition Compton.hpp:17
virtual void bb_seed_kev(const std::vector< double > &seed_energ, double Urad, double Tbb)
Definition Compton.cpp:297
virtual void urad_test()
Definition Compton.cpp:499
virtual void test()
Definition Compton.cpp:506
virtual void bb_seed_k(const std::vector< double > &seed_arr, double Urad, double Tbb)
Definition Compton.cpp:271
virtual void cyclosyn_seed(const std::vector< double > &seed_arr, const std::vector< double > &seed_lum)
Definition Compton.cpp:247
friend double comint(double gam, void *p)
Definition Compton.cpp:131
gsl_spline2d * esc_p_cyl
radiative transfer
Definition Compton.hpp:30
gsl_spline2d * esc_p_sph
radiative transfer
Definition Compton.hpp:28
Base class for photon/neutrino distributions.
Definition Radiation.hpp:69
double z
Dimensions of emitting region.
Definition Radiation.hpp:76
Definition BBody.hpp:5