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

#include <specialkicks.h>

Inheritance diagram for CC15:
Hobbs Kicks

Public Member Functions

 CC15 (bool reg=true)
 
CC15instance ()
 
void _apply (Star *s) override
 
std::string name () override
 
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 CC15 _cc15
 
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 =15.0
 
std::normal_distribution gaussian15
 
std::normal_distribution< double > standard_gaussian
 
std::uniform_real_distribution< double > uniformRealDistribution
 
SevnLogging svlog
 
double random_velocity_kick =utilities::NULL_DOUBLE
 

Static Private Member Functions

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

Detailed Description

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

Constructor & Destructor Documentation

◆ CC15()

CC15::CC15 ( bool  reg = true)
inline

Member Function Documentation

◆ _apply() [1/2]

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

◆ _apply() [2/2]

void CC15::_apply ( Star s)
override

◆ 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()

CC15 * CC15::instance ( )
inlinevirtual

Reimplemented from Hobbs.

◆ Instance()

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

◆ kick_initializer()

void Kicks::kick_initializer ( )
protectedinherited

◆ name()

std::string CC15::name ( )
inlineoverridevirtual

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

◆ _cc15

CC15 CC15::_cc15
static

◆ _hobbs

Hobbs Hobbs::_hobbs
staticinherited

◆ gaussian15

std::normal_distribution CC15::gaussian15
protected

◆ random_velocity_kick

double Kicks::random_velocity_kick =utilities::NULL_DOUBLE
protectedinherited

◆ sigma

const double CC15::sigma =15.0
protected

dispersion of the Maxwellian used to draw the natal kick

◆ 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: