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

#include <hobbs.h>

Inheritance diagram for Hobbs:
Kicks CC15 EC15CC265

Public Member Functions

 Hobbs (bool reg=true)
 
void _apply (Star *s) override
 
Hobbsinstance ()
 
std::string name () override
 
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)
 

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

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

Same as HobbePure, but the kick are corrected for the SN fallback (larger fallback, lower velocities)

Constructor & Destructor Documentation

◆ Hobbs()

Hobbs::Hobbs ( bool  reg = true)
inline

Member Function Documentation

◆ _apply() [1/2]

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

◆ _apply() [2/2]

void Hobbs::_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)
protected

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

Hobbs * Hobbs::instance ( )
inlinevirtual

Reimplemented from Kicks.

Reimplemented in CC15, and EC15CC265.

◆ Instance()

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

◆ kick_initializer()

void Kicks::kick_initializer ( )
protectedinherited

◆ name()

std::string Hobbs::name ( )
inlineoverridevirtual

Reimplemented from Kicks.

Reimplemented in CC15, and EC15CC265.

◆ 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

◆ _hobbs

Hobbs Hobbs::_hobbs
static

◆ random_velocity_kick

double Kicks::random_velocity_kick =utilities::NULL_DOUBLE
protectedinherited

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