SEVN
Loading...
Searching...
No Matches
Processes.h
Go to the documentation of this file.
1//
2// Created by spera on 13/02/19.
3//
4
21#ifndef SEVN_PROCESSES_H
22#define SEVN_PROCESSES_H
23
24
25#include <iostream>
26#include <vector>
27#include <string>
28#include <map>
29#include <random>
30#include <property.h>
31#include <BinaryProperty.h>
32#include <Orbit.h>
33#include <IO.h>
34#include <lookup_and_phases.h>
35
36#include <sevnlog.h>
38
39class Star;
40class Binstar;
41class Orbital_change;
42
43class Process {
44
45public:
47 size++;
48 VB.resize(BinaryProperty::all.size());
49 VS.resize(2);
50
51 VS[0].resize(Property::all.size());
52 VS[1].resize(Property::all.size());
53
54 set_V_to_0();
55 }
56
57 virtual ~ Process();
58
59 static std::vector<Process*> all;
60 typedef std::map<std::string,size_t> _PrintMap;
62
63 virtual Process * Instance(_UNUSED IO *_io){ return nullptr; }
64 virtual inline std::string name(){return "Property (generic)";}
65 virtual int evolve(_UNUSED Binstar *binstar){return EXIT_SUCCESS;}
66 virtual int special_evolve(_UNUSED Binstar *binstar){return 0;} //0 Means system is not broken
67
68
69 double get(const size_t &id){ return VB[id]; }
70 double get_var(const size_t &starID, const size_t &propID){ return VS[starID][propID]; }
71
72 std::string & get_msg() {return message;}
73
74 inline void restore(){set_V_to_0();}
75
76 //Special functions to modify the VB matrix
83 VB[Semimajor::ID]*=factor;
84 return EXIT_SUCCESS;
85 }
92 VB[Eccentricity::ID]*=factor;
93 return EXIT_SUCCESS;
94 }
95
101 if (VS[0][Mass::ID]==0 && VS[1][Mass::ID]==0)
102 return false;
103 else
104 return true;
105 }
106
111 virtual bool is_process_ongoing() const {return orb_change->is_process_ongoing();};
112
114 inline void set_event(double code){event_code=code;}
115 inline double get_event(){return event_code;}
116 inline void reset_event(){event_code=-1;}
117
122
126
137 virtual double estimate_accreted_mass(_UNUSED double DM, _UNUSED Star *donor, _UNUSED Star *accretor, _UNUSED Binstar *binstar) const {return 0.0;}
138
139private:
140 static size_t size;
141 std::vector<double> VB;
142 std::vector<std::vector<double>> VS;
143 std::string message;
144 double event_code=-1; //
147 //std::string log_message_core
148
149protected:
150
151 //Notice the pointer are set to nullptr because now the Collision process don't initialise them
152 //so when the Process destructor is called it could be possible that it will try to delete a fake memory
153 //address. With orb_change=nullptr this will not happen and we can avoid SEGFAULT ERRORS
154 Star *donor= nullptr;
155 Star *accretor= nullptr;
158
159 void Register(Process *_p, size_t *id, const std::string &_name){
160 Process::all.push_back(_p);
161 *id = Process::size - 1;
162 Process::PrintMap.insert(std::pair<std::string,size_t>(_name, *id));
163 svlog.debug("Binary process "+ name() + " registered" + " (Nproperties: " + utilities::n2s(all.size(),__FILE__,__LINE__) + ")");
164
165 }
166 std::uniform_real_distribution<double> _uniform_real;
167
168
169 void set(const size_t &id, const double &value){ VB[id] = value; }
170 void set_var(const size_t &starID, const size_t &propID, const double &value){ VS[starID][propID] = value; }
171 void set_msg(const std::string &str) {message = str;}
172
173 inline void set_V_to_0(){
174
175 for(size_t i = 0; i < VB.size(); i++)
176 VB[i] = 0.0;
177
178 for(size_t i = 0; i < 2; i++){
179 for(size_t k = 0; k < VS[i].size(); k++){
180 VS[i][k] = 0.0;
181 }
182 }
183 }
184
185};
186
187
189public:
190
197 virtual double NS_DBmag_accretion (_UNUSED Binstar *b, _UNUSED Star *s, _UNUSED double DM) const;
204 virtual double NS_DOmegaRem_accretion (_UNUSED Binstar *b, _UNUSED Star *s, _UNUSED double DM) const;
205
206protected:
207
216 virtual int accrete_mass(_UNUSED Binstar* binstar){return EXIT_SUCCESS;}
217
223 virtual void handle_NS_massaccretion(_UNUSED Binstar *b, _UNUSED Star *s, _UNUSED double DM);
224
225
226};
227
229
230public:
231
232 //The RocheLobe in a eccentric orbit
233 //https://iopscience.iop.org/article/10.1086/513736/pdf
234 RocheLobe(_UNUSED IO *_io= nullptr, bool reg = true) {
235 if (reg) {
236 Register(this, &ID, name());
237 }
238
239 if (_io!= nullptr){
240 std::string orb_change_name=Lookup::rlmap_name.at(Lookup::rlmap.at(_io->RL_mode));
241 orb_change = Orbital_change_RL::Instance(orb_change_name);
242 if(orb_change== nullptr) svlog.critical("RL mode " + _io->RL_mode + " not available", __FILE__, __LINE__);
243 //TODO io should be passed directly to Instance
245 }
246
247 }
248
249 static size_t ID;
251
252 RocheLobe *Instance(IO *_io) override {
253 return (new RocheLobe(_io, false));
254 }
255
256 inline std::string name() override { return "RocheLobe"; }
257
258 int evolve(Binstar *binstar) override;
259
267 int special_evolve(Binstar *binstar) override;
268
279 std::string log_message_start(Binstar *binstar, double q, double qcrit, bool swap_donor_accretor=false);
280
289 std::string log_message_end(Binstar *binstar, bool swap_donor_accretor=false);
290
291 static std::string log_message_swallowed(Binstar *binstar, Star *swallowed, Star *other,double DM_accreted);
292 std::string log_message_swallowed(Binstar *binstar, double DM_accreted);
293
294protected:
295
296 bool RLO_last_step=false;
297
306 std::string _log_message(Binstar *binstar, bool swap_donor_accretor=false);
307
308 inline int reset_DM_global(){DM_global_0=DM_global_1=0.0; return EXIT_SUCCESS;}
309
322
324
325private:
326
327 double DM_global_0=0.0, DM_global_1=0.0;
328 double id_donor=-1.;
329 bool RLOswapped=false;
331};
332
334
335public:
336 CommonEnvelope(_UNUSED IO *_io= nullptr, bool reg = true) {
337 if (reg) {
338 Register(this, &ID, name());
339 }
340
341 if (_io!= nullptr){
342 std::string orb_change_name=Lookup::cemap_name.at(Lookup::cemap.at(_io->CE_mode));
343 orb_change = Orbital_change_CE::Instance(orb_change_name);
344 if(orb_change== nullptr) svlog.critical("CE mode " + _io->CE_mode + " not available", __FILE__, __LINE__);
345 }
346
347
348 }
349
350 static size_t ID;
352
353 CommonEnvelope *Instance(IO *_io) override {
354 return (new CommonEnvelope(_io, false));
355 }
356
357 inline std::string name() override { return "CommonEnvelope"; }
358
359 int special_evolve(Binstar *binstar) override;
360
361 static std::string log_mess(Binstar *binstar, Star *primary, Star *secondary);
362
368 std::string log_message_swallowed(Binstar *binstar);
369
370
371protected:
372
373 int init(Binstar *binstar);
374
385 int whoisprimary(Binstar *binstar);
386
399
405 std::string main_coalesce(Binstar *binstar);
411 std::string coalesce(Binstar *binstar);
417 std::string coalesce_with_bindingEnergy(Binstar *binstar);
423 int lose_the_envelope(Binstar *binstar);
424
425 inline double hurley_rm_x(double Z){
426
427 double zeta = std::log(Z/0.02);
428
429 double ret = 0.30406 + 0.0805*zeta + 0.0897*zeta*zeta + 0.0878*zeta*zeta*zeta + 0.0222*zeta*zeta*zeta*zeta;
430
431
432 return ret;
433
434 }
435
436 double hurley_final_mass(const double Ebindf, const double toll=1e-3, const double maxit=100){
437
438 //Check
439 if (!isinisialised)
440 svlog.critical("CE process has not been initialised",__FILE__,__LINE__,sevnstd::ce_error());
441
442 double XX = 1 + hurley_rm_x(primary->get_Z());
443
444
445 double MC22=secondary->getp(MHE::ID);
446 double MC1=M_core_primary;
447 double M1=primary->getp(Mass::ID);
448 double M2=secondary->getp(Mass::ID);
449 double DELY, DERI;
450 int Niter = 0;
451
452 double Eratio = Ebindf/Ebind_ini;
453
454 double CONST = (pow(M1+M2,XX))*(M1-MC1+M2-MC22)*Eratio;
455
456 double MF=std::max(MC1+MC22, (M1+M2)*pow((Eratio),(1/XX)));
457 DELY = 10*toll*MF;
458
459
460 while(std::abs(DELY/MF)>toll && Niter<maxit){
461
462 DELY = pow(MF,XX)*(MF-MC1-MC22) - CONST;
463
464 DERI = pow(MF,(XX-1))*((1+XX)*MF - XX*(MC1+MC22));
465
466 MF -= DELY/DERI;
467
468 Niter++;
469
470
471
472 }
473
474
475
476 return MF;
477
478 }
479
480
481
482private:
483
484 //Common variables
487
488 //CE lambda, alpha formalism
489 double lambda; //Concentraction factor to define the envelope binding energy
490 double alpha; //Fraction of orbital energy used to expel the envelope
491
492 //Orbital
493 double a_fin, ecc_fin;
494 //Mass and radii
499 double RL_primary_final, RL_secondary_final; //Roche Lobe of primary and secondary after CE
500 //Energies
501 double Ebind_ini; // Initial envelope binding energy
502 double Eorb_ini, Eorb_fin; //Initial and final orbital energy of the cores
503
504 //Initilisation check
505 bool isinisialised=false;
506};
507
508class SNKicks : public Process{
509
510public:
511 SNKicks(_UNUSED IO *_io= nullptr, bool reg = true) {
512 if (reg) {
513 Register(this, &ID, name());
514 }
515
516 if (_io!= nullptr){
517 std::string orb_change_name=Lookup::snkmap_name.at(Lookup::snkmap.at(_io->SNK_mode));
519 if(orb_change== nullptr) svlog.critical("RL mode " + _io->RL_mode + " not available", __FILE__, __LINE__);
520 }
521
522 }
523
524 static size_t ID;
526
527 SNKicks *Instance(IO *_io) override {
528 return (new SNKicks(_io, false));
529 }
530
531 inline std::string name() override { return "SNKick"; }
532
539 int special_evolve(Binstar *binstar) override;
540
541 static std::string log_message(Binstar *binstar,double a_fin,double e_fin, double cos_nu, double vcom);
542
543
544};
545
546class GWrad : public Process{
547
548public:
549 GWrad(_UNUSED IO *_io= nullptr, bool reg = true) {
550 if (reg) {
551 Register(this, &ID, name());
552 }
553
554 if (_io!= nullptr){
555 std::string orb_change_name=Lookup::gwmap_name.at(Lookup::gwmap.at(_io->GW_mode));
556 orb_change = Orbital_change_GW::Instance(orb_change_name);
557 if(orb_change== nullptr) svlog.critical("GW mode " + _io->GW_mode + " not available", __FILE__, __LINE__);
558 }
559
560
561 }
562
563 static size_t ID;
564 static GWrad _gwrad;
565
566 GWrad *Instance(IO *_io) override {
567 return (new GWrad(_io, false));
568 }
569
570 inline std::string name() override { return "GWrad"; }
571
572 int evolve(Binstar *binstar) override;
573
574private:
575
576 bool first_time_GW = true; //This true until the GW orbital energy loss starts to be estimated (see inside evolve)
577
578};
579
580class Tides : public Process{
581
582public:
583 Tides(IO * _io= nullptr, bool reg = true) {
584 if (reg) {
585 Register(this, &ID, name());
586 }
587
588 if (_io!= nullptr){
589 std::string orb_change_name=Lookup::tidesmap_name.at(Lookup::tidesmap.at(_io->tides_mode));
591 if(orb_change== nullptr) svlog.critical("Tides mode " + _io->tides_mode + " not available", __FILE__, __LINE__);
592 }
593 }
594
595 static size_t ID;
596 static Tides _tides;
597
598 Tides *Instance(IO * _io) override {
599 return (new Tides(_io,false));
600 }
601
602 inline std::string name() override { return "Tides"; }
603
604 int evolve(Binstar *binstar) override;
605};
606
607class Mix : public Process{
608
609public:
610
611 Mix(_UNUSED IO *_io= nullptr, bool reg = true) {
612 if (reg) {
613 Register(this, &ID, name());
614 }
615
616 if (_io!= nullptr){
617 std::string orb_change_name=Lookup::mixmap_name.at(Lookup::mixmap.at(_io->mix_mode));
618 orb_change = Orbital_change_Mix::Instance(orb_change_name);
619 if(orb_change== nullptr) svlog.critical("Mix mode " + _io->mix_mode + " not available", __FILE__, __LINE__);
620 }
621
622
623 }
624
625 static size_t ID;
626 static Mix _mix;
627
628 Mix *Instance(IO *_io) override {
629 return (new Mix(_io, false));
630 }
631
632 inline std::string name() override { return "Mix"; }
633
634 int special_evolve(Binstar *binstar) override;
635
636 static std::string log_message(Binstar *binstar, Star *accretor, Star *donor);
637
638
639};
640
641
642
643
644
645
646
647
648#endif //SEVN_PROCESSES_H
#define _UNUSED
Definition: BinaryProperty.h:20
static std::vector< BinaryProperty * > all
Definition: BinaryProperty.h:34
Definition: binstar.h:26
Definition: Processes.h:333
double Eorb_fin
Definition: Processes.h:502
double M_core_secondary
Definition: Processes.h:497
std::string coalesce(Binstar *binstar)
Definition: Processes.cpp:1242
std::string log_message_swallowed(Binstar *binstar)
Definition: Processes.cpp:1482
std::string main_coalesce(Binstar *binstar)
Definition: Processes.cpp:1116
double RL_primary_final
Definition: Processes.h:499
std::string name() override
Definition: Processes.h:357
int special_evolve(Binstar *binstar) override
Definition: Processes.cpp:830
double M_core_primary
Definition: Processes.h:495
Star * secondary
Definition: Processes.h:486
int lose_the_envelope(Binstar *binstar)
Definition: Processes.cpp:1340
double R_core_secondary
Definition: Processes.h:498
static std::string log_mess(Binstar *binstar, Star *primary, Star *secondary)
Definition: Processes.cpp:1468
double lambda
Definition: Processes.h:489
double R_core_primary
Definition: Processes.h:496
static size_t ID
Definition: Processes.h:350
CommonEnvelope(_UNUSED IO *_io=nullptr, bool reg=true)
Definition: Processes.h:336
double a_fin
Definition: Processes.h:493
bool isinisialised
Definition: Processes.h:505
double Ebind_ini
Definition: Processes.h:501
double hurley_final_mass(const double Ebindf, const double toll=1e-3, const double maxit=100)
Definition: Processes.h:436
double Eorb_ini
Definition: Processes.h:502
double final_mass_after_coalescence()
Definition: Processes.cpp:1370
CommonEnvelope * Instance(IO *_io) override
Definition: Processes.h:353
double M_env_primary
Definition: Processes.h:495
std::string coalesce_with_bindingEnergy(Binstar *binstar)
Definition: Processes.cpp:1180
double hurley_rm_x(double Z)
Definition: Processes.h:425
double ecc_fin
Definition: Processes.h:493
double M_env_secondary
Definition: Processes.h:497
static CommonEnvelope _commonenvelope
Definition: Processes.h:351
int whoisprimary(Binstar *binstar)
Definition: Processes.cpp:1053
int init(Binstar *binstar)
Definition: Processes.cpp:988
double alpha
Definition: Processes.h:490
double RL_secondary_final
Definition: Processes.h:499
Star * primary
Definition: Processes.h:485
static size_t ID
Definition: BinaryProperty.h:110
Definition: Processes.h:546
static size_t ID
Definition: Processes.h:563
std::string name() override
Definition: Processes.h:570
int evolve(Binstar *binstar) override
Definition: Processes.cpp:190
GWrad(_UNUSED IO *_io=nullptr, bool reg=true)
Definition: Processes.h:549
GWrad * Instance(IO *_io) override
Definition: Processes.h:566
static GWrad _gwrad
Definition: Processes.h:564
bool first_time_GW
Definition: Processes.h:576
Definition: IO.h:53
static size_t ID
Definition: property.h:826
Definition: Processes.h:188
virtual double NS_DBmag_accretion(_UNUSED Binstar *b, _UNUSED Star *s, _UNUSED double DM) const
Definition: Processes.cpp:23
virtual int accrete_mass(_UNUSED Binstar *binstar)
Definition: Processes.h:216
virtual double NS_DOmegaRem_accretion(_UNUSED Binstar *b, _UNUSED Star *s, _UNUSED double DM) const
Definition: Processes.cpp:46
virtual void handle_NS_massaccretion(_UNUSED Binstar *b, _UNUSED Star *s, _UNUSED double DM)
Definition: Processes.cpp:96
static size_t ID
Definition: property.h:785
Definition: Processes.h:607
std::string name() override
Definition: Processes.h:632
static size_t ID
Definition: Processes.h:625
Mix * Instance(IO *_io) override
Definition: Processes.h:628
static std::string log_message(Binstar *binstar, Star *accretor, Star *donor)
Definition: Processes.cpp:808
int special_evolve(Binstar *binstar) override
Definition: Processes.cpp:668
static Mix _mix
Definition: Processes.h:626
Mix(_UNUSED IO *_io=nullptr, bool reg=true)
Definition: Processes.h:611
static Orbital_change_CE * Instance(const std::string &name)
Definition: Orbit.cpp:1622
static Orbital_change_GW * Instance(const std::string &name)
Definition: Orbit.cpp:343
static Orbital_change_Mix * Instance(const std::string &name)
Definition: Orbit.cpp:1405
static Orbital_change_RL * Instance(const std::string &name)
Definition: Orbit.cpp:394
static Orbital_change_SNKicks * Instance(const std::string &name)
Definition: Orbit.cpp:1419
static Orbital_change_Tides * Instance(const std::string &name)
Definition: Orbit.cpp:17
Definition: Orbit.h:39
virtual bool is_process_ongoing()
Other function that return useful information.
Definition: Orbit.h:76
virtual void set_options(_UNUSED IO *_io)
Definition: Orbit.h:87
Definition: Processes.h:43
std::string & get_msg()
Definition: Processes.h:72
std::vector< double > VB
Definition: Processes.h:141
virtual std::string name()
Definition: Processes.h:64
void Register(Process *_p, size_t *id, const std::string &_name)
Definition: Processes.h:159
Star * donor
Definition: Processes.h:154
static _PrintMap PrintMap
Definition: Processes.h:61
virtual Process * Instance(_UNUSED IO *_io)
Definition: Processes.h:63
std::map< std::string, size_t > _PrintMap
Definition: Processes.h:60
virtual int special_evolve(_UNUSED Binstar *binstar)
Definition: Processes.h:66
bool is_mass_transfer_happening()
Definition: Processes.h:100
void special_evolution_alarm_switch_off()
Definition: Processes.h:120
std::uniform_real_distribution< double > _uniform_real
Definition: Processes.h:166
bool is_special_evolution_alarm_on() const
Definition: Processes.h:121
void set_V_to_0()
Definition: Processes.h:173
void special_evolution_alarm_switch_on()
Three methods to handle the private member special_evolution_alarm.
Definition: Processes.h:119
static size_t size
Definition: Processes.h:140
virtual int evolve(_UNUSED Binstar *binstar)
Definition: Processes.h:65
Orbital_change * orb_change
Definition: Processes.h:157
Process()
Definition: Processes.h:46
Star * accretor
Definition: Processes.h:155
void reset_event()
Definition: Processes.h:116
std::vector< std::vector< double > > VS
Definition: Processes.h:142
void set_var(const size_t &starID, const size_t &propID, const double &value)
Definition: Processes.h:170
virtual bool is_process_ongoing() const
Definition: Processes.h:111
static std::vector< Process * > all
Definition: Processes.h:59
double get_event()
Definition: Processes.h:115
void set(const size_t &id, const double &value)
Definition: Processes.h:169
int modify_SemimajorDV_by_a_factor(double factor)
Definition: Processes.h:82
double get(const size_t &id)
Definition: Processes.h:69
void set_event(double code)
Events handling.
Definition: Processes.h:114
virtual double estimate_accreted_mass(_UNUSED double DM, _UNUSED Star *donor, _UNUSED Star *accretor, _UNUSED Binstar *binstar) const
Definition: Processes.h:137
double get_var(const size_t &starID, const size_t &propID)
Definition: Processes.h:70
std::string message
Definition: Processes.h:143
void restore()
Definition: Processes.h:74
bool special_evolution_alarm
Definition: Processes.h:145
void set_msg(const std::string &str)
Definition: Processes.h:171
SevnLogging svlog
Definition: Processes.h:156
int modify_EccentricityDV_by_a_factor(double factor)
Definition: Processes.h:91
double event_code
Definition: Processes.h:144
static vector< Property * > all
Definition: property.h:313
Definition: Processes.h:228
bool check_and_handle_swapping_condition(Binstar *binstar)
Definition: Processes.cpp:606
double DM_global_1
Definition: Processes.h:327
bool RLO_last_step
Definition: Processes.h:296
std::string _log_message(Binstar *binstar, bool swap_donor_accretor=false)
Definition: Processes.cpp:540
RocheLobe(_UNUSED IO *_io=nullptr, bool reg=true)
Definition: Processes.h:234
std::string name() override
Definition: Processes.h:256
RocheLobe * Instance(IO *_io) override
Definition: Processes.h:252
static std::string log_message_swallowed(Binstar *binstar, Star *swallowed, Star *other, double DM_accreted)
Definition: Processes.cpp:597
int special_evolve(Binstar *binstar) override
Definition: Processes.cpp:390
std::string log_message_end(Binstar *binstar, bool swap_donor_accretor=false)
Definition: Processes.cpp:577
double id_donor
Definition: Processes.h:328
int evolve(Binstar *binstar) override
Definition: Processes.cpp:273
int reset_DM_global()
Definition: Processes.h:308
bool RLOswapped
Definition: Processes.h:329
int reset_dMcumul_RLO_in_stars(Binstar *binstar)
Definition: Processes.cpp:654
double DM_global_0
Definition: Processes.h:327
static RocheLobe _rochelobe
Definition: Processes.h:250
static size_t ID
Definition: Processes.h:249
std::string log_message_start(Binstar *binstar, double q, double qcrit, bool swap_donor_accretor=false)
Definition: Processes.cpp:568
Definition: Processes.h:508
std::string name() override
Definition: Processes.h:531
int special_evolve(Binstar *binstar) override
Definition: Processes.cpp:109
SNKicks * Instance(IO *_io) override
Definition: Processes.h:527
static size_t ID
Definition: Processes.h:524
static std::string log_message(Binstar *binstar, double a_fin, double e_fin, double cos_nu, double vcom)
Definition: Processes.cpp:164
static SNKicks _snkicks
Definition: Processes.h:525
SNKicks(_UNUSED IO *_io=nullptr, bool reg=true)
Definition: Processes.h:511
static size_t ID
Definition: BinaryProperty.h:148
Definition: star.h:39
double get_Z() const
Definition: star.h:886
double getp(const size_t &id) const
Definition: star.h:924
Definition: Processes.h:580
Tides * Instance(IO *_io) override
Definition: Processes.h:598
static Tides _tides
Definition: Processes.h:596
Tides(IO *_io=nullptr, bool reg=true)
Definition: Processes.h:583
int evolve(Binstar *binstar) override
Definition: Processes.cpp:245
static size_t ID
Definition: Processes.h:595
std::string name() override
Definition: Processes.h:602
Definition: sevnlog.h:43
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
Definition: errhand.h:104
const GWMAP gwmap
Definition: lookup_and_phases.cpp:172
const GW_NAME gwmap_name
GW.
Definition: static_main.h:409
const TIDESMAP_NAME tidesmap_name
Tides.
Definition: static_main.h:397
const SNKMAP snkmap
Definition: lookup_and_phases.cpp:188
const RLMAP rlmap
Definition: lookup_and_phases.h:243
const MIX_NAME mixmap_name
Definition: static_main.h:434
const CE_NAME cemap_name
Definition: static_main.h:452
const TIDESMAP tidesmap
Definition: lookup_and_phases.cpp:157
const SNK_NAME snkmap_name
Definition: static_main.h:443
const CEMAP cemap
Definition: lookup_and_phases.cpp:197
const RL_NAME rlmap_name
Definition: static_main.h:419
const MIXMAP mixmap
Definition: lookup_and_phases.cpp:181
const std::string n2s(T val, const char *file_input, const int line_input, const unsigned int precision=6)
Definition: utilities.h:144