20#define _UNUSED __attribute__ ((unused))
34 static std::vector<BinaryProperty*>
all;
39 virtual inline std::string
name(){
return "Binary property (generic)";}
40 virtual inline std::string
units() {
return "UNKNOWN";}
42 virtual inline int getID()
const {
return -1;}
91 return (std::isnan(val) || std::isinf(val));
94 virtual void set(
const double &a) {
V = a;}
95 virtual void set_0(
const double &a) {
V0 = a;}
117 inline std::string
name()
override {
return "Eccentricity"; }
118 inline std::string
units()
override {
return "";}
119 inline int getID()
const override {
return (
int)
ID;}
123 if (par<0 or par>=1){
124 svlog.
critical(
"Error in eccentricity initialisation, it should be between 0 and 1(excluded), you use e="
155 inline std::string
name()
override {
return "Semimajor"; }
156 inline std::string
units()
override {
return "Rsun";}
158 inline int getID()
const override {
return (
int)
ID;}
163 svlog.
critical(
"Error in Semimajor initialisation, it should be larger than 0, you use Semimajor="
200 svlog.
critical(
"Cannot initialise the derived Binary property"
219 inline std::string
name()
override {
return "dSemimajordt"; }
220 inline std::string
units()
override {
return "Rsun/Myr";}
227 return (
new dadt(
false));
230 inline int getID()
const override {
return (
int)
ID;}
245 inline std::string
name()
override {
return "dEccentricitydt"; }
246 inline std::string
units()
override {
return "/Myr";}
253 return (
new dedt(
false));
257 inline int getID()
const override {
return (
int)
ID;}
271 inline std::string
name()
override {
return "AngMom"; }
272 inline std::string
units()
override {
return "MsunRsun^2";}
278 return (
new AngMom(
false));
282 inline int getID()
const override {
return (
int)
ID;}
296 return (M1*M2)*std::sqrt( (a*(1-e*e)*G)/(M1+M2));
312 inline std::string
name()
override {
return "Period"; }
313 inline std::string
units()
override {
return "yr";}
319 return (
new Period(
false));
323 inline int getID()
const override {
return (
int)
ID;}
334 return 2.0*M_PI*std::sqrt( (a*a*a) / (
utilities::G * (Mtot)) );
351 return (
new GWtime(
false));
355 inline std::string
name()
override {
return "GWtime"; }
356 inline std::string
units()
override {
return "Myr";}
362 inline int getID()
const override {
return (
int)
ID;}
381 inline std::string
name()
override {
return "_RL";}
382 inline std::string
units()
override {
return "Rsun";}
408 return (
new RL0(
false));
411 inline std::string
name()
override {
return "RL0";}
415 inline int getID()
const override {
return (
int)
ID;}
432 return (
new RL1(
false));
435 inline std::string
name()
override {
return "RL1";}
439 inline int getID()
const override {
return (
int)
ID;}
463 inline std::string
name()
override {
return "BWorldtime"; }
464 inline std::string
units()
override {
return "Myr";}
469 inline int getID()
const override {
return (
int)
ID;}
495 inline std::string
name()
override {
return "BTimestep"; }
496 inline std::string
units()
override {
return "Myr";}
533 inline int getID()
const override {
return (
int)
ID;}
535 void resynch(
const double &dt,
bool set0)
override {
576 inline std::string
name()
override {
return "BEvent"; }
577 inline std::string
units()
override {
return "";}
583 return (
new BEvent(
false));
604 inline std::string
name()
override {
return "Generic JIT Property"; }
635 void set(
const double &a)
override {
#define _UNUSED
Definition: BinaryProperty.h:20
Definition: BinaryProperty.h:373
_RL * Instance() override
Definition: BinaryProperty.h:379
_RL()
Definition: BinaryProperty.h:377
std::string units() override
Definition: BinaryProperty.h:382
int evolve(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.h:394
std::string name() override
Definition: BinaryProperty.h:381
virtual double RL_Eg(Star *primary, Star *secondary, Binstar *b)
Definition: BinaryProperty.cpp:748
Definition: BinaryProperty.h:261
std::string name() override
Definition: BinaryProperty.h:271
AngMom * Instance() override
Definition: BinaryProperty.h:277
int getID() const override
Definition: BinaryProperty.h:282
double AngMom_from_orbit(double a, double e, double M1, double M2)
Definition: BinaryProperty.h:294
static size_t ID
Definition: BinaryProperty.h:274
static AngMom _angmom
Definition: BinaryProperty.h:275
AngMom(bool reg=true)
Definition: BinaryProperty.h:265
int evolve(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.cpp:680
std::string units() override
Definition: BinaryProperty.h:272
Definition: BinaryProperty.h:565
BEvent(bool reg=true)
Definition: BinaryProperty.h:569
int evolve(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.h:586
std::string units() override
Definition: BinaryProperty.h:577
static BEvent _bevent
Definition: BinaryProperty.h:580
int special_evolve(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.cpp:782
BEvent * Instance() override
Definition: BinaryProperty.h:582
std::string name() override
Definition: BinaryProperty.h:576
static size_t ID
Definition: BinaryProperty.h:579
Definition: BinaryProperty.h:600
void restore() override
Definition: BinaryProperty.h:621
int evolve(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.h:607
unsigned int evolve_number
Definition: BinaryProperty.h:650
virtual void specialised_set(_UNUSED const Binstar *b=nullptr)
Definition: BinaryProperty.h:627
bool new_estimate_needed()
Definition: BinaryProperty.h:631
double get(_UNUSED const Binstar *b=nullptr) override
Definition: BinaryProperty.h:613
std::string name() override
Definition: BinaryProperty.h:604
unsigned int last_evolve_number
Definition: BinaryProperty.h:650
void set(const double &a) override
Definition: BinaryProperty.h:635
Definition: BinaryProperty.h:479
bool check_repeat_eccentricity(_UNUSED Binstar *binstar, const double &m0, const double &m, const double &derivative)
Definition: BinaryProperty.cpp:444
BTimestep(bool reg=true)
Definition: BinaryProperty.h:482
bool check_repeat_OmegaRem_NS(_UNUSED Binstar *binstar)
Definition: BinaryProperty.cpp:507
BTimestep * Instance() override
Definition: BinaryProperty.h:491
int set_broken(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.h:540
int getID() const override
Definition: BinaryProperty.h:533
int evolve(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.cpp:114
double tiny_dt(Binstar *binstar)
Definition: BinaryProperty.cpp:650
void check_dt_limits(double &dt, Binstar *binstar)
Definition: BinaryProperty.cpp:640
double max_timestep(_UNUSED Binstar *s)
Definition: BinaryProperty.cpp:385
static BTimestep _btimestep
Definition: BinaryProperty.h:499
std::string units() override
Definition: BinaryProperty.h:496
std::string name() override
Definition: BinaryProperty.h:495
bool check_repeat_DM_RLO(_UNUSED Binstar *binstar)
Definition: BinaryProperty.cpp:463
bool check_repeat(_UNUSED Binstar *binstar, const double &V0, const double &V, const double &derivative)
Definition: BinaryProperty.cpp:393
bool check_repeat_stellar_rotation(_UNUSED Binstar *binstar)
Definition: BinaryProperty.cpp:563
int special_evolve(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.h:545
static size_t ID
Definition: BinaryProperty.h:498
void resynch(const double &dt, bool set0) override
Definition: BinaryProperty.h:535
Definition: BinaryProperty.h:448
static size_t ID
Definition: BinaryProperty.h:466
BWorldtime * Instance() override
Definition: BinaryProperty.h:459
int special_evolve(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.cpp:672
BWorldtime(bool reg=true)
Definition: BinaryProperty.h:451
std::string units() override
Definition: BinaryProperty.h:464
std::string name() override
Definition: BinaryProperty.h:463
static BWorldtime _bworldtime
Definition: BinaryProperty.h:467
int set_broken(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.h:475
int getID() const override
Definition: BinaryProperty.h:469
int evolve(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.h:471
Definition: BinaryProperty.h:25
virtual void set(const double &a)
Definition: BinaryProperty.h:94
std::uniform_real_distribution< double > _uniform_real
Definition: BinaryProperty.h:88
BinaryProperty()
Definition: BinaryProperty.h:28
virtual int set_broken(_UNUSED Binstar *binstar)
Definition: BinaryProperty.h:66
static _PrintMap PrintMap
Definition: BinaryProperty.h:36
static std::vector< BinaryProperty * > all
Definition: BinaryProperty.h:34
void Register(BinaryProperty *_p, size_t *id, const std::string &_name)
Definition: BinaryProperty.h:81
bool isbad(const double &val)
Definition: BinaryProperty.h:90
virtual std::string units()
Definition: BinaryProperty.h:40
virtual void check_boundaries(_UNUSED double *val, _UNUSED Binstar *binstar)
Definition: BinaryProperty.h:46
double get_0(_UNUSED const Binstar *b=nullptr)
Definition: BinaryProperty.h:72
double V
Definition: BinaryProperty.h:97
SevnLogging svlog
Definition: BinaryProperty.h:96
virtual void resynch(_UNUSED const double &dt, _UNUSED bool set0=true)
Definition: BinaryProperty.h:44
virtual ~BinaryProperty()
Definition: BinaryProperty.h:32
virtual std::string name()
Definition: BinaryProperty.h:39
double V0
Definition: BinaryProperty.h:97
virtual void init(_UNUSED const double par)
Definition: BinaryProperty.h:48
virtual int getID() const
Definition: BinaryProperty.h:42
virtual void init_derived(_UNUSED Binstar *binstar)
Definition: BinaryProperty.h:53
virtual void restore()
Definition: BinaryProperty.h:73
virtual void set_0(const double &a)
Definition: BinaryProperty.h:95
virtual double get(_UNUSED const Binstar *b=nullptr)
Definition: BinaryProperty.h:71
virtual int evolve(_UNUSED Binstar *binstar)
Definition: BinaryProperty.cpp:12
virtual BinaryProperty * Instance()
Definition: BinaryProperty.h:38
double get_variation(Binstar *binstar) const
Definition: BinaryProperty.cpp:49
std::map< std::string, size_t > _PrintMap
Definition: BinaryProperty.h:35
virtual int special_evolve(_UNUSED Binstar *binstar)
Definition: BinaryProperty.h:57
static size_t size
Definition: BinaryProperty.h:76
Derived.
Definition: BinaryProperty.h:191
virtual bool amiderived()
Definition: BinaryProperty.h:205
void init_derived(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.h:194
void init(_UNUSED const double par) override
Definition: BinaryProperty.h:199
Fundamental.
Definition: BinaryProperty.h:101
int evolve(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.cpp:76
void init(_UNUSED const double par) override
Definition: BinaryProperty.h:121
Eccentricity * Instance() override
Definition: BinaryProperty.h:113
std::string units() override
Definition: BinaryProperty.h:118
static Eccentricity _eccentricity
Definition: BinaryProperty.h:111
int getID() const override
Definition: BinaryProperty.h:119
std::string name() override
Definition: BinaryProperty.h:117
static size_t ID
Definition: BinaryProperty.h:110
Eccentricity(bool reg=true)
Definition: BinaryProperty.h:104
void check_boundaries(double *val, _UNUSED Binstar *binstar) override
Definition: BinaryProperty.cpp:84
Definition: BinaryProperty.h:340
int getID() const override
Definition: BinaryProperty.h:362
static GWtime _gwtime
Definition: BinaryProperty.h:360
static size_t ID
Definition: BinaryProperty.h:359
std::string units() override
Definition: BinaryProperty.h:356
GWtime(bool reg=true)
Definition: BinaryProperty.h:344
const double time_scaling
Definition: BinaryProperty.h:368
GWtime * Instance() override
Definition: BinaryProperty.h:350
std::string name() override
Definition: BinaryProperty.h:355
int evolve(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.cpp:713
Definition: BinaryProperty.h:302
static Period _period
Definition: BinaryProperty.h:316
Period(bool reg=true)
Definition: BinaryProperty.h:306
std::string name() override
Definition: BinaryProperty.h:312
double calc_period(const double &a, const double &Mtot)
Definition: BinaryProperty.h:333
static size_t ID
Definition: BinaryProperty.h:315
Period * Instance() override
Definition: BinaryProperty.h:318
int getID() const override
Definition: BinaryProperty.h:323
int evolve(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.cpp:699
std::string units() override
Definition: BinaryProperty.h:313
Definition: BinaryProperty.h:398
RL0(bool reg=true)
Definition: BinaryProperty.h:401
static RL0 _rl0
Definition: BinaryProperty.h:413
RL0 * Instance() override
Definition: BinaryProperty.h:407
int evolve(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.cpp:754
std::string name() override
Definition: BinaryProperty.h:411
static size_t ID
Definition: BinaryProperty.h:412
int getID() const override
Definition: BinaryProperty.h:415
Definition: BinaryProperty.h:422
int getID() const override
Definition: BinaryProperty.h:439
static size_t ID
Definition: BinaryProperty.h:436
static RL1 _rl1
Definition: BinaryProperty.h:437
std::string name() override
Definition: BinaryProperty.h:435
int evolve(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.cpp:768
RL1(bool reg=true)
Definition: BinaryProperty.h:425
RL1 * Instance() override
Definition: BinaryProperty.h:431
Definition: BinaryProperty.h:139
static Semimajor _semimajor
Definition: BinaryProperty.h:149
int getID() const override
Definition: BinaryProperty.h:158
void init(_UNUSED const double par) override
Definition: BinaryProperty.h:160
Semimajor(bool reg=true)
Definition: BinaryProperty.h:142
void check_boundaries(double *val, Binstar *binstar) override
Definition: BinaryProperty.cpp:60
Semimajor * Instance() override
Definition: BinaryProperty.h:151
std::string name() override
Definition: BinaryProperty.h:155
std::string units() override
Definition: BinaryProperty.h:156
static size_t ID
Definition: BinaryProperty.h:148
Definition: BinaryProperty.h:209
static size_t ID
Definition: BinaryProperty.h:223
dadt(bool reg=true)
Definition: BinaryProperty.h:213
dadt * Instance() override
Definition: BinaryProperty.h:226
std::string units() override
Definition: BinaryProperty.h:220
int evolve(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.cpp:95
std::string name() override
Definition: BinaryProperty.h:219
int getID() const override
Definition: BinaryProperty.h:230
static dadt _dadt
Definition: BinaryProperty.h:224
Definition: BinaryProperty.h:235
dedt(bool reg=true)
Definition: BinaryProperty.h:239
static dedt _dedt
Definition: BinaryProperty.h:250
static size_t ID
Definition: BinaryProperty.h:249
int getID() const override
Definition: BinaryProperty.h:257
std::string units() override
Definition: BinaryProperty.h:246
int evolve(_UNUSED Binstar *binstar) override
Definition: BinaryProperty.cpp:108
std::string name() override
Definition: BinaryProperty.h:245
dedt * Instance() override
Definition: BinaryProperty.h:252
void debug(std::string errstate, const char *file_input=nullptr, int line_input=-1) const
Definition: sevnlog.cpp:194
void info(std::string errstate, const char *file_input=nullptr, int line_input=-1) const
Definition: sevnlog.cpp:166
void critical(std::string errstate, const char *file_input=nullptr, int line_input=-1) const
Definition: sevnlog.cpp:85
@ NoEvent
Definition: lookup_and_phases.h:158
constexpr double G
Fundamental quantitis.
Definition: utilities.h:59
const std::string n2s(T val, const char *file_input, const int line_input, const unsigned int precision=6)
Definition: utilities.h:144
constexpr double G3_over_c5
Definition: utilities.h:78
constexpr double yr_to_Myr
Definition: utilities.h:69