#include <Orbit.h>
|
| void | set_orbital (_UNUSED Binstar *b) override |
| |
| void | init_common_variable (Star *donor_star, Star *accretor_star, Binstar *b) |
| |
| bool | check_doubleRLO (Binstar *b) |
| | AUX. More...
|
| |
| bool | check_collision_at_periastron (Star *donor, Star *accretor, Binstar *b) |
| |
| int | outcome_double_RLO (_UNUSED Binstar *b) override |
| |
| int | outcome_collision (_UNUSED Binstar *b) override |
| |
| int | outcome_collision (Star *donor, Star *accretor, _UNUSED Binstar *b) override |
| |
| virtual int | outcome_collision (_UNUSED Star *donor, _UNUSED Star *accretor, _UNUSED Binstar *b) |
| |
| void | RLO (_UNUSED Binstar *b) |
| |
| virtual void | RLO (_UNUSED Star *donor, _UNUSED Star *accretor, _UNUSED Binstar *b) |
| |
| double | dynamic_dmdt (_UNUSED Star *s, _UNUSED Binstar *b) override |
| | Mass transfer. More...
|
| |
| double | nuclear_dmdt (_UNUSED Star *s, _UNUSED Binstar *b) override |
| |
| double | thermal_dmdt (_UNUSED Star *s, _UNUSED Binstar *b) override |
| |
| int | dynamic_swallowing (_UNUSED Binstar *b) override |
| |
| double | thermal_nuclear_accreted_mass (_UNUSED double DM_donor, _UNUSED Star *donor, _UNUSED Star *accretor, _UNUSED Binstar *b) override |
| |
| double | fRL_radius (_UNUSED Star *star, _UNUSED Binstar *b) override |
| |
| Star * | get_donor () |
| |
| Star * | get_accretor () |
| |
| double | get_rldonor () |
| |
| void | set_DA (double DA) |
| |
| void | set_DE (double DE) |
| |
| double | get_mt_value () const override |
| |
| double | get_mt_tshold () const override |
| |
| void | Register (Orbital_change_RL *ptr, const std::string &_name) |
| |
| virtual double | correct_accreted_mass (double DM_accreted, _UNUSED double DM_donor, _UNUSED Star *donor, _UNUSED Star *accretor, _UNUSED Binstar *b) |
| |
| int | set_DM (double DM, int starID) |
| |
| int | reset_DM () |
| |
| int | set_swallowed (int starID) |
| |
| int | reset_swallowed (int starID) |
| |
| int | reset_swallowed () |
| |
| void | set_mix () |
| |
| void | unset_mix () |
| |
| bool | get_mix () |
| |
| void | set_comenv () |
| |
| void | unset_comenv () |
| |
| bool | get_comenv () |
| |
| void | set_is_RLO_happening () |
| |
| void | unset_is_RLO_happening () |
| |
| void | set_is_colliding () |
| |
| void | unset_is_colliding () |
| |
| virtual double | estimate_q (Star *donor, Star *accretor) |
| | q stuff More...
|
| |
| virtual double | Hfrac (Star *s) |
| |
| virtual double | dMdt_eddington (Star *donor, Star *accretor, Binstar *b) |
| |
| bool | is_giant_like (int star_type_bse) |
| |
| virtual double | kelvin_helmotz_tscale (Star *s) |
| | time scales More...
|
| |
| virtual double | dynamic_tscale (Star *s) |
| |
| virtual int | check_compact_accretor (int donor_type_bse, int accretor_type_bse) |
| | Checks. More...
|
| |
◆ Hurley_mod_rl()
| Hurley_mod_rl::Hurley_mod_rl |
( |
bool |
reg = true | ) |
|
|
inline |
◆ check_collision_at_periastron()
| bool Hurley_rl::check_collision_at_periastron |
( |
Star * |
donor, |
|
|
Star * |
accretor, |
|
|
Binstar * |
b |
|
) |
| |
|
protectedinherited |
Check if both stars are colliding at the periastron. The outcome of this two events can be a Mix or a CE.
- Parameters
-
- Returns
- true if one of two conditions is fulfilled
◆ check_compact_accretor()
| virtual int Orbital_change_RL::check_compact_accretor |
( |
int |
donor_type_bse, |
|
|
int |
accretor_type_bse |
|
) |
| |
|
inlineprotectedvirtualinherited |
Checks.
Check that for compact remnants (WD,NS,BH) the accretor is as compact or more compact with respect to the donor.
- Parameters
-
| donor_type_bse | BSE type of the donor |
| accretor_type_bse | BSE type of the accretor |
- Returns
- EXIT_SUCCESS or throw an error
- Exceptions
-
◆ check_doubleRLO()
| bool Hurley_rl::check_doubleRLO |
( |
Binstar * |
b | ) |
|
|
protectedinherited |
AUX.
Aux.
Check if both stars are filling the RL The outcome of this two events can be a Mix or a CE.
- Parameters
-
- Returns
- true if one of two conditions is fulfilled
◆ correct_accreted_mass()
|
|
inlineprotectedvirtualinherited |
General function to be called to correct the accreted mass for whatever reason. In this general version it just returns the same amount of DM_accreted in input. The idea is that specialised version of this process could need to add special correction without change the rest of the process.
- Parameters
-
| DM_accreted | mass accreted by the accretor (before this correction) in Msun |
| DM_donor | mass donated by the donor in Msun |
| donor | Pointer to the star that is overflowing the RocheLobe |
| accretor | Pointer to the star that is accreting mass |
| b | Pointer to the binary |
Reimplemented in Hurley_rl_propeller.
◆ DA()
◆ DAngMomSpin()
◆ DE()
Variation of Eccentricity. In BSE derived from Hurley+20, the eccentricity is set to 0 at onset of RLO. In order to take this into account we set the DE to a large negative value so that e<0 and in the subsequent checks it is forced to 0.
- Parameters
-
| b | Pointer to binary |
| procID | ID of process calling DE. |
- Returns
Reimplemented from Orbital_change.
◆ DM()
|
|
inlineoverridevirtualinherited |
◆ dMdt_eddington()
| double Orbital_change_RL::dMdt_eddington |
( |
Star * |
donor, |
|
|
Star * |
accretor, |
|
|
Binstar * |
b |
|
) |
| |
|
protectedvirtualinherited |
Estimate the rate of mass transfer considering the Eddington limit
- Parameters
-
| donor | Star that is donating mass through the RLO |
| accretor | Star that is accreting mass |
- Returns
◆ dynamic_dmdt()
|
|
overrideprotectedvirtualinherited |
Mass transfer.
Rate of dynamic mass transfer from Eq. 62 in Hurley+2002
- Parameters
-
| s | pointer to the Star that is losing mass |
| b | pointer to the binary |
- Returns
- dm/dt
Reimplemented from Orbital_change_RL.
◆ dynamic_swallowing()
|
|
overrideprotectedvirtualinherited |
Function that handle the situation in which the mass transfer is dynamic unstable but the stars are not mixing or doing a ce. Note in that case we use the current stellar properties (after single and binary evolution) not the properties at time 0.
- Parameters
-
- Returns
- EXIT_SUCCESS;
Reimplemented from Orbital_change_RL.
Reimplemented in Hurley_rl_bse.
◆ dynamic_tscale()
| double Orbital_change_RL::dynamic_tscale |
( |
Star * |
s | ) |
|
|
protectedvirtualinherited |
Dynamic time scale (Eq. 63, Hurley+2002) Directly taken from SEVN1
- Parameters
-
- Returns
- Dynamic time scale in yr
◆ estimate_q()
| double Orbital_change_RL::estimate_q |
( |
Star * |
donor, |
|
|
Star * |
accretor |
|
) |
| |
|
protectedvirtualinherited |
q stuff
q
Simply estimate the mass fraction of the donor over the accretor
- Parameters
-
| donor | Star that is donating mass through the RLO |
| accretor | Star that is accreting mass |
- Returns
- mass_fraction
◆ fRL_radius()
|
|
overrideprotectedvirtualinherited |
Roche Lobe radius normalised over the star radius
- Parameters
-
| star | pointer to the star for which we are estimateting fRL |
| b | pointer to the binary |
- Returns
- R_rl/R_star
Reimplemented from Orbital_change_RL.
◆ get_accretor()
| Star * Hurley_rl::get_accretor |
( |
| ) |
|
|
inlineprotectedinherited |
◆ get_comenv()
| bool Orbital_change_RL::get_comenv |
( |
| ) |
|
|
inlineprotectedinherited |
◆ get_DM()
| double Orbital_change_RL::get_DM |
( |
int |
ID | ) |
|
|
inlineinherited |
◆ get_donor()
| Star * Hurley_rl::get_donor |
( |
| ) |
|
|
inlineprotectedinherited |
◆ get_mix()
| bool Orbital_change_RL::get_mix |
( |
| ) |
|
|
inlineprotectedinherited |
◆ get_mt_tshold()
| double Hurley_rl::get_mt_tshold |
( |
| ) |
const |
|
inlineoverrideprotectedvirtualinherited |
◆ get_mt_value()
| double Hurley_rl::get_mt_value |
( |
| ) |
const |
|
inlineoverrideprotectedvirtualinherited |
◆ get_rldonor()
| double Hurley_rl::get_rldonor |
( |
| ) |
|
|
inlineprotectedinherited |
◆ GetStaticMap()
| static std::map< std::string, Orbital_change_RL * > & Orbital_change_RL::GetStaticMap |
( |
| ) |
|
|
inlinestaticprivateinherited |
◆ GetUsed()
| static std::vector< int > & Orbital_change_RL::GetUsed |
( |
| ) |
|
|
inlinestaticprivateinherited |
◆ Hfrac()
| double Orbital_change_RL::Hfrac |
( |
Star * |
s | ) |
|
|
protectedvirtualinherited |
Estimate the H fraction based on the functional form .... (found in SEVN1)
- Parameters
-
- Returns
◆ init()
Init function to be called at the beginning of the Process::evolve
- Parameters
-
NOW check for Mix or Common envelope due to both stars filling the Roche Lobe
NOW analyse the RLO
Now SET the binary mix or comenv outcome
Reimplemented from Orbital_change_RL.
◆ init_common_variable()
| void Hurley_rl::init_common_variable |
( |
Star * |
donor_star, |
|
|
Star * |
accretor_star, |
|
|
Binstar * |
b |
|
) |
| |
|
protectedinherited |
Set the common variable used by DM, DE, DA assuming a given donor and accretor star
- Parameters
-
| donor_star | Pointer to the star that is filling the RL |
| accretor_star | Pointer to the star that is accreting mass |
| b | Pointer to the binary |
mt stuff - NOTICE, the interpretation of these two values depend on the mt_stability option if the option is from the qcrit family, mt_value=q and mt_tshold=qcrit, if the option is from the zeta family, mt_value=zeta_adiabatic and mt_tshold=zeta_RL
Accretion efficency
Times
◆ instance()
◆ Instance()
◆ is_colliding()
| bool Orbital_change_RL::is_colliding |
( |
| ) |
|
|
inlineinherited |
◆ is_giant_like()
| bool Orbital_change_RL::is_giant_like |
( |
int |
star_type_bse | ) |
|
|
inlineprotectedinherited |
Check if the star can be considered giant or giant-like in the BSE type classification
- Parameters
-
| star_type_bse | BSE star type |
- Returns
- true if the type is between 2 and 9 (inclusive) but not 7, false otherwise
◆ is_process_ongoing()
| bool Orbital_change_RL::is_process_ongoing |
( |
| ) |
|
|
inlineoverridevirtualinherited |
Other function that return useful information.
Check if the process is really ongoing, i.e. it is really changing properties.
- Returns
Reimplemented from Orbital_change.
Reimplemented in disabled_rl.
◆ is_swallowed()
| bool Orbital_change_RL::is_swallowed |
( |
int |
starID | ) |
|
|
inlineinherited |
◆ kelvin_helmotz_tscale()
| double Orbital_change_RL::kelvin_helmotz_tscale |
( |
Star * |
s | ) |
|
|
protectedvirtualinherited |
time scales
Time scales.
Kelvin-Helmholtz time scale from the modified classical expression (Eq. 61, Hurley+2002) Directly taken from SEVN1
- Parameters
-
- Returns
- Kelvin-Helmholtz time scale in yr
◆ name()
| std::string Hurley_mod_rl::name |
( |
| ) |
|
|
inlineoverridevirtual |
◆ nuclear_dmdt()
|
|
overrideprotectedvirtualinherited |
Rate of dynamic mass transfer from Eq. 60 in Hurley+2002
- Parameters
-
| s | pointer to the Star that is losing mass |
| b | pointer to the binary |
- Returns
- dm/dt
Reimplemented from Orbital_change_RL.
◆ outcome_collision() [1/3]
|
|
overrideprotectedvirtualinherited |
Set binary mix or common evelope to true depending on the stellar bse phases in case of collision at the pericenter. In that version the check is made in a symmetric way (both the donor and accretor have the same role)
- Parameters
-
| donor_star | Pointer to the star that is filling the RL |
| accretor_star | Pointer to the star that is accreting mass |
| b | Pointer to the binary |
- Returns
- EXIT_SUCCESS
Reimplemented from Orbital_change_RL.
◆ outcome_collision() [2/3]
|
|
inlineprotectedvirtualinherited |
Set binary mix or common evelope to true depending on the stellar bse phases in case of collision at the pericenter
- Parameters
-
- Returns
- EXIT_SUCCESS
◆ outcome_collision() [3/3]
|
|
overrideprotectedinherited |
Set binary mix or common evelope to true depending on the stellar bse phases in case of collision at the pericenter. In that version the check is made in a asymmetric way, the donor is the star filling the Roche Lobe.
- Parameters
-
- Returns
- EXIT_SUCCESS
◆ outcome_double_RLO()
|
|
overrideprotectedvirtualinherited |
Set binary mix or common evelope to true depending on the stellar bse phases in case of both stars are overfilling the RL
- Parameters
-
- Returns
- EXIT_SUCCESS
Reimplemented from Orbital_change_RL.
◆ Register()
| void Orbital_change_RL::Register |
( |
Orbital_change_RL * |
ptr, |
|
|
const std::string & |
_name |
|
) |
| |
|
inlineprotectedinherited |
◆ reset_DM()
| int Orbital_change_RL::reset_DM |
( |
| ) |
|
|
inlineprotectedinherited |
◆ reset_swallowed() [1/2]
| int Orbital_change_RL::reset_swallowed |
( |
| ) |
|
|
inlineprotectedinherited |
◆ reset_swallowed() [2/2]
| int Orbital_change_RL::reset_swallowed |
( |
int |
starID | ) |
|
|
inlineprotectedinherited |
◆ RLO() [1/2]
Actual RocheLobe Overflow process as reported in Hurely+2002 and BSE
- Parameters
-
| donor | Pointer to the star that is overflowing the RocheLobe |
| accretor | Pointer to the star that is accreting mass |
| b | Pointer to the binary |
- Note
- : Sometime the code does not strictly follows what reported in Hurley2002 paper, this because BSE code has been updated. The current implementation is directly ported from SEVN1 with a modification made by MM on the fraction of the mass accreted that is now tuned by the parameter rlo_f_mass_accreted.
MM: UNSTABLE ACCRETION ON DYNAMICAL TIMESCALE: CALL COMMON ENVELOPE OR MERGE
Case for WDs
Assume the energy released by ignition of triple=alpha is enough to destroy the star(s)
STABLE MASS TRANSFER ON THERMAL TIME SCALE OR NUCLEAR (take the minimum) (Hurley+2002, Sec. 2.6.2 and Sec. 2.6.3)
◆ RLO() [2/2]
|
|
inlineprotectedvirtualinherited |
Actual RocheLobe Overflow process
- Parameters
-
| donor | Pointer to the star that is overflowing the RocheLobe |
| accretor | Pointer to the star that is accreting mass |
| b | Pointer to the binary |
◆ set_comenv()
| void Orbital_change_RL::set_comenv |
( |
| ) |
|
|
inlineprotectedinherited |
◆ set_DA()
| void Hurley_rl::set_DA |
( |
double |
DA | ) |
|
|
inlineprotectedinherited |
◆ set_DE()
| void Hurley_rl::set_DE |
( |
double |
DE | ) |
|
|
inlineprotectedinherited |
◆ set_DM()
| int Orbital_change_RL::set_DM |
( |
double |
DM, |
|
|
int |
starID |
|
) |
| |
|
inlineprotectedinherited |
◆ set_is_colliding()
| void Orbital_change_RL::set_is_colliding |
( |
| ) |
|
|
inlineprotectedinherited |
◆ set_is_RLO_happening()
| void Orbital_change_RL::set_is_RLO_happening |
( |
| ) |
|
|
inlineprotectedinherited |
◆ set_mix()
| void Orbital_change_RL::set_mix |
( |
| ) |
|
|
inlineprotectedinherited |
◆ set_options() [1/2]
| virtual void Orbital_change::set_options |
( |
_UNUSED IO * |
_io | ) |
|
|
inlinevirtualinherited |
◆ set_options() [2/2]
| void Orbital_change_RL::set_options |
( |
IO * |
_io | ) |
|
|
inlineoverrideinherited |
◆ set_orbital()
Load current Mass transfer
First check if actual mass transfer is happening
dJ
Angmom lost from the system
Angmom from donor Orbit-spin coupling
Now estimate _DA as anew - a, where anew estimated from the updated AngMom
Reimplemented from Hurley_rl.
◆ set_swallowed()
| int Orbital_change_RL::set_swallowed |
( |
int |
starID | ) |
|
|
inlineprotectedinherited |
◆ speciale_evolve()
◆ thermal_dmdt()
|
|
overrideprotectedvirtualinherited |
Rate of dynamic mass transfer from Eq. 58 and Eq.59 in Hurley+2002
- Parameters
-
| s | pointer to the Star that is losing mass |
| b | pointer to the binary |
- Returns
- dm/dt
- Note
- the implementation is a bit different with respect to what is reported in Hurley+2002, but it comes directly from BSE
Reimplemented from Orbital_change_RL.
◆ thermal_nuclear_accreted_mass()
|
|
overrideprotectedvirtualinherited |
Handle the mass accreted on the companion on thermal or nuclear timescale It takes into account also special cases such as accretionon compact objects. The basic accreted mass is simply DM_accreted=fMT*DM_donor (fmt is the runtime parameter rlo_f_mass_accreted)
- Parameters
-
| DM_donor | Total amount of mass lost by the donor star [Msun] |
| donor | Pointer to the donor star |
| accretor | Pointer to the accretor star |
| b | Pointer to the binary |
- Returns
- Final amount of mass accreted on the accretor
Mass accretion
Reimplemented from Orbital_change_RL.
Reimplemented in Hurley_rl_bse.
◆ unset_comenv()
| void Orbital_change_RL::unset_comenv |
( |
| ) |
|
|
inlineprotectedinherited |
◆ unset_is_colliding()
| void Orbital_change_RL::unset_is_colliding |
( |
| ) |
|
|
inlineprotectedinherited |
◆ unset_is_RLO_happening()
| void Orbital_change_RL::unset_is_RLO_happening |
( |
| ) |
|
|
inlineprotectedinherited |
◆ unset_mix()
| void Orbital_change_RL::unset_mix |
( |
| ) |
|
|
inlineprotectedinherited |
◆ _DA
| double Hurley_rl::_DA = 0 |
|
protectedinherited |
◆ _DE
| double Hurley_rl::_DE = 0 |
|
protectedinherited |
◆ _DLspin
| double Hurley_rl::_DLspin[2] ={0.,0.} |
|
protectedinherited |
◆ _DM
| double Orbital_change_RL::_DM[2] ={0,0} |
|
privateinherited |
◆ _Hurley_mod_rl
◆ _Hurley_rl
◆ _is_colliding
| bool Orbital_change_RL::_is_colliding =false |
|
privateinherited |
◆ _is_RLO_happening
| bool Orbital_change_RL::_is_RLO_happening =false |
|
privateinherited |
◆ _is_swallowed
| bool Orbital_change_RL::_is_swallowed[2] ={false, false} |
|
privateinherited |
Array of bool corresponding to the ID of stars in binary. If true, the star has been swallowed through the RLO
◆ accretor
| Star* Hurley_rl::accretor |
|
protectedinherited |
◆ comenv
| bool Orbital_change_RL::comenv = false |
|
privateinherited |
◆ dmdt_edd
◆ donor
◆ dt
◆ f_MT
◆ frl1
◆ is_RL_in_core
| bool Hurley_rl::is_RL_in_core = false |
|
protectedinherited |
◆ mix
| bool Orbital_change_RL::mix = false |
|
privateinherited |
◆ mt_stability
◆ mt_tshold
◆ mt_value
mt stuff - NOTICE, the interpretation of these two values depend on the mt_stability option if the option is from the qcrit family, mt_value=q and mt_tshold=qcrit, if the option is from the zeta family, mt_value=zeta_adiabatic and mt_tshold=zeta_RL
◆ novae
| bool Orbital_change_RL::novae =false |
|
inherited |
◆ rl1
◆ star_type1
◆ star_type2
◆ super_eddington
| bool Orbital_change_RL::super_eddington =false |
|
inherited |
◆ svlog
◆ taum
◆ tdyn1
◆ tkh1
◆ tkh2
The documentation for this class was generated from the following files:
- /Users/giulianoiorio/Documents/sevn_public/src/binstar/Orbit.h
- /Users/giulianoiorio/Documents/sevn_public/src/binstar/Orbit.cpp
- /Users/giulianoiorio/Documents/sevn_public/include/static_main.h