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

Inertia. More...

#include <property.h>

Inheritance diagram for Inertia:
OptionalTableProperty TableProperty Property

Public Types

typedef std::map< std::string, size_t > _PrintMap
 

Public Member Functions

 Inertia (bool reg=true)
 
size_t TabID () const override
 
InertiaInstance () override
 
void set_refpointers (_UNUSED Star *s) override
 
void set_remnant (_UNUSED Star *s) override
 
void evolve_remnant (_UNUSED Star *s) override
 
void evolve_nakedco (_UNUSED Star *s) override
 
void correct_interpolation_errors_real (_UNUSED Star *s) override
 
std::string name () const override
 
double get_fk (_UNUSED const Star *s=NULL) override
 
double get_0_fk (_UNUSED const Star *s=NULL) override
 
double get (_UNUSED const Star *s=NULL) override
 
double get_0 (_UNUSED const Star *s=NULL) override
 
void changed_track (_UNUSED Star *s, _UNUSED Star *s_jtrack) override
 
double estimate_Inertia_homogeneous_sphere (double Mass, double Outer_radius, double Inner_radius=0.)
 
void evolve (Star *s) override
 
virtual void evolve (_UNUSED Star *s)
 
bool amiderived () override
 
void update_derived (Star *s) override
 
virtual void update_derived (_UNUSED Star *s)
 
virtual void synch () override
 
virtual size_t TabID ()
 
bool are_table_loaded () const override
 
void set_w (_UNUSED Star *s) override
 
virtual std::string units ()
 
virtual void resynch (_UNUSED const double &dt, _UNUSED bool set0=true)
 
virtual void resynch (_UNUSED Star *s)
 
virtual void set_empty (_UNUSED Star *s)
 
virtual void set_empty_in_bse (_UNUSED Star *s, _UNUSED Binstar *b)
 
virtual void evolve_empty (_UNUSED Star *s)
 
virtual void set_remnant_in_bse (_UNUSED Star *s, _UNUSED Binstar *b)
 
virtual void special_evolve (_UNUSED Star *s)
 
virtual void evolve_fake (Star *s)
 
virtual void init (_UNUSED const double &a)
 
virtual void evolve_real ()
 
virtual void update_from_binary (_UNUSED Star *s, const double &DV, _UNUSED Binstar *b=nullptr)
 
virtual void copy_V_from (Property *p)
 
virtual void update_variation ()
 
virtual void correct_interpolation_errors (_UNUSED Star *s)
 
virtual void restore ()
 
virtual void reset ()
 
double get_fk_raw (_UNUSED const Star *s=NULL) const
 
double get_0_fk_raw (_UNUSED const Star *s=NULL) const
 
double get_raw (_UNUSED const Star *s=NULL) const
 
double get_0_raw (_UNUSED const Star *s=NULL) const
 
virtual double get_Vlast (_UNUSED const Star *s) const
 
double * get_wm ()
 
double * get_wz ()
 

Static Public Member Functions

static size_t size ()
 

Public Attributes

double * val_ref [4]
 
double * val_in [4]
 

Static Public Attributes

static size_t ID
 
static Inertia _inertia
 
static _PrintMap PrintMap
 
static vector< Property * > all
 

Protected Member Functions

void evolve_without_table (_UNUSED Star *s) override
 
double estimate_logInertia (_UNUSED Star *s)
 
double estimate_Inertia_homogeneous_sphere (_UNUSED Star *s)
 
double estimate_Inertia_homogeneous_sphere_wcore (_UNUSED Star *s)
 
double estimate_Inertia_Hurley (_UNUSED Star *s)
 
double estimate_Inertia_DeMink (_UNUSED Star *s)
 
void set_wM (Star *s) override
 
void check_and_set_rzams (_UNUSED Star *s)
 
void synch_v_value_without_table ()
 
virtual void set_wZ (_UNUSED Star *s)
 
virtual void set_wM (_UNUSED Star *s)
 
void set_wM_linear (_UNUSED Star *s)
 
void set_wM_rational (_UNUSED Star *s)
 
void set_wM_log (_UNUSED Star *s)
 
void set_fk (const double &a)
 
void set_0_fk (const double &a)
 
virtual void set (const double &a)
 
virtual void set_0 (const double &a)
 
void set_VBIN (const size_t &id, const double &a)
 
virtual void safety_check ()
 
void Register (Property *_p, size_t *id, const std::string &_name)
 

Protected Attributes

bool table_loaded =false
 
double value
 
double value0
 
double Dvalue
 
double V
 
double V0
 
vector< double > VBIN
 
double interpolating_values [4]
 
double wM [4]
 
double wZ [2]
 
SevnLogging svlog
 

Static Protected Attributes

static size_t _size = 0
 

Private Attributes

double(Inertia::* inertia_func )(_UNUSED Star *s) = nullptr
 
double spin_core
 

Detailed Description

Member Typedef Documentation

◆ _PrintMap

typedef std::map<std::string,size_t> Property::_PrintMap
inherited

Constructor & Destructor Documentation

◆ Inertia()

Inertia::Inertia ( bool  reg = true)
inline

Member Function Documentation

◆ amiderived()

bool OptionalTableProperty::amiderived ( )
inlineoverridevirtualinherited

Check if this is a derived. A property is defined dervied if it is estimated by the combination of other properties and it is not the derivative of a property.

Returns
true if it is derived, false if it is not (overrided in the derived properties)

Reimplemented from Property.

◆ are_table_loaded()

bool TableProperty::are_table_loaded ( ) const
inlineoverridevirtualinherited

Reimplemented from Property.

◆ changed_track()

void Inertia::changed_track ( _UNUSED Star s,
_UNUSED Star s_jtrack 
)
overridevirtual

Inertia

Reimplemented from Property.

◆ check_and_set_rzams()

void Inertia::check_and_set_rzams ( _UNUSED Star s)
protected

◆ copy_V_from()

virtual void Property::copy_V_from ( Property p)
inlinevirtualinherited

Reimplemented in R_object, and Mass_obejct.

◆ correct_interpolation_errors()

virtual void Property::correct_interpolation_errors ( _UNUSED Star s)
inlinevirtualinherited

Reimplemented in Mass, MHE, MCO, RHE, and RCO.

◆ correct_interpolation_errors_real()

void Inertia::correct_interpolation_errors_real ( _UNUSED Star s)
overridevirtual

If we are following the tracks, it could happen that after a change of tracks the Inertia evolve to 0 in this case we just set a minimum value of 0.1

Parameters
sPointer to the star

Reimplemented from Property.

◆ estimate_Inertia_DeMink()

double Inertia::estimate_Inertia_DeMink ( _UNUSED Star s)
protected

Estimate the inertia following the formalism in DeMink+13 (Appendix A, A1,A2,A3)

Parameters
sPointer to the star
Returns
the inertia in Msun Rsun^2

◆ estimate_Inertia_homogeneous_sphere() [1/2]

double Inertia::estimate_Inertia_homogeneous_sphere ( _UNUSED Star s)
protected

Estimate the Inertia of a star assuming that the star is an homogeneous sphere

Parameters
sPointer to star
Returns
the inertia in Msun Rsun^2

◆ estimate_Inertia_homogeneous_sphere() [2/2]

double Inertia::estimate_Inertia_homogeneous_sphere ( double  Mass,
double  Outer_radius,
double  Inner_radius = 0. 
)

Estimate the Inertia considering an homogeneous sphere considering the presence of a cavity

Parameters
Masstotal mass of the sphere
Outer_radiustotal radius of the sphere
Inner_radiussphere of the inner cavity
Returns
the inertia in Msun Rsun^2

◆ estimate_Inertia_homogeneous_sphere_wcore()

double Inertia::estimate_Inertia_homogeneous_sphere_wcore ( _UNUSED Star s)
protected

Estimate the Inertia of a star assuming that the star is composed by two elements, an inner homogeneous sphere (the core) and an outer homogeneous sphere with a cavity (the envelope).

Parameters
sPointer to star
Returns
the inertia in Msun Rsun^2

◆ estimate_Inertia_Hurley()

double Inertia::estimate_Inertia_Hurley ( _UNUSED Star s)
protected

Estimate the inertia following the formalism in Hurley+00 (Eq. 109)

Parameters
sPointer to star
Returns
the inertia in Msun Rsun^2

◆ estimate_logInertia()

double Inertia::estimate_logInertia ( _UNUSED Star s)
protected

Estimate the log10 of the Inertia assuming a uniform sphere

Parameters
sPointer to star
Returns
log10 (2/5 MR^2)

◆ evolve() [1/2]

◆ evolve() [2/2]

void OptionalTableProperty::evolve ( Star s)
inlineoverrideinherited

◆ evolve_empty()

virtual void Property::evolve_empty ( _UNUSED Star s)
inlinevirtualinherited

Reimplemented in Time_object, Timestep, Phase, RemnantType, and JIT_Property.

◆ evolve_fake()

void Property::evolve_fake ( Star s)
virtualinherited

Set v0=v

Move to new value in the interpolating track

Find new values at times t for the interpolatring tracks using linear interpolation

Find the interpolating z value, M1*v1 + M2*v2

Find the final interpolated value, v=Z1*v1 + Z2*v2

Reimplemented in Radius.

◆ evolve_nakedco()

void Inertia::evolve_nakedco ( _UNUSED Star s)
overridevirtual

Reimplemented from Property.

◆ evolve_real()

virtual void Property::evolve_real ( )
inlinevirtualinherited

◆ evolve_remnant()

void Inertia::evolve_remnant ( _UNUSED Star s)
overridevirtual

Reimplemented from Property.

◆ evolve_without_table()

void Inertia::evolve_without_table ( _UNUSED Star s)
inlineoverrideprotectedvirtual

Reimplemented from OptionalTableProperty.

◆ get()

double Inertia::get ( _UNUSED const Star s = NULL)
inlineoverridevirtual

Reimplemented from Property.

◆ get_0()

double Inertia::get_0 ( _UNUSED const Star s = NULL)
inlineoverridevirtual

Reimplemented from Property.

◆ get_0_fk()

double Inertia::get_0_fk ( _UNUSED const Star s = NULL)
inlineoverridevirtual

Reimplemented from Property.

◆ get_0_fk_raw()

double Property::get_0_fk_raw ( _UNUSED const Star s = NULL) const
inlineinherited

◆ get_0_raw()

double Property::get_0_raw ( _UNUSED const Star s = NULL) const
inlineinherited

◆ get_fk()

double Inertia::get_fk ( _UNUSED const Star s = NULL)
inlineoverridevirtual

Here Star is optional, because it is needed only by property that have to estimate V on the fly. Notice that const Star*s means that inside the function we can only call method that we are sure will not change the Star s.

Reimplemented from Property.

◆ get_fk_raw()

double Property::get_fk_raw ( _UNUSED const Star s = NULL) const
inlineinherited

◆ get_raw()

double Property::get_raw ( _UNUSED const Star s = NULL) const
inlineinherited

◆ get_Vlast()

virtual double Property::get_Vlast ( _UNUSED const Star s) const
inlinevirtualinherited

Get the value of the property expected at the end of the evolution (before becoming a remnant). It is based on the last values of the tables.

Parameters
sPointer to the star
Returns
The value of the property at the end of the evolution estimated as the weighted mean of the interpolating track values

◆ get_wm()

double * Property::get_wm ( )
inlineinherited

◆ get_wz()

double * Property::get_wz ( )
inlineinherited

◆ init()

virtual void Property::init ( _UNUSED const double &  a)
inlinevirtualinherited

◆ Instance()

Inertia * Inertia::Instance ( )
inlineoverridevirtual

Implements Property.

◆ name()

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

Reimplemented from Property.

◆ Register()

void Property::Register ( Property _p,
size_t *  id,
const std::string &  _name 
)
inlineprotectedinherited

◆ reset()

virtual void Property::reset ( )
inlinevirtualinherited

Reset to 0

◆ restore()

virtual void Property::restore ( )
inlinevirtualinherited

Reimplemented in NextOutput, and JIT_Property.

◆ resynch() [1/2]

virtual void Property::resynch ( _UNUSED const double &  dt,
_UNUSED bool  set0 = true 
)
inlinevirtualinherited

◆ resynch() [2/2]

virtual void Property::resynch ( _UNUSED Star s)
inlinevirtualinherited

◆ safety_check()

virtual void Property::safety_check ( )
inlineprotectedvirtualinherited

Reimplemented in Radius, and Mass.

◆ set()

virtual void Property::set ( const double &  a)
inlineprotectedvirtualinherited

Reimplemented in Radius, and JIT_Property.

◆ set_0()

virtual void Property::set_0 ( const double &  a)
inlineprotectedvirtualinherited

Reimplemented in Radius.

◆ set_0_fk()

void Property::set_0_fk ( const double &  a)
inlineprotectedinherited

◆ set_empty()

virtual void Property::set_empty ( _UNUSED Star s)
inlinevirtualinherited

Reimplemented in Time_object, Timestep, Phase, RemnantType, and JIT_Property.

◆ set_empty_in_bse()

virtual void Property::set_empty_in_bse ( _UNUSED Star s,
_UNUSED Binstar b 
)
inlinevirtualinherited

Set empty method to be used during BSE evolution

Parameters
spointer to Star
bpointer to Binary

Reimplemented in Timestep.

◆ set_fk()

void Property::set_fk ( const double &  a)
inlineprotectedinherited

◆ set_refpointers()

void Inertia::set_refpointers ( _UNUSED Star s)
overridevirtual

Optional table properties

Reimplemented from OptionalTableProperty.

◆ set_remnant()

void Inertia::set_remnant ( _UNUSED Star s)
overridevirtual

Reimplemented from Property.

◆ set_remnant_in_bse()

virtual void Property::set_remnant_in_bse ( _UNUSED Star s,
_UNUSED Binstar b 
)
inlinevirtualinherited

Set remnant method to be used during BSE evolution

Parameters
spointer to Star
bpointer to Binary

Reimplemented in Timestep.

◆ set_VBIN()

void Property::set_VBIN ( const size_t &  id,
const double &  a 
)
inlineprotectedinherited

◆ set_w()

void TableProperty::set_w ( _UNUSED Star s)
overridevirtualinherited

Reimplemented from Property.

◆ set_wM() [1/2]

void TableProperty::set_wM ( _UNUSED Star s)
protectedvirtualinherited

Reimplemented in Radius.

◆ set_wM() [2/2]

void Inertia::set_wM ( Star s)
overrideprotected

◆ set_wM_linear()

void TableProperty::set_wM_linear ( _UNUSED Star s)
protectedinherited

Simple linear interpolation in Mass.

Parameters
s

◆ set_wM_log()

void TableProperty::set_wM_log ( _UNUSED Star s)
protectedinherited

Log weights

Parameters
s

◆ set_wM_rational()

void TableProperty::set_wM_rational ( _UNUSED Star s)
protectedinherited

Linear interpolation with an additional weighting correction

Parameters
s

◆ set_wZ()

void TableProperty::set_wZ ( _UNUSED Star s)
protectedvirtualinherited

◆ size()

static size_t Property::size ( )
inlinestaticinherited

◆ special_evolve()

virtual void Property::special_evolve ( _UNUSED Star s)
inlinevirtualinherited

Reimplemented in Localtime, Worldtime, and Phase.

◆ synch()

virtual void OptionalTableProperty::synch ( )
inlineoverridevirtualinherited

Reimplemented from Property.

◆ synch_v_value_without_table()

void OptionalTableProperty::synch_v_value_without_table ( )
inlineprotectedinherited

◆ TabID() [1/2]

virtual size_t Property::TabID ( )
inlinevirtualinherited

◆ TabID() [2/2]

size_t Inertia::TabID ( ) const
inlineoverridevirtual

Implements TableProperty.

◆ units()

virtual std::string Property::units ( )
inlinevirtualinherited

◆ update_derived() [1/2]

virtual void Property::update_derived ( _UNUSED Star s)
inlinevirtualinherited

This function can be called to update the value of V in derived proprties (without setting V0) It is empty for all the others. This is needed since after a binary evolution, the derived properties have to be updated without setting V0 (same as update_from_binary).

Reimplemented in JIT_Property.

◆ update_derived() [2/2]

void OptionalTableProperty::update_derived ( Star s)
overrideinherited

If not following a table, these are derived properties, so they have to follow the update_derived function same as derived properties

◆ update_from_binary()

virtual void Property::update_from_binary ( _UNUSED Star s,
const double &  DV,
_UNUSED Binstar b = nullptr 
)
inlinevirtualinherited

Reimplemented in dMcumul_RLO, and Radius.

◆ update_variation()

virtual void Property::update_variation ( )
inlinevirtualinherited

Member Data Documentation

◆ _inertia

Inertia Inertia::_inertia
static

◆ _size

size_t Property::_size = 0
staticprotectedinherited

Instruction for adding new property PROP 1- Add the size_t PROP::ID 2- Initialise the static (fake) instance PROP PROP::_prop. NB: take care of the order of initilisation. The properies will be evolved exactly in the same order in which they are initialised here Define: @size: total number of instances of Property and derived classes (both fake and real). @all: vector containing all the (pointers) to the Property. @PrintMap: map containing the pair (Property_name, Property_id) for output purpose. Note all and PrintMap are filled during the instantiation of the fake Processes (see below)

◆ all

vector< Property * > Property::all
staticinherited

◆ Dvalue

double Property::Dvalue
protectedinherited

◆ ID

size_t Inertia::ID
static

◆ inertia_func

double(Inertia::* Inertia::inertia_func) (_UNUSED Star *s) = nullptr
private

◆ interpolating_values

double Property::interpolating_values[4]
protectedinherited

◆ PrintMap

Property::_PrintMap Property::PrintMap
staticinherited

◆ spin_core

double Inertia::spin_core
private

◆ svlog

SevnLogging Property::svlog
protectedinherited

◆ table_loaded

bool TableProperty::table_loaded =false
protectedinherited

◆ V

double Property::V
protectedinherited

◆ V0

double Property::V0
protectedinherited

◆ val_in

double* Property::val_in[4]
inherited

◆ val_ref

double* Property::val_ref[4]
inherited

◆ value

double Property::value
protectedinherited

◆ value0

double Property::value0
protectedinherited

◆ VBIN

vector<double> Property::VBIN
protectedinherited

◆ wM

double Property::wM[4]
protectedinherited

◆ wZ

double Property::wZ[2]
protectedinherited

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