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

#include <kicks.h>

Inheritance diagram for Kicks:
ECUS30 Hobbs HobbsPure Unified Zeros CC15 EC15CC265

Public Member Functions

 Kicks ()
 
virtual ~Kicks ()
 
virtual Kicksinstance ()
 
virtual std::string name ()
 
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

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

Constructor & Destructor Documentation

◆ Kicks()

Kicks::Kicks ( )
inline

◆ ~Kicks()

virtual Kicks::~Kicks ( )
inlinevirtual

Member Function Documentation

◆ _apply()

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

◆ apply()

void Kicks::apply ( _UNUSED Star s)

Wrapper for specified _apply functions

Parameters
s

◆ check_and_correct_vkick()

void Kicks::check_and_correct_vkick ( Star s)
protectedvirtual

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. 
)
inlineprotected

◆ get_random_kick()

double Kicks::get_random_kick ( )
inline

◆ GetStaticMap()

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

◆ GetUsed()

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

◆ instance()

virtual Kicks * Kicks::instance ( )
inlinevirtual

Reimplemented in HobbsPure, Hobbs, CC15, EC15CC265, ECUS30, Unified, and Zeros.

◆ Instance()

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

◆ kick_initializer()

void Kicks::kick_initializer ( )
protected

◆ name()

virtual std::string Kicks::name ( )
inlinevirtual

Reimplemented in HobbsPure, Hobbs, CC15, EC15CC265, ECUS30, Unified, and Zeros.

◆ Register()

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

◆ set_random_kick()

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

Member Data Documentation

◆ random_velocity_kick

double Kicks::random_velocity_kick =utilities::NULL_DOUBLE
protected

◆ standard_gaussian

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

◆ svlog

SevnLogging Kicks::svlog
protected

◆ uniformRealDistribution

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

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