SEVN
Loading...
Searching...
No Matches
utilities.h File Reference
#include <vector>
#include <sstream>
#include <iomanip>
#include <regex>
#include <random>
#include <algorithm>
#include <stdexcept>
#include <memory>
#include <limits>
#include <map>
#include <sevnlog.h>

Go to the source code of this file.

Classes

struct  utilities::MassContainer
 
class  utilities::ListGenerator
 Class to handle the generation of a list of values. More...
 

Namespaces

namespace  utilities
 

Macros

#define _UNUSED   __attribute__ ((unused))
 
#define openfile(a, b)   utilities::_openfile(a, b, __FILE__, __LINE__)
 

Typedefs

typedef unsigned int utilities::evolution
 
typedef unsigned int utilities::jump_convergence
 
typedef unsigned int utilities::sn_explosion
 
typedef unsigned int utilities::rlo
 
typedef bool utilities::bse_evolution
 

Functions

double utilities::maxwellian_cdf (double x, double sigma)
 
double utilities::maxwellian_pdf (double x, double sigma)
 
double utilities::R_Schwarzschild (double Mass)
 
template<typename T >
const std::string utilities::n2s (T val, const char *file_input, const int line_input, const unsigned int precision=6)
 
double utilities::roche_lobe_Eg (double Mass_primary, double Mass_secondary, double a)
 
double utilities::R_Alfven (Star *s, double dMdt, bool get0=false)
 
double utilities::Hfrac (Star *s)
 
double utilities::dMdt_Eddington_accretion (Star *donor, Star *accretor, double eddfact=1.0)
 
static double utilities::omega_crit (double Mass, double Rpolar)
 
void utilities::hardwait ()
 
template<typename T , typename... Tail>
void utilities::hardwait (T head, Tail... tail)
 
void utilities::wait ()
 
template<typename T , typename... Tail>
void utilities::wait (_UNUSED T head, _UNUSED Tail... tail)
 
std::string utilities::get_name (Star *s)
 
long utilities::get_ID (Star *s)
 
std::string utilities::get_name (Binstar *b)
 
long utilities::get_ID (Binstar *b)
 
double utilities::get_current_time (Star *s)
 
double utilities::get_current_time (Binstar *b)
 
template<typename T >
void utilities::_log_print_core (std::stringstream &ss, T t)
 
template<typename T , typename... ListP>
void utilities::_log_print_core (std::stringstream &ss, T t, ListP... args)
 
template<class System , typename... ListP>
std::string utilities::common_log_print (const std::string &label, System *system, ListP... args)
 
template<class System , typename... ListP>
std::string utilities::common_log_print (const std::string &label, System *system)
 
template<typename... ListP>
std::string utilities::log_print (const std::string &label, Star *star, ListP... args)
 
template<typename... ListP>
std::string utilities::log_print (const std::string &label, Binstar *binstar, ListP... args)
 
std::string utilities::log_star_info (Star *s, bool oldstep=false)
 
unsigned long utilities::gen_rseed ()
 
unsigned long utilities::gen_rseed (std::random_device &rd)
 
const std::string utilities::random_keygen (std::mt19937_64 *mtrand)
 
std::vector< std::string > utilities::split (const std::string &s, char delimiter)
 
template<class T >
bool utilities::isifstream ()
 
template<>
bool utilities::isifstream< std::ifstream > ()
 
template<typename T >
size_t utilities::binary_search (T *array, const size_t left, const size_t right, const T value)
 
template<typename T >
bool utilities::string_is_number (std::string str)
 
double utilities::kepler (const double &ecc, const double &m, const double tol=1e-6, const int maxit=50)
 
template<typename T >
const T utilities::s2n (std::string &str, const char *file_input, const int line_input)
 
template<typename T >
void utilities::_openfile (T &in, const std::string f, const char *file_input, const int line_input)
 
bool utilities::wayToSort (int i, int j)
 
template<typename T >
utilities::dirname2n (std::string str, const char *file_input, const int line_input)
 
template<typename T >
void utilities::print_vector (const std::vector< T > &v)
 
std::string utilities::gen_filename (const std::string &_folder, const std::string &_fname, bool print_threads=true)
 
std::string utilities::get_absolute_SEVN_path ()
 
int utilities::find_line (const double &x1, const double &x2, const double &y1, const double &y2, double &slope, double &intercept)
 
template<typename T >
double utilities::rel_difference (T val1, T val2)
 
void utilities::swap_stars (Star *&s1, Star *&s2)
 
std::string utilities::trim (const std::string &s)
 
template<typename T , typename Iter >
bool utilities::isinlist (T element, Iter it, Iter end)
 
std::string utilities::make_pfile_str (const double plife, const size_t Phase, const unsigned int min_precision=6)
 
template<typename T >
utilities::interpolate_1D (T xp, std::vector< T > &x_interp, std::vector< T > &y_interp, bool equispaced_interval=false, bool ext_raise=false)
 
std::string utilities::get_subpath (std::string path, std::string split_string, bool include_split_string=true)
 
template<typename T >
void utilities::transpose (std::vector< std::vector< T > > &MatrixT, std::vector< std::vector< T > > &Matrix)
 
template<typename T >
int utilities::findInVector (const std::vector< T > &vecOfElements, const T &element)
 
template<typename Key , typename Value >
std::map< Value, Key > utilities::flip_map (const std::map< Key, Value > &original_map)
 
bool utilities::areEqual (double x, double y)
 
double utilities::smallestSignificativeStep (double x)
 
template<typename T , typename... Args>
std::unique_ptr< T > utilities::make_unique (Args &&... args)
 

Variables

std::mt19937_64 utilities::mtrand
 
const std::string utilities::SEVN_NAME = "SEVN"
 
constexpr double utilities::G = 3.925125598496094e8
 Fundamental quantitis. More...
 
constexpr double utilities::yr_cgs = 3.1557600e7
 
constexpr double utilities::parsec_cgs = 3.085677581491367e+18
 
constexpr double utilities::Rsun_cgs = 6.95700e10
 
constexpr double utilities::Msun_cgs = 1.988409870698051e+33
 
constexpr double utilities::G_cgs = G*Rsun_cgs*Rsun_cgs*Rsun_cgs/(Msun_cgs*yr_cgs*yr_cgs)
 
constexpr double utilities::Sigma_StefBoltz = 7.1694165533435e-17
 
constexpr double utilities::Myr_to_yr = 1.0e6
 
constexpr double utilities::yr_to_Myr = 1.0e-6
 
constexpr double utilities::AU_to_RSun = 215.03215567054764
 
constexpr double utilities::kms_to_RSunyr = 45.360931435963785
 
constexpr double utilities::LSun_to_Solar = 12.500687924182579
 
constexpr double utilities::c = 1.3598865132357053e7
 
constexpr double utilities::km_to_RSun = 1.4374011786689665e-06
 
constexpr double utilities::parsec_to_Rsun = parsec_cgs/Rsun_cgs
 
constexpr double utilities::g_to_MSun = 5.029144215870041e-34
 
constexpr double utilities::G_over_c2 = G / (c*c)
 
constexpr double utilities::G3_over_c5 = (G*G*G)/(c*c*c*c*c)
 
constexpr double utilities::tH = 13.7*1e3
 
constexpr double utilities::Mchandra = 1.41
 
const std::string utilities::PLACEHOLDER ="xxx"
 
constexpr double utilities::NULL_DOUBLE = -9e30
 
constexpr int utilities::NULL_INT = -999999999
 
constexpr size_t utilities::NULL_SINT = 999999999
 
const std::string utilities::NULL_STR = "FORZAROMA"
 
constexpr double utilities::DIFF_TOLL = 1e-10
 
constexpr double utilities::LARGE = 1e30
 
constexpr double utilities::TINY = 1e-15
 
constexpr double utilities::DOUBLE_EPS = std::numeric_limits<double>::epsilon()
 
constexpr int utilities::SINGLE_STEP_EVOLUTION =0
 
constexpr int utilities::REPEATED_EVOLUTION =1
 
constexpr int utilities::JUMP_CONVERGE =0
 
constexpr int utilities::JUMP =1
 
constexpr int utilities::NO_JUMP =2
 
constexpr int utilities::SNIA_EXPLODE =1
 
constexpr int utilities::SNII_EXPLODE =2
 
constexpr int utilities::SN_NOT_EXPLODE =0
 
constexpr int utilities::RLO_FALSE =0
 
constexpr int utilities::RLO_TRUE =1
 
constexpr int utilities::BIN_EV_DONE = 1
 
constexpr int utilities::BIN_EV_NOT_DONE = 0
 
constexpr int utilities::BIN_EV_SETBROKEN = 2
 

Macro Definition Documentation

◆ _UNUSED

#define _UNUSED   __attribute__ ((unused))

◆ openfile

#define openfile (   a,
 
)    utilities::_openfile(a, b, __FILE__, __LINE__)