Feellgood
time_integration.h
1 #ifndef time_integration_h
2 #define time_integration_h
3 
4 #include "config.h" // gamma0
5 
12 class timing
13  {
14 public:
17  inline timing(const double _tf, const double _dtmin, const double _dtmax)
18  : tf(_tf), DTMIN(_dtmin), DTMAX(_dtmax), TAUR(100. * DTMAX), t(0)
19  {
20  set_dt(sqrt(DTMIN * DTMAX));
21  }
22 
24  const double tf;
25 
27  const double DTMIN; // 1e-14;
28 
30  const double DTMAX; // 1e-5 en stat ; 1e-7 en dynamique;
31 
33  const double TAUR;
34 
36  double prefactor;
37 
39  inline double get_dt() const { return dt; }
40 
42  inline double get_dt_phys() const { return dt / gamma0; }
43 
46  inline void set_dt(const double _dt)
47  {
48  dt = _dt;
49  double t_tilde = _dt / TAUR;
50  prefactor = (1. + t_tilde * abs(log( t_tilde)));
51  }
52 
54  inline bool is_dt_TooSmall() const { return (dt < DTMIN); }
55 
57  inline void inc_t() { t += dt; }
58 
60  inline double get_t() const { return t; }
61 
63  inline double get_t_phys() const { return t / gamma0; }
64 
66  inline void set_t(const double _t) { t = _t; }
67 
68 private:
69  double t;
70  double dt;
71  };
72 
73 #endif
Definition: time_integration.h:13
void set_dt(const double _dt)
Definition: time_integration.h:46
const double DTMIN
Definition: time_integration.h:27
void set_t(const double _t)
Definition: time_integration.h:66
double get_dt_phys() const
Definition: time_integration.h:42
double get_t() const
Definition: time_integration.h:60
const double TAUR
Definition: time_integration.h:33
void inc_t()
Definition: time_integration.h:57
timing(const double _tf, const double _dtmin, const double _dtmax)
Definition: time_integration.h:17
bool is_dt_TooSmall() const
Definition: time_integration.h:54
const double DTMAX
Definition: time_integration.h:30
double get_dt() const
Definition: time_integration.h:39
double dt
Definition: time_integration.h:70
double t
Definition: time_integration.h:69
double get_t_phys() const
Definition: time_integration.h:63
const double tf
Definition: time_integration.h:24
double prefactor
Definition: time_integration.h:36