SEVN
Loading...
Searching...
No Matches
PIFarmer19 Class Reference

#include <pifarmer19.h>

Inheritance diagram for PIFarmer19:
PairInstability

Public Member Functions

 PIFarmer19 (bool reg=true)
 
std::string name () const override
 
PIFarmer19instance () override
 
PISNreturn apply_afterSN (_UNUSED Star *s, _UNUSED double mremnant) const override
 
virtual utilities::MassContainer apply_beforeSN (_UNUSED Star *s) const
 

Static Public Member Functions

static PairInstabilityInstance (std::string const &name)
 Base class. More...
 

Static Public Attributes

static PIFarmer19 _pifarmer19
 

Static Protected Member Functions

static void Register (PairInstability *ptr)
 

Protected Attributes

SevnLogging svlog
 

Static Private Member Functions

static std::map< std::string, PairInstability * > & GetStaticMap ()
 Option handling. More...
 
static std::vector< int > & GetUsed ()
 TODO we are never using this method, we should remove it. More...
 

Detailed Description

farmer19 option Fitting equations from Farmer+19: https://ui.adsabs.harvard.edu/abs/2019ApJ...887...53F/abstract

Notice: The Mbh derived in farmer have been obtained starting from pureHe model, therefore here we are assuming the Hydrogen envelope is always easily removed after the first pulse.

Modification with respect to the standard

  • apply_beforeSN: no modifications
  • apply_afterSN: The mass of the BH in the PPISN is derived using the fitting equations A1 from Farmer19, it the minimum between the Mremnant in input and the one derived from Eq. A1 using the star MCO

Constructor & Destructor Documentation

◆ PIFarmer19()

PIFarmer19::PIFarmer19 ( bool  reg = true)
explicit

Member Function Documentation

◆ apply_afterSN()

PISNreturn PIFarmer19::apply_afterSN ( _UNUSED Star s,
_UNUSED double  mremnant 
) const
overridevirtual

PISN/PPISN implementation from Farmer+19 https://ui.adsabs.harvard.edu/abs/2019ApJ...887...53F/abstract PISN for MCO>60 Msun and MHE<135 Msun PPISN for MCO>=38 Msun and MCO=60 Msun

The final mass of the PPISN is the minimum between the mass coming from the SN prescriptions and the BH mass in equation A1 of Farmer+19

Notice1: We limit the MBH from Eq. A1 to 11 Msun, the minimum remnant mass shown in the Farmer+19 plot Notice2: The Mbh derived in farmer have been obtained starting from pureHe model, therefore here we are assuming the Hydrogen envelope is always easily removed after the first pulse.

Parameters
s
mremnant
Returns

Reimplemented from PairInstability.

◆ apply_beforeSN()

utilities::MassContainer PairInstability::apply_beforeSN ( _UNUSED Star s) const
virtualinherited

Methods that can be customized in new models: NOTICE these are the two methods that actually estimate the pisn corrections. By default they do nothing (indeed they are not changed in the disabled model) You may want to change one or both of them Main function to call to apply the pulsation pair instability before the SN explosion The function return a structure containing the modified preSN stellar mass(es) (total mass, MHE, MCO) due to the pulsation pair instability. This function should be called before estimating the final mass in the explosion method in the Supernova classes The method of the base class just copy the Mass,MHE and MCO NOTICE: the default method does nothing, just initialise the utilities::MassContainer with the current stellar mass properties

Parameters
sPointer to the exploding star
Returns
an Instance of the struct PPISNMass with only three members:
  • Mass_after_ppi, Mass of the star before the explosion due to the pulsation pair instability
  • MHE_after_ppi: Mass of the HE core of the star before the explosion due to the pulsation pair instability
  • MCO_after_ppi: Mass of the CO core of the star before the explosion due to the pulsation pair instability

Reimplemented in PIIorio22.

◆ GetStaticMap()

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

Option handling.

◆ GetUsed()

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

TODO we are never using this method, we should remove it.

◆ instance()

PIFarmer19 * PIFarmer19::instance ( )
inlineoverridevirtual

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

Implements PairInstability.

◆ Instance()

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

Base class.

Generic method to call an instance based on name

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

◆ name()

std::string PIFarmer19::name ( ) const
inlineoverridevirtual

Remember that each new proper PairInstability model has to have a public static class instance to define in static_main.h e.g. static MyModel _mymodel; (in the class) and MyModel MyModel::_mymodel; in static_main.h Methods that must be customized in new models Name of the PairInstability model, this will be use at runtime to select the given model

Reimplemented from PairInstability.

◆ Register()

void PairInstability::Register ( PairInstability ptr)
staticprotectedinherited

Register function, to be called inside the option constructor to register the given option

Member Data Documentation

◆ _pifarmer19

PIFarmer19 PIFarmer19::_pifarmer19
static

◆ svlog

SevnLogging PairInstability::svlog
protectedinherited

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