84#ifndef SEVN_MTSTABILITY_H
85#define SEVN_MTSTABILITY_H
94#define set_prop(star,prop,old) old ? star->getp_0(prop::ID) : star->getp(prop::ID)
107 virtual inline std::string
name() = 0;
154 static std::map<std::string, MTstability *> _locmap;
159 static std::vector<int> _used;
175 inline std::string
name()
override {
return "stable"; }
225 inline std::string
name()
override {
return "unstable"; }
302 virtual double q(
Star *donor,
Star *accretor)
const;
327 inline std::string
name()
override {
return "qcrit_hurley"; }
370 inline std::string
name()
override {
return "qcrit_hurley_webbink"; }
407 inline std::string
name()
override {
return "qcrit_hurley_webbink_shao"; }
447 inline std::string
name()
override {
return "qcrit_cosmic_neijssel"; }
485 inline std::string
name()
override {
return "qcrit_cosmic_claeys"; }
518 inline std::string
name()
override {
return "qcrit_startrack"; }
551 inline std::string
name()
override {
return "qcrit_radiative_stable"; }
583 inline std::string
name()
override {
return "qcrit_Hradiative_stable"; }
#define _UNUSED
Definition: BinaryProperty.h:20
Definition: MTstability.h:271
virtual double qcrit(Star *donor, Star *accretor) const =0
virtual double q(Star *donor, Star *accretor) const
Definition: MTstability.cpp:20
double get(Star *donor, Star *accretor, _UNUSED Binstar *binary) const override
Definition: MTstability.h:292
double get_tshold(Star *donor, Star *accretor, _UNUSED Binstar *binary) const override
Definition: MTstability.h:284
bool mt_unstable(Star *donor, Star *accretor, _UNUSED Binstar *binary) const override
Definition: MTstability.cpp:16
Definition: MTstability.h:166
double get_tshold(_UNUSED Star *donor, _UNUSED Star *accretor, _UNUSED Binstar *binary) const override
Definition: MTstability.h:195
double get(_UNUSED Star *donor, _UNUSED Star *accretor, _UNUSED Binstar *binary) const override
Definition: MTstability.h:206
MT_Stable * instance() override
Definition: MTstability.h:210
std::string name() override
Definition: MTstability.h:175
bool mt_unstable(_UNUSED Star *donor, _UNUSED Star *accretor, _UNUSED Binstar *binary) const override
Definition: MTstability.h:185
MT_Stable(bool reg=true)
Definition: MTstability.h:169
static MT_Stable _mt_stable
Definition: MTstability.h:208
Definition: MTstability.h:216
double get_tshold(_UNUSED Star *donor, _UNUSED Star *accretor, _UNUSED Binstar *binary) const override
Definition: MTstability.h:244
std::string name() override
Definition: MTstability.h:225
MT_UnStable(bool reg=true)
Definition: MTstability.h:219
MT_UnStable * instance() override
Definition: MTstability.h:259
bool mt_unstable(_UNUSED Star *donor, _UNUSED Star *accretor, _UNUSED Binstar *binary) const override
Definition: MTstability.h:234
double get(_UNUSED Star *donor, _UNUSED Star *accretor, _UNUSED Binstar *binary) const override
Definition: MTstability.h:255
static MT_UnStable _mt_unstable
Definition: MTstability.h:257
Definition: MTstability.h:603
virtual double q(Star *donor, Star *accretor) const
virtual double qcrit(Star *donor, Star *accretor) const =0
virtual double get_tshold(Star *donor, Star *accretor, _UNUSED Binstar *binary) const
Definition: MTstability.h:616
virtual double get(Star *donor, Star *accretor, _UNUSED Binstar *binary) const
Definition: MTstability.h:624
bool mt_unstable(Star *donor, Star *accretor, _UNUSED Binstar *binary) const override
Definition: MTstability.h:104
static MTstability * Instance(std::string const &name)
Definition: MTstability.cpp:10
static std::vector< int > & GetUsed()
Definition: MTstability.h:158
virtual std::string name()=0
SevnLogging svlog
Definition: MTstability.h:149
void Register(MTstability *ptr, const std::string &_name)
Definition: MTstability.h:143
virtual bool mt_unstable(Star *donor, Star *accretor, _UNUSED Binstar *binary) const =0
virtual MTstability * instance()
Definition: MTstability.h:109
virtual double get(_UNUSED Star *donor, _UNUSED Star *accretor, _UNUSED Binstar *binary) const =0
virtual ~MTstability()
Definition: MTstability.h:120
virtual double get_tshold(_UNUSED Star *donor, _UNUSED Star *accretor, _UNUSED Binstar *binary) const =0
static std::map< std::string, MTstability * > & GetStaticMap()
Definition: MTstability.h:153
Definition: MTstability.h:475
Qcrit_COSMIC_Claeys(bool reg=true)
Definition: MTstability.h:479
static Qcrit_COSMIC_Claeys _qcrit_cosmic_claeys
Definition: MTstability.h:487
double qcrit(Star *donor, Star *accretor) const override
Definition: MTstability.cpp:163
std::string name() override
Definition: MTstability.h:485
Qcrit_COSMIC_Claeys * instance() override
Definition: MTstability.h:489
Definition: MTstability.h:437
double qcrit(Star *donor, Star *accretor) const override
Definition: MTstability.cpp:127
Qcrit_COSMIC_Neijssel(bool reg=true)
Definition: MTstability.h:441
std::string name() override
Definition: MTstability.h:447
static Qcrit_COSMIC_Neijssel _qcrit_cosmic_neijssel
Definition: MTstability.h:449
Qcrit_COSMIC_Neijssel * instance() override
Definition: MTstability.h:451
Definition: MTstability.h:574
std::string name() override
Definition: MTstability.h:583
double qcrit(Star *donor, Star *accretor) const override
Definition: MTstability.cpp:241
Qcrit_HRadiative_Stable(bool reg=true)
Definition: MTstability.h:577
static Qcrit_HRadiative_Stable _qcrit_hradiative_stable
Definition: MTstability.h:585
Qcrit_HRadiative_Stable * instance() override
Definition: MTstability.h:587
Definition: MTstability.h:397
std::string name() override
Definition: MTstability.h:407
double qcrit(Star *donor, Star *accretor) const override
Definition: MTstability.cpp:83
Qcrit_Hurley_Webbink_Shao * instance() override
Definition: MTstability.h:411
Qcrit_Hurley_Webbink_Shao(bool reg=true)
Definition: MTstability.h:401
static Qcrit_Hurley_Webbink_Shao _qcrit_hurley_webbink_shao
Definition: MTstability.h:409
Definition: MTstability.h:360
static Qcrit_Hurley_Webbink _qcrit_hurley_webbink
Definition: MTstability.h:372
Qcrit_Hurley_Webbink * instance() override
Definition: MTstability.h:374
std::string name() override
Definition: MTstability.h:370
double qcrit_giant(Star *donor, _UNUSED Star *accretor) const override
Definition: MTstability.cpp:76
Qcrit_Hurley_Webbink(bool reg=true)
Definition: MTstability.h:364
Definition: MTstability.h:317
virtual double qcrit_giant(Star *donor, _UNUSED Star *accretor) const
Definition: MTstability.cpp:59
Qcrit_Hurley * instance() override
Definition: MTstability.h:331
Qcrit_Hurley(bool reg=true)
Definition: MTstability.h:321
double qcrit(Star *donor, Star *accretor) const override
Definition: MTstability.cpp:28
std::string name() override
Definition: MTstability.h:327
static Qcrit_Hurley _qcrit_hurley
Definition: MTstability.h:329
Definition: MTstability.h:542
double qcrit(Star *donor, Star *accretor) const override
Definition: MTstability.cpp:212
std::string name() override
Definition: MTstability.h:551
Qcrit_Radiative_Stable(bool reg=true)
Definition: MTstability.h:545
Qcrit_Radiative_Stable * instance() override
Definition: MTstability.h:555
static Qcrit_Radiative_Stable _qcrit_radiative_stable
Definition: MTstability.h:553
Definition: MTstability.h:508
std::string name() override
Definition: MTstability.h:518
Qcrit_StarTrack * instance() override
Definition: MTstability.h:522
Qcrit_StarTrack(bool reg=true)
Definition: MTstability.h:512
double qcrit(Star *donor, _UNUSED Star *accretor) const override
Definition: MTstability.cpp:196
static Qcrit_StarTrack _qcrit_startrack
Definition: MTstability.h:520
void critical(std::string errstate, const char *file_input=nullptr, int line_input=-1) const
Definition: sevnlog.cpp:85