SEVN
Loading...
Searching...
No Matches
BHrem Class Reference

#include <remnant.h>

Inheritance diagram for BHrem:
Staremnant

Public Member Functions

 BHrem (_UNUSED Star *s, double Mremnant, double time)
 
 BHrem (Star *s, double Mremnant)
 
double Radius (_UNUSED Star *s) const override
 
double Luminosity (_UNUSED Star *s) const override
 
double OmegaRem (_UNUSED Star *s) const override
 
double Inertia (_UNUSED Star *s) const override
 
double Bmag (_UNUSED Star *s) const override
 
double Xspin (_UNUSED Star *s) const override
 
int apply_Bavera_correction_to_Xspin (double period, double mass_wr)
 
double get_born_time () const
 
double get_Mremnant_at_born () const
 
virtual double Mass (_UNUSED Star *s) const
 
double get (Star *s, size_t ID) const
 
Lookup::Remnants get_remnant_type () const
 
double age (Star *s) const
 
double InertiaSphere (Star *s) const
 

Public Attributes

SevnLogging svlog
 

Protected Member Functions

void default_initialiser (Star *s)
 
int set_Xspin (double value)
 
double estimate_Xspin (_UNUSED Star *s) const
 
double XspinGeneva (const double z0, const double mco) const
 
double XspinMESA (const double z0, const double mco) const
 
double XspinFuller () const
 
double XspinMaxwellian (const double sigma_xspin) const
 
double XspinZeros () const
 
double XspinAccretion (Star *s) const
 

Protected Attributes

Lookup::Remnants remnant_type
 

Private Attributes

double xspin =std::nan("")
 
double born_time
 
double Mremnant_at_born
 

Constructor & Destructor Documentation

◆ BHrem() [1/2]

BHrem::BHrem ( _UNUSED Star s,
double  Mremnant,
double  time 
)
inline

◆ BHrem() [2/2]

BHrem::BHrem ( Star s,
double  Mremnant 
)
inline

Member Function Documentation

◆ age()

double Staremnant::age ( Star s) const
inherited

Estimate the elapsed time from the remannt creation. It is estimated simply as Worldtime-creation time

Parameters
sPointe to the star
Returns
Age of the remnant in Myr.

◆ apply_Bavera_correction_to_Xspin()

int BHrem::apply_Bavera_correction_to_Xspin ( double  period,
double  mass_wr 
)

Sets

◆ Bmag()

double BHrem::Bmag ( _UNUSED Star s) const
inlineoverridevirtual

Implements Staremnant.

◆ default_initialiser()

void BHrem::default_initialiser ( Star s)
protected

◆ estimate_Xspin()

double BHrem::estimate_Xspin ( _UNUSED Star s) const
protected

Estimate Xspin given the input option

Parameters
sPointer to the star
Returns
Value of Xspin

◆ get()

double Staremnant::get ( Star s,
size_t  ID 
) const
inherited

Get the property with given ID. This a wrapper and a dispatcher to get the results of the various class methods.

Parameters
sPointer to the star
IDID of the Property
Returns
The value of the property as estimated for the remnant or throw a not_implemented_error if the property is not available in the class

◆ get_born_time()

double Staremnant::get_born_time ( ) const
inlineinherited

◆ get_Mremnant_at_born()

double Staremnant::get_Mremnant_at_born ( ) const
inlineinherited

◆ get_remnant_type()

Lookup::Remnants Staremnant::get_remnant_type ( ) const
inlineinherited

◆ Inertia()

double BHrem::Inertia ( _UNUSED Star s) const
inlineoverridevirtual

Implements Staremnant.

◆ InertiaSphere()

double Staremnant::InertiaSphere ( Star s) const
inherited

◆ Luminosity()

double BHrem::Luminosity ( _UNUSED Star s) const
inlineoverridevirtual

BH Luminosity from Eq. 96 in Hurley+00

Implements Staremnant.

◆ Mass()

double Staremnant::Mass ( _UNUSED Star s) const
virtualinherited

◆ OmegaRem()

double BHrem::OmegaRem ( _UNUSED Star s) const
inlineoverridevirtual

Implements Staremnant.

◆ Radius()

double BHrem::Radius ( _UNUSED Star s) const
overridevirtual

Schwarzschild radius 2GM/c^2

Implements Staremnant.

◆ set_Xspin()

int BHrem::set_Xspin ( double  value)
inlineprotected

Set the value of Xspin

Parameters
valuenumber between 0 and 1
Returns
EXIT SUCCESS, thrown an sanity_error if xspin <0 or >1

◆ Xspin()

double BHrem::Xspin ( _UNUSED Star s) const
overridevirtual

Implements Staremnant.

◆ XspinAccretion()

double BHrem::XspinAccretion ( Star s) const
protected

Xspin following Zevin&Bavera22 https://arxiv.org/pdf/2203.02515.pdf All the BH are born with an Xspin=0, then it is increased just through mass accretion Eq. 4 in Zevin&Bavera22. Notice:: in Zevin&Bavera22, they consider only MT in RLO, in our implementation we consider also accretion from winds.

Parameters
sPointer to the star
Returns
Xspin after accretion (or 0 if not accretion)

◆ XspinFuller()

double BHrem::XspinFuller ( ) const
inlineprotected

Xspin following Equation 5 in https://www.aanda.org/articles/aa/pdf/2020/04/aa36528-19.pdf

Parameters
z0Metallicity
mcoCO mass in Msun
Returns
adimensional BH spin Xspin

◆ XspinGeneva()

double BHrem::XspinGeneva ( const double  z0,
const double  mco 
) const
inlineprotected

Xspin following Equation 3 in https://www.aanda.org/articles/aa/pdf/2020/04/aa36528-19.pdf

Parameters
z0Metallicity
mcoCO mass in Msun
Returns
adimensional BH spin Xspin

◆ XspinMaxwellian()

double BHrem::XspinMaxwellian ( const double  sigma_xspin) const
inlineprotected

Xspin drawn from a Maxwellian distribution

Parameters
sigma_xspinMaxwellian 1D sigma
Returns
adimensional BH spin Xspin

◆ XspinMESA()

double BHrem::XspinMESA ( const double  z0,
const double  mco 
) const
inlineprotected

Xspin following Equation 4 in https://www.aanda.org/articles/aa/pdf/2020/04/aa36528-19.pdf Fig. 2 of Belczynski1+20 (https://www.aanda.org/articles/aa/pdf/2020/04/aa36528-19.pdf) shows that the fitting equations are valid only up to approx a MCO mass of 70 Msun, but Xspin seems to drop to 0 for large MCO, therefore we just extrapoalte putting a lower limit at 0 Msun

Parameters
z0Metallicity
mcoCO mass in Msun
Returns
adimensional BH spin Xspin

◆ XspinZeros()

double BHrem::XspinZeros ( ) const
inlineprotected

Just return 0 for the spin

Returns
0.

Member Data Documentation

◆ born_time

double Staremnant::born_time
privateinherited

Time of remnant creation

◆ Mremnant_at_born

double Staremnant::Mremnant_at_born
privateinherited

Mass of the remnant at the moment of the creation

◆ remnant_type

Lookup::Remnants Staremnant::remnant_type
protectedinherited

◆ svlog

SevnLogging Staremnant::svlog
inherited

◆ xspin

double BHrem::xspin =std::nan("")
private

The documentation for this class was generated from the following files: