SEVN
Loading...
Searching...
No Matches
EC15CC265 Class Referenceabstract

#include <specialkicks.h>

Inheritance diagram for EC15CC265:
Hobbs Kicks

Public Member Functions

virtual void _apply (_UNUSED Star *s)=0
 
void apply (_UNUSED Star *s)
 
double get_random_kick ()
 

Static Public Member Functions

static KicksInstance (std::string const &name)
 

Static Public Attributes

static Hobbs _hobbs
 

Protected Member Functions

double estimate_fallback_correction (Star *s)
 
void Register (Kicks *ptr, const std::string &_name)
 
void set_random_kick (const double &a)
 
void kick_initializer ()
 
virtual void check_and_correct_vkick (Star *s)
 
double draw_from_gaussian (double std, double mean=0.)
 

Protected Attributes

const double sigma_ecsn =15.0
 
const double sigma_ccsn =256.0
 
std::normal_distribution gaussian_ecsn
 
std::normal_distribution gaussian_ccsn
 
std::normal_distribution< double > standard_gaussian
 
std::uniform_real_distribution< double > uniformRealDistribution
 
SevnLogging svlog
 
double random_velocity_kick =utilities::NULL_DOUBLE
 

Private Member Functions

 EC15CC265 (bool reg=true)
 
void _apply (Star *s) override
 
EC15CC265instance ()
 
std::string name () override
 

Static Private Member Functions

static std::map< std::string, Kicks * > & GetStaticMap ()
 
static std::vector< int > & GetUsed ()
 

Static Private Attributes

static EC15CC265 _ec15cc265
 

Detailed Description

Kick as in models alpha in Giacobbo&Mapelli2018 https://ui.adsabs.harvard.edu/abs/2018MNRAS.480.2011G/abstract The ECSN receives a kick from a Maxwellian with sigma= 15 km/s the CCSN from a Maxwellian with sigma= 265 km/s, the BH kick is then corrected for the fallback fraction vkick_corrected =(1−ffb)vkick_maxwellian,

Constructor & Destructor Documentation

◆ EC15CC265()

EC15CC265::EC15CC265 ( bool  reg = true)
inlineprivate

Member Function Documentation

◆ _apply() [1/2]

virtual void Kicks::_apply ( _UNUSED Star s)
pure virtualinherited

◆ _apply() [2/2]

void EC15CC265::_apply ( Star s)
overrideprivate

◆ apply()

void Kicks::apply ( _UNUSED Star s)
inherited

Wrapper for specified _apply functions

Parameters
s

◆ check_and_correct_vkick()

void Kicks::check_and_correct_vkick ( Star s)
protectedvirtualinherited

Check if we have to make correction to the final Vkick (after all the fallback and similar correction) It checks:

  • If Mremant=0 (e.g. after a PPISN) So far it just check that the final Vkick is not lower than the parameter sn_min_vkick. If this is the case it just sets the final velocity to the minimum value and rescale all the components by the factor min_vkick/old_vkick if old_vkick is 0, new isotropic velocity components are randomly drawn
    Parameters
    s

◆ draw_from_gaussian()

double Kicks::draw_from_gaussian ( double  std,
double  mean = 0. 
)
inlineprotectedinherited

◆ estimate_fallback_correction()

double Hobbs::estimate_fallback_correction ( Star s)
protectedinherited

Estimate the fallback f_b to correct the kick, i.e. Vk_new = Vk_old *f_b, where f_b = (1-fallback) The fallback is introduced in the rapid and delayed SN model as

fallback = (Mremnant - Mproto) / (MpreSN - Mproto)

where Mproto depends on the SN model, in SEVN Mproto = 1.1 for rapid and 1.15 for delayed

However, the Sn model can set the fallback, therefore in this method we firstly check if the fallback in the SN model is set (i.e. >=0), in this case we use the value set by the SN model otherwise we use the equation above assuming Mproto=1.1 Msun.

Parameters
sPointer to the exploding star
Returns
the fallback correction term fb

New proptotype for fb estimate

◆ get_random_kick()

double Kicks::get_random_kick ( )
inlineinherited

◆ GetStaticMap()

static std::map< std::string, Kicks * > & Kicks::GetStaticMap ( )
inlinestaticprivateinherited

◆ GetUsed()

static std::vector< int > & Kicks::GetUsed ( )
inlinestaticprivateinherited

◆ instance()

EC15CC265 * EC15CC265::instance ( )
inlineprivatevirtual

Reimplemented from Hobbs.

◆ Instance()

Kicks * Kicks::Instance ( std::string const &  name)
staticinherited

◆ kick_initializer()

void Kicks::kick_initializer ( )
protectedinherited

◆ name()

std::string EC15CC265::name ( )
inlineoverrideprivatevirtual

Reimplemented from Hobbs.

◆ Register()

void Kicks::Register ( Kicks ptr,
const std::string &  _name 
)
inlineprotectedinherited

◆ set_random_kick()

void Kicks::set_random_kick ( const double &  a)
inlineprotectedinherited

Member Data Documentation

◆ _ec15cc265

EC15CC265 EC15CC265::_ec15cc265
staticprivate

◆ _hobbs

Hobbs Hobbs::_hobbs
staticinherited

◆ gaussian_ccsn

std::normal_distribution EC15CC265::gaussian_ccsn
protected

◆ gaussian_ecsn

std::normal_distribution EC15CC265::gaussian_ecsn
protected

◆ random_velocity_kick

double Kicks::random_velocity_kick =utilities::NULL_DOUBLE
protectedinherited

◆ sigma_ccsn

const double EC15CC265::sigma_ccsn =256.0
protected

dispersion of the Maxwellian used to draw the natal kick of CCSN remnant

◆ sigma_ecsn

const double EC15CC265::sigma_ecsn =15.0
protected

dispersion of the Maxwellian used to draw the natal kick of ECSN remnant

◆ standard_gaussian

std::normal_distribution<double> Kicks::standard_gaussian
protectedinherited

◆ svlog

SevnLogging Kicks::svlog
protectedinherited

◆ uniformRealDistribution

std::uniform_real_distribution<double> Kicks::uniformRealDistribution
protectedinherited

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