71 Binstar(
IO *_io, std::vector<std::string> ¶ms,
size_t &_ID,
unsigned long _rseed=0){
142 inline double getp(
const size_t &
id)
const {
return property[id]->get(
this);}
143 inline double getp_0(
const size_t &
id)
const {
return property[id]->get_0(
this);}
166 if (
star[0]->isempty and !
star[1]->isempty)
168 else if (
star[1]->isempty)
174 else if (
star[0]->isremnant and
star[1]->isremnant)
207 double Radx(
size_t starID);
340 for (
int i=0; i<2; i++){
458 svlog_tmp.
critical(
"Star breaktrigger check failed (Maybe Worldtimes are not synchronised?)",__FILE__,__LINE__);
510 bool RLOB_triggered=
false;
511 bool Merger_triggered=
false;
512 bool Collision_triggered=
false;
513 bool CE_triggered=
false;
516 for (
const auto& proc :
process){
517 double this_event=proc->get_event();
518 if (this_event==EventsList::RLOBegin) RLOB_triggered=
true;
519 else if (this_event==EventsList::Merger) Merger_triggered=
true;
520 else if (this_event==EventsList::Collision) Collision_triggered=
true;
521 else if (this_event==EventsList::CE) CE_triggered=
true;
522 else if (this_event==EventsList::CE_Merger){CE_triggered=
true;Merger_triggered=
true;}
523 if (this_event>event){
529 if (Collision_triggered and CE_triggered and Merger_triggered)
event=EventsList::Collision_CE_Merger;
530 else if (Collision_triggered and CE_triggered)
event=EventsList::Collision_CE;
531 else if (Collision_triggered and Merger_triggered)
event=EventsList::Collision_Merger;
532 else if (RLOB_triggered and CE_triggered and Merger_triggered)
event=EventsList::RLOB_CE_Merger;
533 else if (RLOB_triggered and CE_triggered)
event=EventsList::RLOB_CE;
534 else if (RLOB_triggered and Merger_triggered)
event=EventsList::RLOB_Merger;
535 else if (CE_triggered and Merger_triggered)
event=EventsList::CE_Merger;
579 if (include_in_output)
599 void init(
const std::vector<std::string> ¶ms);
607 inline std::vector<double>
get_Z() {
619 inline void set_tf(
const double a,
const char* file,
const int line) {
621 if(std::isnan(a) || std::isinf(a))
635 inline void set_dtout(
const double a,
const char* file,
const int line) {
637 if(std::isnan(a) || std::isinf(a))
689 for (
size_t i=0; i<2; i++){
716 prop->set_broken(
this);
793 std::size_t mass_limiting_property_id);
846 for (
auto &prop :
property) prop->restore();
863 void call_stars_constructor(std::vector<std::string> ¶ms_star1, std::vector<std::string> ¶ms_star2);
874 void init_stars(
const std::vector<std::string> ¶ms);
907 a_inid = utilities::s2n<double>(a_ini, __FILE__, __LINE__);
910 svlog.
critical(
"Impossible to transform the given initial Semimajor axis to a number ("+
922 if (ecc_ini<0 or ecc_ini>=1){
937 ecc_inid = utilities::s2n<double>(ecc_ini, __FILE__, __LINE__);
940 svlog.
critical(
"Impossible to transform the given initial Eccentricity to a number ("+
959 if (inchoice==InputBinaryOption::_new){
963 else if (inchoice==InputBinaryOption::_legacy){
998 inline void set_rseed(
const unsigned long a,
const char* file,
const int line){
1000 if(std::isnan(a) || std::isinf(a))
1003 svlog.
critical(
"Rseed cannot be negative or 0", file, line);
1018 par_expected_size+=1;
1019 if ((
int)params.size()!=par_expected_size){
1020 std::string par_exp=
utilities::n2s(par_expected_size, __FILE__, __LINE__);
1021 std::string inparam_size=
utilities::n2s(params.size(), __FILE__, __LINE__);
1023 svlog.
critical(
"Number of Binary params needs to be " +par_exp+
", it is instead " + inparam_size +
" (ID_bin: " + this_ID +
"). Maybe you are using inputs containing the ran"
1024 "dom seed, but rseed parameter is false." , __FILE__, __LINE__);
static size_t ID
Definition: BinaryProperty.h:579
static size_t ID
Definition: BinaryProperty.h:498
static size_t ID
Definition: BinaryProperty.h:466
static std::vector< BinaryProperty * > all
Definition: BinaryProperty.h:34
void update_derived_properties_star(Star *s)
Definition: binstar.cpp:440
bool print_all_steps
Definition: binstar.h:43
Process * getprocess(const size_t &id)
Definition: binstar.h:147
Star * get_more_evolved_star()
Definition: binstar.h:193
void print_failed(bool include_in_output=false)
Definition: binstar.h:576
bool process_alarm_any() const
Definition: binstar.cpp:1021
bool comenv
Definition: binstar.h:37
void check_init_param(const std::vector< std::string > ¶ms)
Definition: binstar.h:1012
void set_onesurvived()
Definition: binstar.h:429
void set_initial_eccentricity(double ecc_ini)
Definition: binstar.h:921
void recordstate_binary()
Definition: binstar.h:398
void print_to_log(std::string &message)
Definition: binstar.h:588
void set_empty()
Definition: binstar.h:428
void init(const std::vector< std::string > ¶ms)
Definition: binstar.cpp:513
void synchronise_dt_star()
Definition: binstar.cpp:230
void check_AngMomSpin_after_binary_evolution()
Definition: binstar.cpp:984
vector< BinaryProperty * > property
Definition: binstar.h:832
unsigned long get_rseed()
Definition: binstar.h:215
double CE_E_tomatch
Definition: binstar.h:59
std::vector< std::vector< double > > allstates
Definition: binstar.h:738
bool notprint()
Definition: binstar.h:550
void default_destructor()
Definition: binstar.cpp:1047
void resynch(const double &dt)
Definition: binstar.h:844
double SetXspinBavera(const double, const double) const
void set_initial_semimajor(double a_ini)
Definition: binstar.h:891
double tf
MEMBERS///.
Definition: binstar.h:734
double last_Timestep
Definition: binstar.h:39
void set_dtout(const double a, const char *file, const int line)
Definition: binstar.h:635
bool broken
MEMBERS///.
Definition: binstar.h:30
IO * io
Definition: binstar.h:834
SevnLogging svlog
Definition: binstar.h:825
Star * star[2]
Definition: binstar.h:833
std::string get_name() const
Definition: binstar.h:144
void reset_all_processes_alarms()
Definition: binstar.h:491
void check_and_sync_sse()
Definition: binstar.cpp:254
bool print_rlo
Definition: binstar.h:47
bool disable_OmegaRem_NS_check
Definition: binstar.h:54
bool check_and_set_broken()
Definition: binstar.h:712
bool get_svpar_bool(std::string name)
Definition: binstar.h:214
double get_tf() const
Definition: binstar.h:654
bool disable_e_check
Definition: binstar.h:51
size_t get_ID() const
Definition: binstar.h:145
bool force_tiny_dt
Definition: binstar.h:56
double Radx(size_t starID)
Definition: binstar.cpp:1003
unsigned long rseed
Definition: binstar.h:838
unsigned int get_id_more_evolved_star() const
Definition: binstar.h:164
void check_accretion_on_compact()
Definition: binstar.h:683
bool onesurvived
Definition: binstar.h:31
bool break_at_broken
Definition: binstar.h:34
bool empty
Definition: binstar.h:32
std::string name
Definition: binstar.h:837
bool breaktrigger() const
Definition: binstar.h:444
std::vector< double > state
Definition: binstar.h:736
double get_svpar_num(std::string name)
Get the value of the parameters store in the svpar class in io.
Definition: binstar.h:212
virtual void evolve()
Definition: binstar.h:222
bool is_process_ongoing(const size_t &id) const
Definition: binstar.h:471
void check_if_applied_bavera_xspin()
bool isoutputtime()
Outputs.
Definition: binstar.cpp:1030
void print()
Definition: binstar.h:557
~Binstar()
DENSTRUCTORS.
Definition: binstar.cpp:1043
std::vector< double > get_zams()
Definition: binstar.h:601
void set_break_at_broken(std::string &tf)
Definition: binstar.h:988
void check_nakedHe_or_nakedCO_after_binary_evolution()
CHECKS AND CORRECT.
Definition: binstar.cpp:865
void reset_events()
Handle events.
Definition: binstar.h:497
void call_stars_constructor(std::vector< std::string > ¶ms_star1, std::vector< std::string > ¶ms_star2)
Definition: binstar.cpp:589
bool disable_a_check
Definition: binstar.h:52
bool repeatstep
Definition: binstar.h:35
void set_rseed(const unsigned long a, const char *file, const int line)
Definition: binstar.h:998
bool evolution_step_completed
Definition: binstar.h:62
bool print_per_phase
Definition: binstar.h:44
void check_and_sync_bse()
Definition: binstar.cpp:286
double get_dtout()
Definition: binstar.h:657
void init_stars_legacy(const std::vector< std::string > ¶ms)
Definition: binstar.cpp:632
std::vector< std::string > init_params
Definition: binstar.h:836
void set_tf(const double a, const char *file, const int line)
Definition: binstar.h:619
double getp_0(const size_t &id) const
Definition: binstar.h:143
bool mix
Definition: binstar.h:36
void limit_and_correct_mass_transfer_for_donor_from_binary(Star *donor, Star *accretor, std::size_t mass_limiting_property_id)
Definition: binstar.cpp:716
vector< Process * > process
MEMBERS///.
Definition: binstar.h:831
const std::vector< Process * > & getprocesses() const
Definition: binstar.h:148
std::vector< double > get_Z()
Definition: binstar.h:607
double dtout
Definition: binstar.h:735
bool printall()
Definition: binstar.h:549
bool check_and_set_QHE(Star *accretor)
Definition: binstar.cpp:391
Binstar()
Definition: binstar.h:68
bool print_only_end
Definition: binstar.h:45
void set_initial_semimajor(std::string a_ini)
Definition: binstar.h:903
double get_event_from_processes()
Definition: binstar.h:508
size_t ID
Definition: binstar.h:835
Binstar(IO *_io, std::vector< std::string > ¶ms, size_t &_ID, unsigned long _rseed=0)
Definition: binstar.h:71
void init_stars(const std::vector< std::string > ¶ms)
Definition: binstar.cpp:612
std::vector< double > combinedstate
Definition: binstar.h:737
void recordstate_w_timeupdate()
Definition: binstar.h:378
bool break_at_remnant
Definition: binstar.h:33
void set_initial_eccentricity(std::string ecc_ini)
Definition: binstar.h:933
bool is_swallowed[2]
Definition: binstar.h:38
bool disable_stellar_rotation_check
Definition: binstar.h:55
std::string get_id_name() const
Definition: binstar.h:665
double get_last_Timestep() const
Definition: binstar.h:154
void reset_evolution_flags()
RESET.
Definition: binstar.h:820
double getp(const size_t &id) const
METHODS///.
Definition: binstar.h:142
std::string get_svpar_str(std::string name)
Definition: binstar.h:213
const std::vector< double > & getstate()
Definition: binstar.h:149
void check_and_set_bavera_xspin()
Definition: binstar.cpp:365
void recordstate()
Definition: binstar.h:390
void evolution_step_done()
Definition: binstar.h:646
void evolution_guard(const char *file_input=nullptr, int line_input=-1)
Definition: binstar.h:650
utilities::bse_evolution evolve_binary()
METHODS///.
Definition: binstar.cpp:21
bool processes_alarm(const size_t &id) const
Handle processes alarms.
Definition: binstar.h:479
void init_other_params()
Definition: binstar.cpp:655
bool disable_DM_check
Definition: binstar.h:53
Star * getstar(const size_t &id)
Definition: binstar.h:146
void set_broken()
Definition: binstar.h:422
bool print_events
Definition: binstar.h:46
void init_binary_properties(const std::vector< std::string > ¶ms)
Definition: binstar.h:953
static size_t ID
Definition: BinaryProperty.h:110
void print_evolved_summary(const std::string &_name, const unsigned long &_rseed, const size_t &_ID)
Definition: IO.cpp:406
void print_formatted_output(std::vector< std::vector< double > > &printmatrix, const std::string &_name, const unsigned long &_rseed, const size_t &_ID, const bool binaryprint=false)
Definition: IO.h:207
std::vector< std::string > printcolumns_binary
Definition: IO.h:168
void print_log(std::string filename="logfile.dat")
Definition: IO.cpp:653
void print_failed_summary(const std::string &_name, const unsigned long &_rseed, const size_t &_ID)
Definition: IO.cpp:410
SEVNpar svpar
Definition: IO.h:198
std::vector< size_t > printIDs_binary
Definition: IO.h:172
void log_put(std::string &loginfo)
Definition: IO.cpp:668
bool rseed_provided()
Parameters call.
Definition: IO.h:195
std::string binput_mode
Definition: IO.h:179
static size_t ID
Definition: property.h:785
static size_t ID
Definition: property.h:890
Definition: Processes.h:43
static std::vector< Process * > all
Definition: Processes.h:59
static size_t ID
Definition: property.h:1512
static size_t ID
Definition: Processes.h:249
double get_num(std::string name)
Definition: params.h:124
bool get_bool(std::string name)
Definition: params.h:158
std::string get_str(std::string name)
Definition: params.h:142
static size_t ID
Definition: BinaryProperty.h:148
size_t get_ID() const
Definition: star.h:989
void explode_as_SNI()
Definition: star.cpp:1228
double plife() const
Definition: star.h:1413
void recordstate()
Definition: star.h:526
void set_MCO_max()
Definition: star.h:135
bool amiremnant() const
Definition: star.h:671
void set_empty()
Definition: star.h:1013
double get_MCO_max() const
Definition: star.h:902
double get_zams() const
Definition: star.h:885
utilities::sn_explosion check_remnant_mass_limits()
Definition: star.h:1553
double get_Z() const
Definition: star.h:886
void set_MHE_min()
Definition: star.h:137
bool is_exploding_as_SNI() const
Definition: star.cpp:1239
double get_MHE_min() const
Definition: star.h:903
const std::vector< double > & getstate()
Definition: star.h:920
void recordstate_w_timeupdate()
Definition: star.h:550
utilities::evolution evolve()
Definition: star.cpp:1075
utilities::jump_convergence find_new_track(bool is_merger=false)
CHANGE OF TRACKS METHODS.
Definition: star.cpp:17
double getp(const size_t &id) const
Definition: star.h:924
static size_t ID
Definition: property.h:488
static size_t ID
Definition: property.h:429
void debug(std::string errstate, const char *file_input=nullptr, int line_input=-1) const
Definition: sevnlog.cpp:194
void critical(std::string errstate, const char *file_input=nullptr, int line_input=-1) const
Definition: sevnlog.cpp:85
void pdebug() const
Variadic prints.
Definition: sevnlog.h:191
Definition: lookup_and_phases.h:17
@ TerminalCoreHeBurning
Definition: lookup_and_phases.h:48
const INPUTMAPBIN inputmapbin
Definition: lookup_and_phases.cpp:112
@ SNIa
Definition: lookup_and_phases.h:179
bool areEqual(double x, double y)
Definition: utilities.cpp:141
void wait()
Definition: utilities.h:244
bool bse_evolution
Definition: utilities.h:125
const std::string n2s(T val, const char *file_input, const int line_input, const unsigned int precision=6)
Definition: utilities.h:144
void swap_stars(Star *&s1, Star *&s2)
Definition: utilities.h:617
unsigned int sn_explosion
Definition: utilities.h:114
constexpr double NULL_DOUBLE
Definition: utilities.h:89