5#ifndef SEVN_BSEINTEGRATOR_H
6#define SEVN_BSEINTEGRATOR_H
8constexpr double cZsun = 0.02;
20 BSE_Coefficient(
double Z,
double alpha,
double beta=0,
double gamma=0,
double eta=0,
double mu=0) :
alpha{
alpha},
beta{
beta},
gamma{
gamma},
eta{
eta},
mu{
mu},
Z{
Z}{
43 double Zlog = std::log10(
Z/
Zsun);
112 virtual std::string
units(){
return "";}
134 std::string
units()
override{
return "Myr";}
151 double M7=M3*M*M*M*M;
152 double num =
a1 +
a2*M3 +
a3*std::pow(M,5.5) + M7;
153 double den =
a4*M*M +
a5*M7;
185 double mut = 1.0-0.01*std::max(
a6/std::pow(M,
a7),
a8+
a9/std::pow(M,
a10));
186 return std::max(0.5,mut);
206 double Zeta = std::log10(Zinput/
cZsun);
208 x=std::max(0.95, std::min(0.95-0.03*(Zeta+0.30103),0.99));
215 return std::max(thook,
x*tbgb);
constexpr double cZsun
Definition: BSEintegrator.h:8
Definition: BSEintegrator.h:91
BSE_Coefficient_a10(double Zinput)
Definition: BSEintegrator.h:93
Definition: BSEintegrator.h:53
BSE_Coefficient_a1(double Zinput)
Definition: BSEintegrator.h:55
Definition: BSEintegrator.h:59
BSE_Coefficient_a2(double Zinput)
Definition: BSEintegrator.h:61
Definition: BSEintegrator.h:63
BSE_Coefficient_a3(double Zinput)
Definition: BSEintegrator.h:65
Definition: BSEintegrator.h:67
BSE_Coefficient_a4(double Zinput)
Definition: BSEintegrator.h:69
Definition: BSEintegrator.h:71
BSE_Coefficient_a5(double Zinput)
Definition: BSEintegrator.h:73
Definition: BSEintegrator.h:75
BSE_Coefficient_a6(double Zinput)
Definition: BSEintegrator.h:77
Definition: BSEintegrator.h:79
BSE_Coefficient_a7(double Zinput)
Definition: BSEintegrator.h:81
Definition: BSEintegrator.h:83
BSE_Coefficient_a8(double Zinput)
Definition: BSEintegrator.h:85
Definition: BSEintegrator.h:87
BSE_Coefficient_a9(double Zinput)
Definition: BSEintegrator.h:89
Definition: BSEintegrator.h:17
double operator()() const
Definition: BSEintegrator.h:24
BSE_Coefficient(double Z, double alpha, double beta=0, double gamma=0, double eta=0, double mu=0)
Definition: BSEintegrator.h:20
const double gamma
Definition: BSEintegrator.h:33
const double beta
Definition: BSEintegrator.h:32
double getZ()
Definition: BSEintegrator.h:25
double Z
Definition: BSEintegrator.h:39
double coeff
Definition: BSEintegrator.h:40
const double Zsun
Definition: BSEintegrator.h:38
const double alpha
Definition: BSEintegrator.h:31
void set_coeff()
Definition: BSEintegrator.h:42
const double mu
Definition: BSEintegrator.h:35
void change_Z(double newZ)
Definition: BSEintegrator.h:26
const double eta
Definition: BSEintegrator.h:34
Definition: BSEintegrator.h:106
double chaced_M
Definition: BSEintegrator.h:118
std::vector< double > coeff
Definition: BSEintegrator.h:122
BSE_Property(double Zinput)
Definition: BSEintegrator.h:108
virtual std::string units()
Definition: BSEintegrator.h:112
double eval(double M)
Definition: BSEintegrator.h:115
double chaced_logP
Definition: BSEintegrator.h:119
double Z
Definition: BSEintegrator.h:120
virtual double operator()(double M)=0
TIMES PROPERTIES.
Definition: BSEintegrator.h:131
std::string units() override
Definition: BSEintegrator.h:134
BSEtimes(double Zinput)
Definition: BSEintegrator.h:133
Definition: BSEintegrator.h:141
const double a4
Definition: BSEintegrator.h:163
const double a5
Definition: BSEintegrator.h:164
const double a1
Definition: BSEintegrator.h:160
const double a3
Definition: BSEintegrator.h:162
Tbgb(double Zinput)
Definition: BSEintegrator.h:144
double operator()(double M) override
Definition: BSEintegrator.h:148
const double a2
Definition: BSEintegrator.h:161
Definition: BSEintegrator.h:172
const double a6
Definition: BSEintegrator.h:191
const double a8
Definition: BSEintegrator.h:193
const double a7
Definition: BSEintegrator.h:192
const double a10
Definition: BSEintegrator.h:195
double mu(double M)
Definition: BSEintegrator.h:184
double operator()(double M) override
Definition: BSEintegrator.h:178
const double a9
Definition: BSEintegrator.h:194
Thook(double Zinput)
Definition: BSEintegrator.h:174
Definition: BSEintegrator.h:202
double x
Definition: BSEintegrator.h:220
Tms(double Zinput)
Definition: BSEintegrator.h:205
double operator()(double M) override
Definition: BSEintegrator.h:211