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 friend double comfnc(double ein, void* p);
40 friend double comint(double gam, void* p);
41 friend double disk_integral(double alfa, void* p);
42 double comintegral(size_t it, double blim, double ulim, double nu, double numin, double numax,
43 gsl_spline* eldis, gsl_interp_accel* acc_eldis);
44 void compton_spectrum(double gmin, double gmax, gsl_spline* eldis, gsl_interp_accel* acc_eldis);
45
46 void cyclosyn_seed(const std::vector<double>& seed_arr, const std::vector<double>& seed_lum);
47 void bb_seed_k(const std::vector<double>& seed_arr, double Urad, double Tbb);
48 void bb_seed_kev(const std::vector<double>& seed_energ, double Urad, double Tbb);
49 void shsdisk_seed(const std::vector<double>& seed_arr, double tin, double rin, double rout,
50 double h, double z);
51
52 void set_frequency(double numin, double numax);
53 void set_tau(double n, double gam);
54 void set_tau(double _tau);
55 void set_escape(double escape);
56 void set_niter(double nu0, double Te);
57 void set_niter(size_t n);
58 void seed_freq_array(const std::vector<double>& seed_energ);
59
60 double get_tau() const { return tau; };
61
62 double get_ypar() const { return ypar; };
63
64 void reset();
65 void urad_test();
66 void test();
67};
68
69} // namespace kariba
Class inverse Compton, inherited from Radiation.hpp.
Definition Compton.hpp:10
~Compton()
Definition Compton.cpp:57
void set_escape(double escape)
Definition Compton.cpp:480
double tau
Definition Compton.hpp:13
void seed_freq_array(const std::vector< double > &seed_energ)
Method to set up seed frequency array.
Definition Compton.cpp:483
void compton_spectrum(double gmin, double gmax, gsl_spline *eldis, gsl_interp_accel *acc_eldis)
Definition Compton.cpp:197
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
void reset()
Definition Compton.cpp:492
double get_tau() const
Definition Compton.hpp:60
gsl_interp_accel * acc_Te
accelerator of above spline over Te
Definition Compton.hpp:33
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
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
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
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
void shsdisk_seed(const std::vector< double > &seed_arr, double tin, double rin, double rout, double h, double z)
Definition Compton.cpp:358
double get_ypar() const
Definition Compton.hpp:62
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
void bb_seed_kev(const std::vector< double > &seed_energ, double Urad, double Tbb)
Definition Compton.cpp:297
void urad_test()
Definition Compton.cpp:499
void test()
Definition Compton.cpp:506
void bb_seed_k(const std::vector< double > &seed_arr, double Urad, double Tbb)
Definition Compton.cpp:271
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