![]() |
SEVN
|
#include <Circularisation.h>
Public Types | |
| typedef std::map< std::string, size_t > | _PrintMap |
Public Member Functions | |
| CircularisationPeriastronFull (_UNUSED IO *_io=nullptr, bool reg=true) | |
| std::string | name () override |
| CircularisationPeriastronFull * | instance () override |
| int | evolve (_UNUSED Binstar *binstar) override |
| int | special_evolve (_UNUSED Binstar *binstar) override |
| Circularisation * | Instance (_UNUSED IO *_io) override |
| double | get (const size_t &id) |
| double | get_var (const size_t &starID, const size_t &propID) |
| std::string & | get_msg () |
| void | restore () |
| int | modify_SemimajorDV_by_a_factor (double factor) |
| int | modify_EccentricityDV_by_a_factor (double factor) |
| bool | is_mass_transfer_happening () |
| virtual bool | is_process_ongoing () const |
| void | set_event (double code) |
| Events handling. More... | |
| double | get_event () |
| void | reset_event () |
| void | special_evolution_alarm_switch_on () |
| Three methods to handle the private member special_evolution_alarm. More... | |
| void | special_evolution_alarm_switch_off () |
| bool | is_special_evolution_alarm_on () const |
| virtual double | estimate_accreted_mass (_UNUSED double DM, _UNUSED Star *donor, _UNUSED Star *accretor, _UNUSED Binstar *binstar) const |
Static Public Attributes | |
| static CircularisationPeriastronFull | _circularisationperiastronfull |
| static CircularisationPeriastron | _circularisationperiastron |
| static size_t | ID |
| static Circularisation | _circularisation |
| static std::vector< Process * > | all |
| static _PrintMap | PrintMap |
Protected Member Functions | |
| bool | check_activation (Binstar *binstar) const override |
| Circularisation PeriastronFull. More... | |
| int | circularise (_UNUSED Binstar *binstar) override |
| Circularisation Periastron. More... | |
| virtual std::string | log_message_circ (Binstar *binstar, double a_new, double e_new) const |
| void | Register (Process *_p, size_t *id, const std::string &_name) |
| void | set (const size_t &id, const double &value) |
| void | set_var (const size_t &starID, const size_t &propID, const double &value) |
| void | set_msg (const std::string &str) |
| void | set_V_to_0 () |
Static Protected Member Functions | |
| static std::map< std::string, Circularisation * > & | GetStaticMap () |
| static std::vector< int > & | GetUsed () |
| static void | Register_specific (Circularisation *ptr) |
Protected Attributes | |
| bool | check_condition =false |
| Star * | donor = nullptr |
| Star * | accretor = nullptr |
| SevnLogging | svlog |
| Orbital_change * | orb_change = nullptr |
| std::uniform_real_distribution< double > | _uniform_real |
Private Attributes | |
| std::vector< double > | VB |
| std::vector< std::vector< double > > | VS |
| std::string | message |
| double | event_code =-1 |
| bool | special_evolution_alarm =false |
Static Private Attributes | |
| static size_t | size = 0 |
periastron_full option Circularisation at periastron with a weaker condition
The circularisation is same as in CircularisationPeriastron what change is the activation trigger in CircularisationPeriastron, a RLO has to be currently ongoing while here the circularisation is activated if a RLO could be triggered at the periastron assuming a circular orbit with a=r_periastron. In practice we check that the stellar radius is larger than the RL_periastron estimated as r_periastron/a * RL_eggleton.
|
inherited |
|
inline |
|
overrideprotectedvirtual |
Circularisation PeriastronFull.
Check the triggering condition of the circularisation Check if the RLO triggering conditions (R>RLO) are satisfied at the periastron. The RLO at periastron is estimated assuming a circular orbit with a=R_periastron
| binstar | Pointer to the binary |
Reimplemented from StandardCircularisation.
|
overrideprotectedvirtualinherited |
Circularisation Periastron.
Circularisation at periastron: anew=a_old(1-e_old)
| binstar | pointer to the binary |
Implements StandardCircularisation.
|
inlinevirtualinherited |
Public interface to allow the user to get information without actually evolving the systems. NOTICE: to be self-consistent the protected and private methods (such DA and DE should use these methods) when changing the properties of stars and binaries. This function should be an interface for the user to return the amount of mass accreted on the accretor given the binary, the donor and the available amount of mass DM. NOTICE: internally the accrete mass should use this method to be self-consistent
| DM | amount of mass available to be accreted in Msun. |
| donor | Pointer to the Star that is donating the mass |
| accretor | Pointer to the star that is receiving the mass |
| binstar | Pointer to the binary system hosting the donor and the accretore |
Reimplemented in WindaccretionHurley.
The standard evolve just check if the circularisation conditions have been reached and set a couple of flag.
| binstar | Pointer to the binary |
Reimplemented from Process.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlinestaticprotectedinherited |
|
inlinestaticprotectedinherited |
|
inlineoverridevirtual |
Reimplemented from CircularisationPeriastron.
|
overridevirtualinherited |
Reimplemented from Process.
|
inlineinherited |
Check if this process is changing the mass
|
inlinevirtualinherited |
Check if the current process is ongoing
Reimplemented in Kollision, Hardening, Windaccretion, WindaccretionHurley, and WindaccretionDisabled.
|
inlineinherited |
|
protectedvirtualinherited |
Standard log-message for circularisation. It just reportes the old and new orbital parameters
| binstar | Pointer to the binary |
| a_new | semimajor axis after circularisation |
| e_new | eccentricity a |
|
inlineinherited |
Correct the VB cell containing the Eccentricity variation
| factor | correction factor the new DE will be DE*factor. |
|
inlineinherited |
Correct the VB cell containing the Semimajor variation
| factor | correction factor the new DA will be DA*factor. |
|
inlineoverridevirtual |
Reimplemented from CircularisationPeriastron.
|
inlineprotectedinherited |
|
inlinestaticprotectedinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineprotectedinherited |
|
inlineinherited |
Events handling.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineinherited |
Three methods to handle the private member special_evolution_alarm.
Special evolve, just call circularise and disable a and e check in the adaptive timestep
| binstar | Pointer to the binary |
Reimplemented from Process.
|
staticinherited |
|
staticinherited |
|
static |
|
protectedinherited |
|
protectedinherited |
|
staticinherited |
|
protectedinherited |
auxiliary variable used to check when the circularisation has to be activated
|
protectedinherited |
|
privateinherited |
|
staticinherited |
|
privateinherited |
|
protectedinherited |
|
staticinherited |
|
staticprivateinherited |
Instruction for adding new property PROC 1- Add the size_t PROC::ID 2- Initialise the static (fake) instance PROC PROC::_proc. NB: take care of the order of initialisation. The processes will be evolved exactly in the same order in which they are initialised here Define: @size: total number of instances of Process and derived classes (both fake and real). @all: vector containing all the (pointers) to the processes. @PrintMap: map containing the pair (process_name, process_id) for output purpose. Note all and PrintMap are filled during the instantiation of the fake Processes (see below)
|
privateinherited |
Member used to check if a special evolution is required
|
protectedinherited |
|
privateinherited |
values of the properties of the binary system (e.g. processes change eccentricity, semimajor...)
|
privateinherited |
variations of the single star parameters due to binary stellar evolution processes (e.g. mass, radius...)