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

#include <supernova.h>

Inheritance diagram for NeutrinoMassLossOFF:
supernova DeathMatrix directcollapse

Public Member Functions

 NeutrinoMassLossOFF ()
 
 NeutrinoMassLossOFF (_UNUSED Star *s)
 
virtual std::string name () const
 
virtual supernovainstance (_UNUSED Star *s)=0
 
virtual void explosion (Star *s)=0
 
void main (Star *s)
 
void initialise_remnant (Star *s, double Mass_remnant, Lookup::Remnants Remnant_type)
 
double get_fallback_frac () const
 
double get_pisncorrection () const
 
double get_M_neutrinos () const
 
double get_Mremnant () const
 
double get_Mremnant_preCorrection () const
 
double get_AverageRemnant () const
 
double get_AverageEjected () const
 
double get_Mejected () const
 
double get_remnant_type () const
 
virtual void explosion_SNI (Star *s)
 
virtual void explosion_SNI (Star *s, Binstar *b)
 
double get_preSN_Mass (size_t massid) const
 

Static Public Member Functions

static supernovaInstance (std::string const &name, Star *s)
 

Protected Member Functions

double neutrino_mass_loss (const double mass, _UNUSED Star *s) const override
 
virtual Lookup::Remnants set_remnant_type_after_explosion (Star *s, double mremnant, Lookup::SNExplosionType sntype)
 
virtual void CCexplosion (Star *s)
 
virtual void ECSN (Star *s)
 
virtual void WDformation (Star *s)
 
void Register (supernova *ptr)
 
double Mass_corrections_after_explosion (const double mass, Star *s)
 
virtual double pisn (const double mass, Star *s)=0
 
const PairInstabilityget_pairinstability () const
 
virtual double neutrino_mass_loss (const double mass, Star *s) const
 
void set_Average_for_Unified (Star *s, double default_Average_Mremnant, double default_Average_Mejected)
 
virtual int set_preSN_Masses (Star *s)=0
 
int _set_preSN_Masses (Star *s, bool allow_pisn)
 

Protected Attributes

double fallback_frac
 
double M_neutrinos
 
double pisn_correction
 
double Mremnant
 
double Mejected
 
double Mremnant_preCorrection
 
double Average_ejected
 
double Average_remnant
 
Lookup::Remnants remnant_type
 
Lookup::SNExplosionType sn_type =Lookup::SNExplosionType::Unknown
 
SevnLogging svlog
 

Private Member Functions

void remnant_properties (Star *s)
 
void set_staremnant (Star *s)
 

Static Private Member Functions

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

Private Attributes

Kickskick
 
PairInstabilitypairinstability
 
NeutrinoMassLossneutrinomassloss
 
utilities::MassContainerMass_preSN =nullptr
 

Detailed Description

Auxiliary class to switch off neutrino mass loss

Constructor & Destructor Documentation

◆ NeutrinoMassLossOFF() [1/2]

NeutrinoMassLossOFF::NeutrinoMassLossOFF ( )
inline

◆ NeutrinoMassLossOFF() [2/2]

NeutrinoMassLossOFF::NeutrinoMassLossOFF ( _UNUSED Star s)
inline

Member Function Documentation

◆ _set_preSN_Masses()

int supernova::_set_preSN_Masses ( Star s,
bool  allow_pisn 
)
protectedinherited

◆ CCexplosion()

void supernova::CCexplosion ( Star s)
protectedvirtualinherited

Handle the Core Collapse SN explosion, it calls the explosion method that is overridden in the SN models + take into account pisn corrections and neutrino mass loss.

  • Estimate and set the remnant mass (member Mremnant)
  • Estimate the corrections for pisn and neutrino mass loss and set the corrected remnant mass (set members Mremnant, fallback_frac, M_neutrinos, pisn_correction, sn_type)
  • Set the remnant type (set remnant_type and/or sn_type)
    Parameters
    sPointer to the exploding star

Reimplemented in DeathMatrix, delayed_gauNS, rapid_gauNS, and NSfromGau.

◆ ECSN()

void supernova::ECSN ( Star s)
protectedvirtualinherited

Handle the Electron Capture SN, it has to

  • Estimate and set the remnant mass (member Mremnant)
  • Estimate the corrections for pisn and neutrino mass loss and set the corrected remnant m (set members Mremnant, fallback_frac, M_neutrinos, sn_type) NOTICE: in the default supernova::ECSN only the neutrino mass loss is taken into account
  • Set the remnant type (set remnant_type and/or sn_type) Lookup::SNExplosionType::ElectronCapture NOTICE: when overriding this function, remember to not use the s->getp to retrieve the preSN mass of the star, use instead the method get_preSN_Mass(x) where x can be Mass::ID, MHE::ID, MCO::ID
    Parameters
    sPointer to the exploding star

Reimplemented in DeathMatrix, delayed_gauNS, rapid_gauNS, and NSfromGau.

◆ explosion()

virtual void supernova::explosion ( Star s)
pure virtualinherited

CoreCollapse SN explosion, this method must to:

  • set the remnant mass (member Mremnant)
  • if allowed by the model set the fallback_fraction (fallback_frac) NOTICE: DOT NOT apply pisn or neutrino mass loss correction, DO NOT set remnant_type, these will be automatically set by other methods in CCexplosion. NOTICE: when overriding this function, remember to not use the s->getp to retrieve the preSN mass of the star, use instead the method get_preSN_Mass(x) where x can be Mass::ID, MHE::ID, MCO::ID
    Parameters
    sPointer to the exploding star

Implemented in compactness, DeathMatrix, delayed, directcollapse, and rapid.

◆ explosion_SNI() [1/2]

void supernova::explosion_SNI ( Star s)
virtualinherited

Trigger a SNIa explosion

Parameters
sPointer to star

◆ explosion_SNI() [2/2]

void supernova::explosion_SNI ( Star s,
Binstar b 
)
virtualinherited

Trigger a SNIa explosion during a BSE evolution

Parameters
sPointer to star
bPointer to binary

◆ get_AverageEjected()

double supernova::get_AverageEjected ( ) const
inlineinherited

◆ get_AverageRemnant()

double supernova::get_AverageRemnant ( ) const
inlineinherited

◆ get_fallback_frac()

double supernova::get_fallback_frac ( ) const
inlineinherited

◆ get_M_neutrinos()

double supernova::get_M_neutrinos ( ) const
inlineinherited

◆ get_Mejected()

double supernova::get_Mejected ( ) const
inlineinherited

◆ get_Mremnant()

double supernova::get_Mremnant ( ) const
inlineinherited

◆ get_Mremnant_preCorrection()

double supernova::get_Mremnant_preCorrection ( ) const
inlineinherited

◆ get_pairinstability()

const PairInstability * supernova::get_pairinstability ( ) const
inlineprotectedinherited

◆ get_pisncorrection()

double supernova::get_pisncorrection ( ) const
inlineinherited

◆ get_preSN_Mass()

double supernova::get_preSN_Mass ( size_t  massid) const
inherited

Get the preSN mass from the object

Parameters
massidif of the property, can be only Mass::ID, MHE::ID, MCO::ID
Returns
the value of the preSN property

◆ get_remnant_type()

double supernova::get_remnant_type ( ) const
inlineinherited

◆ GetStaticMap()

static std::map< std::string, supernova * > & supernova::GetStaticMap ( )
inlinestaticprivateinherited

◆ GetUsed()

static std::vector< int > & supernova::GetUsed ( )
inlinestaticprivateinherited

◆ initialise_remnant()

void supernova::initialise_remnant ( Star s,
double  Mass_remnant,
Lookup::Remnants  Remnant_type 
)
inherited

Method used to initialise directy a remnant without passing through an explosion

Parameters
sPointer to the star, used to set remnant properties
Mass_remnantMass of the remnant
Remnant_typeType of the Remnant, it should be an elemnt of the enum Lookup::Remnant

Check input

◆ instance()

virtual supernova * supernova::instance ( _UNUSED Star s)
pure virtualinherited

Create an instance of the class allocated on the heap

Returns
a pointer to a real instance of the class that is allocated on the heap

◆ Instance()

supernova * supernova::Instance ( std::string const &  name,
Star s 
)
staticinherited

◆ main()

void supernova::main ( Star s)
inherited

◆ Mass_corrections_after_explosion()

double supernova::Mass_corrections_after_explosion ( const double  mass,
Star s 
)
protectedinherited

Estimate PISN and neutrino mass loss correction

Parameters
massMremnant mass to correct
sPointer to the exploding star
Returns
the final remnant mass after correction for pisn and neutrino mass loss

◆ name()

virtual std::string supernova::name ( ) const
inlinevirtualinherited

Remember that each new proper supernova model has to have a public static class istance to define in static_main.h e.g. static MySNmodel _mysnmodel; (in the class) and MySNmodel MySNmodel::_mysnmodel; in static_main.h Methods that must be customized in new models. !!!!NOTICE!!!!!: when overriding this function, remember to not use the s->getp to retrieve the preSN mass of the star use instead the method get_preSN_Mass(x) where x can be Mass::ID, MHE::ID, MCO::ID Name of the Supernova model, this will be use at runtime to select the given model

Reimplemented in compactness, DeathMatrix, delayed, delayed_gauNS, directcollapse, rapid, and rapid_gauNS.

◆ neutrino_mass_loss() [1/2]

double NeutrinoMassLossOFF::neutrino_mass_loss ( const double  mass,
_UNUSED Star s 
) const
inlineoverrideprotected

◆ neutrino_mass_loss() [2/2]

double supernova::neutrino_mass_loss ( const double  mass,
Star s 
) const
protectedvirtualinherited

Estimate the neutrino mass loss correction

Parameters
mass
massMass of the remnant before the pair isntability correction
sPointer to the exploding star to which we want to apply the correction
Returns
Mass after the neutrino mass loss correction

◆ pisn()

virtual double supernova::pisn ( const double  mass,
Star s 
)
protectedpure virtualinherited

Apply pisn correction

Parameters
massMass of the remnant before the pair isntability correction
sPointer to the exploding star to which we want to apply the correction
Returns
Mass after the PISN correction, it also set the sn_type

Implemented in PisnON, and PisnOFF.

◆ Register()

void supernova::Register ( supernova ptr)
inlineprotectedinherited

◆ remnant_properties()

void supernova::remnant_properties ( Star s)
privateinherited

1-Set Mremnant e Mejected

2-Set the staremant object

◆ set_Average_for_Unified()

void supernova::set_Average_for_Unified ( Star s,
double  default_Average_Mremnant,
double  default_Average_Mejected 
)
protectedinherited

Set the member Average_ejected and Average_remnant. These are used in the Unified Sn model

Parameters
sPointer to the star
default_Average_Mremnantdefault Average_Mremnant for this SN model
default_Average_Mejecteddefault Average_Mejected for this SN model

◆ set_preSN_Masses()

virtual int supernova::set_preSN_Masses ( Star s)
protectedpure virtualinherited

Set the pre SN mass container

Implemented in PisnON, and PisnOFF.

◆ set_remnant_type_after_explosion()

Lookup::Remnants supernova::set_remnant_type_after_explosion ( Star s,
double  mremnant,
Lookup::SNExplosionType  sntype 
)
protectedvirtualinherited

Methods that may be customized in new models NOTICE-1: for most of the cases, in order to add a new model it is enough to just override the explosion method, the methods below can be overridden in rare some special cases. NOTICE-2: the pisn and neutrino mass loss corrections are handled through the virtual method pisn and neutrino_mass_loss, in principle, these methods can be overrided, however DON'T DO IT! The options for pisn and neutrino mass loss hare selected through the proper classes PairInstability and NeutrinoMassLoss, create a new model of the classes if you want to change the current formalism. DO NOT override the class, If you want to disable the corrections. If you want to disable the pisn at-compile time for a given model just inherit from the class PisnOFF, if you want to disable the neutrino mass loss inherit from NeutrinoMassLossOFF, e.g. class MySNmodel : virtual public supernova, PisnOFF, NeutrinoMassLossOFF{ If you wan to disable the corrections at runtime just choose the option disabled, e.g. -sn_pairinstability disabled and/or -sn_neutrinomloss disabled NOTICE: each new supernova model must inherit either from PisnON (to enable pisn correction) or from PisnOFF (to disable the pisn correction) !!!!NOTICE-IMPORTANT!!!!!: when overriding this function, remember to not use the s->getp to retrieve the preSN mass of the star use instead the method get_preSN_Mass(x) where x can be Mass::ID, MHE::ID, MCO::ID Set the remnant type, i.e. set the member remnant_type based on the remnant Mass and the sntype. The default version is quite simple, if Mass<Max Mass Neutron star (sn_max_ns_mass), the remnant is a NS_CCSN, otherwise it is a BH. If Mremnant is 0, the remnant type is Empty. If sntype is Electron Capture the remnant is NS_ECSN

Parameters
spointer to the exploding star
mremnantFinal mass of the remnant
sntypeSN type
Returns
the remnant type just set

Set the remnant type, i.e. set the member remnant_type based on the remnant Mass and the sntype. The default version is quite simple, if Mass<Max Mass Neutron star (sn_max_ns_mass), the remnant is a NS_CCSN, otherwise it is a BH. If Mremnant is 0, the remnant type is Empty. If sntype is Electron Capture the remnant is NS_ECSN

Parameters
spointer to the exploding star
mremnantFinal mass of the remnant
sntypeSN type
Returns
the remnant type just set

Set Remnant type

◆ set_staremnant()

void supernova::set_staremnant ( Star s)
privateinherited

Use this function to properly initiliase the pointer to the object It uses the protected member Mremnant

Parameters
sPointer to the star

◆ WDformation()

void supernova::WDformation ( Star s)
protectedvirtualinherited

Handle the WD formation, it has to

  • Estimate and set the remnant mass (member Mremnant)
  • Estimate and set the remnant_type (member remnant_type)
  • Estimate and set the SN type (member sn_type) that should be Lookup::SNExplosionType::WDformation NOTICE: when overriding this function, remember to not use the s->getp to retrieve the preSN mass of the star, use instead the method get_preSN_Mass(x) where x can be Mass::ID, MHE::ID, MCO::ID
    Parameters
    sPointer to the exploding star

Member Data Documentation

◆ Average_ejected

double supernova::Average_ejected
protectedinherited

◆ Average_remnant

double supernova::Average_remnant
protectedinherited

◆ fallback_frac

double supernova::fallback_frac
protectedinherited

◆ kick

Kicks* supernova::kick
privateinherited

◆ M_neutrinos

double supernova::M_neutrinos
protectedinherited

◆ Mass_preSN

utilities::MassContainer* supernova::Mass_preSN =nullptr
privateinherited

◆ Mejected

double supernova::Mejected
protectedinherited

◆ Mremnant

double supernova::Mremnant
protectedinherited

◆ Mremnant_preCorrection

double supernova::Mremnant_preCorrection
protectedinherited

◆ neutrinomassloss

NeutrinoMassLoss* supernova::neutrinomassloss
privateinherited

◆ pairinstability

PairInstability* supernova::pairinstability
privateinherited

◆ pisn_correction

double supernova::pisn_correction
protectedinherited

◆ remnant_type

Lookup::Remnants supernova::remnant_type
protectedinherited

◆ sn_type

Lookup::SNExplosionType supernova::sn_type =Lookup::SNExplosionType::Unknown
protectedinherited

◆ svlog

SevnLogging supernova::svlog
protectedinherited

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