35 virtual Kicks *
instance(){
svlog.
critical(
"This is supposed to be pure virtual, do you have an uninitialized module?", __FILE__, __LINE__);
return nullptr; }
36 virtual inline std::string
name() {
return "Generic SN-kick model"; }
48 svlog.
critical(
"Trying to get random_kick before it is initiliased",__FILE__,__LINE__);
94 static std::map<std::string, Kicks *> _locmap;
98 static std::vector<int> _used;
#define _UNUSED
Definition: BinaryProperty.h:20
Kicks()
Definition: kicks.h:28
static Kicks * Instance(std::string const &name)
Definition: kicks.cpp:12
void apply(_UNUSED Star *s)
Definition: kicks.cpp:64
void set_random_kick(const double &a)
Definition: kicks.h:67
virtual ~Kicks()
Definition: kicks.h:31
virtual void _apply(_UNUSED Star *s)=0
void Register(Kicks *ptr, const std::string &_name)
Definition: kicks.h:56
static std::vector< int > & GetUsed()
Definition: kicks.h:97
double get_random_kick()
Definition: kicks.h:46
SevnLogging svlog
Definition: kicks.h:72
double random_velocity_kick
Definition: kicks.h:73
double draw_from_gaussian(double std, double mean=0.)
Definition: kicks.h:87
virtual Kicks * instance()
Definition: kicks.h:35
virtual void check_and_correct_vkick(Star *s)
Definition: kicks.cpp:18
static std::map< std::string, Kicks * > & GetStaticMap()
Definition: kicks.h:93
std::normal_distribution< double > standard_gaussian
Definition: kicks.h:62
virtual std::string name()
Definition: kicks.h:36
std::uniform_real_distribution< double > uniformRealDistribution
Definition: kicks.h:63
void critical(std::string errstate, const char *file_input=nullptr, int line_input=-1) const
Definition: sevnlog.cpp:85
constexpr double NULL_DOUBLE
Definition: utilities.h:89
std::mt19937_64 mtrand
Definition: utilities.cpp:9