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

#include <specialkicks.h>

Inheritance diagram for ECUS30:
Kicks

Public Member Functions

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

Static Public Member Functions

static KicksInstance (std::string const &name)
 

Protected Member Functions

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 =30.0
 
std::normal_distribution< double > standard_gaussian
 
std::uniform_real_distribution< double > uniformRealDistribution
 
SevnLogging svlog
 
double random_velocity_kick =utilities::NULL_DOUBLE
 

Private Member Functions

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

Static Private Member Functions

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

Static Private Attributes

static ECUS30 _ecus30
 

Detailed Description

Kicks similar to Broekgaarden+21 (https://arxiv.org/pdf/2103.02608.pdf) The ECSN and Ultra stripped SN receives a kick from a Maxwellian with sigma= 15 km/s Ultra stripped SN are nakedCO or star stripped by the HE layers while they are purHe stars (case BB), we flag a SN as Ultra stripped if it is a nakedCO or a nakedHe with MHE-MCO<0.1 (see Broekgaarden+21) the CCSN from a Maxwellian with sigma set by the parameter sn_kick_velocity_stdev. The BH kick is NOT corrected for the fallback fraction.

Constructor & Destructor Documentation

◆ ECUS30()

ECUS30::ECUS30 ( bool  reg = true)
inlineprivate

Member Function Documentation

◆ _apply() [1/2]

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

◆ _apply() [2/2]

void ECUS30::_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

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

ECUS30 * ECUS30::instance ( )
inlineprivatevirtual

Reimplemented from Kicks.

◆ Instance()

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

◆ kick_initializer()

void Kicks::kick_initializer ( )
protectedinherited

◆ name()

std::string ECUS30::name ( )
inlineoverrideprivatevirtual

Reimplemented from Kicks.

◆ 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

◆ _ecus30

ECUS30 ECUS30::_ecus30
staticprivate

◆ random_velocity_kick

double Kicks::random_velocity_kick =utilities::NULL_DOUBLE
protectedinherited

◆ sigma_ecsn

const double ECUS30::sigma_ecsn =30.0
protected

dispersion of the Maxwellian used to draw the natal kick of ECSN and Ultra stipped SN remnants

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