SEVN
Loading...
Searching...
No Matches
BinaryProperty.h
Go to the documentation of this file.
1//
2// Created by spera on 13/02/19.
3//
4
5#ifndef SEVN_BINPROP_H
6#define SEVN_BINPROP_H
7
8#include <iostream>
9#include <vector>
10#include <string>
11#include <map>
12#include <random>
13#include <utilities.h>
14#include <lookup_and_phases.h>
15
16#include <sevnlog.h>
18
19
20#define _UNUSED __attribute__ ((unused))
21
22class Binstar;
23class Star;
24
26
27public:
29 size++;
30 }
31
32 virtual ~BinaryProperty(){}
33
34 static std::vector<BinaryProperty*> all;
35 typedef std::map<std::string,size_t> _PrintMap;
37
38 virtual BinaryProperty * Instance(){ return nullptr; }
39 virtual inline std::string name(){return "Binary property (generic)";}
40 virtual inline std::string units() {return "UNKNOWN";}
41
42 virtual inline int getID() const {return -1;}
43
44 virtual void resynch(_UNUSED const double &dt, _UNUSED bool set0=true) {}
45
46 virtual inline void check_boundaries(_UNUSED double *val, _UNUSED Binstar *binstar) {}
47
48 virtual void init(_UNUSED const double par){
49 set(par);
50 set_0(par);
51 };
52
53 virtual void init_derived(_UNUSED Binstar *binstar){};
54
55 virtual int evolve(_UNUSED Binstar *binstar);
56
57 virtual int special_evolve(_UNUSED Binstar *binstar){
58 svlog.info(" my special evolve ");
59 return 0;
60 } //if you have some properties that you want to evolve outside the main cycle
61
62 //Just return the s
63 double get_variation(Binstar *binstar) const;
64
65
66 virtual int set_broken(_UNUSED Binstar *binstar){
67 V0=V=std::nan("");
68 return EXIT_SUCCESS;
69 }
70
71 virtual inline double get(_UNUSED const Binstar* b=nullptr) {return V;}
72 inline double get_0(_UNUSED const Binstar* b=nullptr) {return V0;}
73 virtual inline void restore(){ V = V0;}
74
75private:
76 static size_t size;
77
78
79
80protected:
81 void Register(BinaryProperty *_p, size_t *id, const std::string &_name){
82 BinaryProperty::all.push_back(_p);
83 *id = BinaryProperty::size - 1;
84 BinaryProperty::PrintMap.insert(std::pair<std::string,size_t>(_name, *id));
85 svlog.debug("Binary property "+ name() + " registered" + " (Nproperties: " + utilities::n2s(all.size(),__FILE__,__LINE__) + ")");
86 }
87
88 std::uniform_real_distribution<double> _uniform_real;
89
90 bool isbad(const double &val) {
91 return (std::isnan(val) || std::isinf(val));
92 }
93
94 virtual void set(const double &a) { V = a;}
95 virtual void set_0(const double &a) { V0 = a;}
97 double V, V0;
98};
99
102
103public:
104 Eccentricity(bool reg = true) {
105 if (reg) {
106 Register(this, &ID, name());
107 }
108 }
109
110 static size_t ID;
112
113 Eccentricity *Instance() override {
114 return (new Eccentricity(false));
115 }
116
117 inline std::string name() override { return "Eccentricity"; }
118 inline std::string units() override {return "";}
119 inline int getID() const override {return (int)ID;}
120
121 void init(_UNUSED const double par) override {
122
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="
125 +utilities::n2s(par,__FILE__,__LINE__),__FILE__,__LINE__,sevnstd::sevnio_error(""));
126 }
127
129 }
130
131
132 int evolve(_UNUSED Binstar *binstar) override;
133
134
135 inline void check_boundaries(double *val, _UNUSED Binstar *binstar) override;
136
137};
138
140
141public:
142 Semimajor(bool reg = true) {
143 if (reg) {
144 Register(this, &ID, name());
145 }
146 }
147
148 static size_t ID;
150
151 Semimajor *Instance() override {
152 return (new Semimajor(false));
153 }
154
155 inline std::string name() override { return "Semimajor"; }
156 inline std::string units() override {return "Rsun";}
157
158 inline int getID() const override {return (int)ID;}
159
160 void init(_UNUSED const double par) override {
161
162 if (par<=0){
163 svlog.critical("Error in Semimajor initialisation, it should be larger than 0, you use Semimajor="
164 +utilities::n2s(par,__FILE__,__LINE__),__FILE__,__LINE__,sevnstd::sevnio_error(""));
165 }
166
168 }
169
170
177 void check_boundaries(double *val, Binstar *binstar) override;
178
179
180
181
182};
183
184
185
187
192
193
194 void init_derived(_UNUSED Binstar *binstar) override {
195 evolve(binstar); //Set V
196 set_0(get()); //Set V_0
197 };
198
199 void init(_UNUSED const double par) override {
200 svlog.critical("Cannot initialise the derived Binary property"
201 +name(),__FILE__,__LINE__,sevnstd::sevnio_error(""));
202 };
203
204
205 virtual inline bool amiderived() { return true;}
206
207};
208
210
211public:
212
213 dadt(bool reg = true){
214 if(reg) {
215 Register(this, &ID, name());
216 }
217 }
218
219 inline std::string name() override { return "dSemimajordt"; }
220 inline std::string units() override {return "Rsun/Myr";}
221
222
223 static size_t ID;
224 static dadt _dadt;
225
226 dadt * Instance() override {
227 return (new dadt(false));
228 }
229
230 inline int getID() const override {return (int)ID;}
231 int evolve(_UNUSED Binstar *binstar) override;
232
233};
234
236
237public:
238
239 dedt(bool reg = true){
240 if(reg) {
241 Register(this, &ID, name());
242 }
243 }
244
245 inline std::string name() override { return "dEccentricitydt"; }
246 inline std::string units() override {return "/Myr";}
247
248
249 static size_t ID;
250 static dedt _dedt;
251
252 dedt * Instance() override {
253 return (new dedt(false));
254 }
255
256 int evolve(_UNUSED Binstar *binstar) override;
257 inline int getID() const override {return (int)ID;}
258
259};
260
262
263public:
264
265 AngMom(bool reg = true){
266 if(reg) {
267 Register(this, &ID, name());
268 }
269 }
270
271 inline std::string name() override { return "AngMom"; }
272 inline std::string units() override {return "MsunRsun^2";}
273
274 static size_t ID;
276
277 AngMom * Instance() override {
278 return (new AngMom(false));
279 }
280
281 int evolve(_UNUSED Binstar *binstar) override;
282 inline int getID() const override {return (int)ID;}
283
284protected:
285
294 inline double AngMom_from_orbit(double a, double e, double M1, double M2){
295 double G = utilities::G;
296 return (M1*M2)*std::sqrt( (a*(1-e*e)*G)/(M1+M2));
297 }
298
299
300};
301
303
304public:
305
306 Period(bool reg = true){
307 if(reg) {
308 Register(this, &ID, name());
309 }
310 }
311
312 inline std::string name() override { return "Period"; }
313 inline std::string units() override {return "yr";}
314
315 static size_t ID;
317
318 Period * Instance() override {
319 return (new Period(false));
320 }
321
322 int evolve(_UNUSED Binstar *binstar) override;
323 inline int getID() const override {return (int)ID;}
324
325protected:
326
333 inline double calc_period(const double & a, const double & Mtot){
334 return 2.0*M_PI*std::sqrt( (a*a*a) / (utilities::G * (Mtot)) ); //returns the period in years
335 }
336
337
338};
339
341
342public:
343
344 GWtime(bool reg = true){
345 if(reg) {
346 Register(this, &ID, name());
347 }
348 }
349
350 GWtime *Instance() override {
351 return (new GWtime(false));
352 }
353
354
355 inline std::string name() override { return "GWtime"; }
356 inline std::string units() override {return "Myr";}
357
358
359 static size_t ID;
361
362 inline int getID() const override {return (int)ID;}
363
364 int evolve(_UNUSED Binstar *binstar) override;
365
366protected:
367
368 const double time_scaling = utilities::yr_to_Myr*0.01953125/utilities::G3_over_c5; //tGW=time_scaling*f(a,e,m1,m2) [Myr]
369 //time scaling=5/256 * (c^5/G^3), see evolve for f.
370
371};
372
374
375public:
376
377 _RL(){}
378
379 _RL * Instance() override { return nullptr; }
380
381 inline std::string name() override { return "_RL";}
382 inline std::string units() override {return "Rsun";}
383
391 virtual double RL_Eg(Star* primary, Star* secondary, Binstar* b);
392
393
394 int evolve(_UNUSED Binstar *binstar) override { return 0; };
395
396};
397
398class RL0 : public _RL{
399
400public:
401 RL0(bool reg=true){
402 if(reg){
403 Register(this, &ID, name());
404 }
405 }
406
407 RL0 *Instance() override{
408 return (new RL0(false));
409 }
410
411 inline std::string name() override { return "RL0";}
412 static size_t ID;
413 static RL0 _rl0;
414
415 inline int getID() const override { return (int)ID;}
416
417 int evolve(_UNUSED Binstar *binstar) override;
418
419
420};
421
422class RL1 : public _RL{
423
424public:
425 RL1(bool reg=true){
426 if(reg){
427 Register(this, &ID, name());
428 }
429 }
430
431 RL1 *Instance() override{
432 return (new RL1(false));
433 }
434
435 inline std::string name() override { return "RL1";}
436 static size_t ID;
437 static RL1 _rl1;
438
439 inline int getID() const override { return (int)ID;}
440
441 int evolve(_UNUSED Binstar *binstar) override;
442
443
444};
445
446
447//Time handling
449
450public:
451 BWorldtime(bool reg = true) {
452 if (reg) {
453 Register(this, &ID, name());
454 }
455 set_0(0.0);
456 set(0.0);
457 }
458
459 BWorldtime *Instance() override {
460 return (new BWorldtime(false));
461 }
462
463 inline std::string name() override { return "BWorldtime"; }
464 inline std::string units() override {return "Myr";}
465
466 static size_t ID;
468
469 inline int getID() const override {return (int)ID;}
470
471 int evolve(_UNUSED Binstar *binstar) override {return 0;}
472
473 int special_evolve(_UNUSED Binstar *binstar) override;
474
475 int set_broken(_UNUSED Binstar *binstar) override { return EXIT_SUCCESS;}
476
477};
478
480
481public:
482 BTimestep(bool reg = true){
483 if(reg) {
484 Register(this, &ID, name());
485 }
486 set(1.0e30); //Initial timestep set to a large value
487 set_0(0.0); //Initial last timestep set to 0
488
489 }
490
491 BTimestep * Instance() override {
492 return (new BTimestep(false));
493 }
494
495 inline std::string name() override { return "BTimestep"; }
496 inline std::string units() override {return "Myr";}
497
498 static size_t ID;
500
501
502 double max_timestep(_UNUSED Binstar *s);
503
504 inline bool check_repeat(_UNUSED Binstar *binstar, const double &V0, const double &V, const double &derivative);
505
506 inline bool check_repeat_eccentricity(_UNUSED Binstar *binstar, const double &m0, const double &m, const double &derivative);
507
508
509
515 bool check_repeat_DM_RLO(_UNUSED Binstar *binstar);
516
523
530
531 int evolve(_UNUSED Binstar *binstar) override;
532
533 inline int getID() const override {return (int)ID;}
534
535 void resynch(const double &dt, bool set0) override {
536 set(dt);
537 if (set0) set_0(get());
538 }
539
540 int set_broken(_UNUSED Binstar *binstar) override {
541 set(max_timestep(binstar));
542 return EXIT_SUCCESS;
543 }
544
545 int special_evolve(_UNUSED Binstar *binstar) override {
546 set_0(get());
547 set(max_timestep(binstar));
548 return 0;
549 } //if you have some properties that you want to evolve outside the main cycle
550
551
552protected:
553
560 void check_dt_limits(double &dt, Binstar *binstar);
561
562 double tiny_dt(Binstar *binstar);
563};
564
565class BEvent : public BinaryProperty{
566
567public:
568
569 BEvent(bool reg = true){
570 if(reg) {
571 Register(this, &ID, name());
572 }
573 init(Lookup::EventsList::NoEvent); //Initiliase to no event
574 }
575
576 inline std::string name() override { return "BEvent"; }
577 inline std::string units() override {return "";}
578
579 static size_t ID;
581
582 BEvent * Instance() override {
583 return (new BEvent(false));
584 }
585
586 int evolve(_UNUSED Binstar *binstar) override{set((double)Lookup::EventsList::NoEvent); return EXIT_SUCCESS;}
587
588 int special_evolve(_UNUSED Binstar *binstar) override;
589
590
591};
592
593
594
601
602public:
603
604 inline std::string name() override { return "Generic JIT Property"; }
605
606 //Special evolve
607 int evolve(_UNUSED Binstar *binstar) override {
609 return EXIT_SUCCESS;
610 }
611
612
613 inline double get(_UNUSED const Binstar* b=nullptr) override {
614 //If evolve_number>last_evolve_number, we have to obtain a new estimate for lambda
617 }
618 return V;
619 }
620
621 inline void restore() override {evolve_number++;}
622
623
624protected:
625
626
627 virtual void specialised_set(_UNUSED const Binstar* b=nullptr){
628 return;
629 }
630
633 }
634
635 void set(const double &a) override {
636 V=a;
638 }
639
640
641
642private:
643
644
645 //The following numbers check if an evolution of a binary evolution has been called
646 //from the last time this property has been estimated.
647 //evolve_number increases by 1 each time evolve or update_from_binary has been called.
648 //last_evolve_number stores the value of evolve_number when getp is called.
649 //When calling getp it checks if the two numbers are equal, if they are the property is just last stored one.
651
652};
653
654
655
656
657
658#endif //SEVN_BINPROP_H
#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
Definition: binstar.h:26
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: star.h:39
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
Definition: sevnlog.h:43
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
Definition: errhand.h:53
@ 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