11#ifndef SEVN_SUPERNOVA_H
12#define SEVN_SUPERNOVA_H
253#define _UNUSED __attribute__ ((unused))
266 virtual inline std::string
name()
const {
return "GenericSupernova"; }
452 virtual double pisn(
const double mass,
Star *s) = 0;
495 static std::map<std::string, supernova *> _locmap;
500 static std::vector<int> _used;
530 double pisn(
const double mass,
Star *s)
override;
546 double pisn(
const double mass,
Star *s)
override;
Definition: supernova.h:564
NSfromGau()
Definition: supernova.h:566
void CCexplosion(Star *s) override
Definition: supernova.cpp:418
std::normal_distribution< double > normal_dist
Definition: supernova.h:571
double generate_random_gau(double mean, double std)
Definition: supernova.h:572
void ECSN(Star *s) override
Definition: supernova.cpp:409
double get_NS_mass(Star *s)
Definition: supernova.cpp:401
Definition: neutrinomassloss.h:80
Definition: supernova.h:553
NeutrinoMassLossOFF()
Definition: supernova.h:555
double neutrino_mass_loss(const double mass, _UNUSED Star *s) const override
Definition: supernova.h:558
NeutrinoMassLossOFF(_UNUSED Star *s)
Definition: supernova.h:556
Definition: pairinstability.h:129
Definition: supernova.h:537
double pisn(const double mass, Star *s) override
Definition: supernova.cpp:394
int set_preSN_Masses(Star *s) override
Definition: supernova.cpp:382
PisnOFF()
Definition: supernova.h:539
Definition: supernova.h:521
int set_preSN_Masses(Star *s) override
PISN options.
Definition: supernova.cpp:363
PisnON()
Definition: supernova.h:523
double pisn(const double mass, Star *s) override
Definition: supernova.cpp:374
Definition: supernova.h:256
const PairInstability * get_pairinstability() const
Definition: supernova.h:454
double get_Mejected() const
Definition: supernova.h:393
double Mejected
Definition: supernova.h:421
virtual ~supernova()
Definition: supernova.cpp:42
void initialise_remnant(Star *s, double Mass_remnant, Lookup::Remnants Remnant_type)
Definition: supernova.cpp:53
PairInstability * pairinstability
Definition: supernova.h:487
double get_AverageRemnant() const
Definition: supernova.h:390
void remnant_properties(Star *s)
Definition: supernova.cpp:215
virtual void explosion_SNI(Star *s)
Definition: supernova.cpp:289
double get_fallback_frac() const
Definition: supernova.h:377
Lookup::Remnants remnant_type
Definition: supernova.h:423
double pisn_correction
Definition: supernova.h:420
virtual void explosion(Star *s)=0
virtual void ECSN(Star *s)
Definition: supernova.cpp:173
Kicks * kick
Definition: supernova.h:486
static supernova * Instance(std::string const &name, Star *s)
Definition: supernova.cpp:90
void Register(supernova *ptr)
Definition: supernova.h:426
double M_neutrinos
Definition: supernova.h:419
virtual double neutrino_mass_loss(const double mass, Star *s) const
Definition: supernova.cpp:114
virtual void CCexplosion(Star *s)
Definition: supernova.cpp:182
int _set_preSN_Masses(Star *s, bool allow_pisn)
Definition: supernova.cpp:329
double get_pisncorrection() const
Definition: supernova.h:379
double Mremnant
Definition: supernova.h:421
void set_staremnant(Star *s)
Definition: supernova.cpp:192
virtual Lookup::Remnants set_remnant_type_after_explosion(Star *s, double mremnant, Lookup::SNExplosionType sntype)
Definition: supernova.cpp:260
virtual void WDformation(Star *s)
Definition: supernova.cpp:143
void set_Average_for_Unified(Star *s, double default_Average_Mremnant, double default_Average_Mejected)
Definition: supernova.cpp:303
void main(Star *s)
Definition: supernova.cpp:118
Lookup::SNExplosionType sn_type
Definition: supernova.h:424
virtual double pisn(const double mass, Star *s)=0
double Mremnant_preCorrection
Definition: supernova.h:421
double get_Mremnant() const
Definition: supernova.h:383
double get_remnant_type() const
Definition: supernova.h:394
double get_Mremnant_preCorrection() const
Definition: supernova.h:386
double get_preSN_Mass(size_t massid) const
Definition: supernova.cpp:310
static std::vector< int > & GetUsed()
Definition: supernova.h:499
utilities::MassContainer * Mass_preSN
Definition: supernova.h:492
double get_AverageEjected() const
Definition: supernova.h:391
double fallback_frac
Definition: supernova.h:419
double Mass_corrections_after_explosion(const double mass, Star *s)
Definition: supernova.cpp:353
virtual int set_preSN_Masses(Star *s)=0
double Average_ejected
Definition: supernova.h:422
double Average_remnant
Definition: supernova.h:422
double get_M_neutrinos() const
Definition: supernova.h:381
virtual std::string name() const
Definition: supernova.h:266
virtual supernova * instance(_UNUSED Star *s)=0
static std::map< std::string, supernova * > & GetStaticMap()
Definition: supernova.h:494
NeutrinoMassLoss * neutrinomassloss
Definition: supernova.h:488
SevnLogging svlog
Definition: supernova.h:474
Remnants
NOTICE, the order is important (mass ordered): WD, NS, BH.
Definition: lookup_and_phases.h:78
SNExplosionType
Definition: lookup_and_phases.h:54
@ Unknown
Definition: lookup_and_phases.h:55
std::mt19937_64 mtrand
Definition: utilities.cpp:9
Definition: utilities.h:163
#define _UNUSED
Definition: supernova.h:253