OGS
TimeIncrement.h
Go to the documentation of this file.
1
10
#pragma once
11
12
#include <algorithm>
13
#include <cmath>
14
#include <compare>
15
#include <iomanip>
16
#include <limits>
17
18
#include "
MathLib/KahanSum.h
"
19
20
namespace
NumLib
21
{
22
struct
TimeIncrement;
23
}
24
25
template
<>
26
struct
fmt::formatter<
NumLib
::TimeIncrement> : fmt::ostream_formatter
27
{
28
};
29
30
namespace
NumLib
31
{
32
struct
TimeIncrement
33
{
34
constexpr
explicit
TimeIncrement
(
double
const
dt) :
value_
{dt} {}
35
36
constexpr
double
operator()
()
const
{
return
value_
; }
37
38
friend
inline
std::ostream&
operator<<
(std::ostream& os,
39
TimeIncrement
const
& dt)
40
{
41
auto
const
precision = os.precision();
42
return
os << std::setprecision(
43
std::numeric_limits<double>::max_digits10)
44
<< dt.
value_
<< std::setprecision(precision);
45
}
46
47
private
:
48
double
value_
;
49
};
50
51
}
// namespace NumLib
KahanSum.h
NumLib
Definition
ProjectData.h:46
NumLib::TimeIncrement
Definition
TimeIncrement.h:33
NumLib::TimeIncrement::operator<<
friend std::ostream & operator<<(std::ostream &os, TimeIncrement const &dt)
Definition
TimeIncrement.h:38
NumLib::TimeIncrement::operator()
constexpr double operator()() const
Definition
TimeIncrement.h:36
NumLib::TimeIncrement::TimeIncrement
constexpr TimeIncrement(double const dt)
Definition
TimeIncrement.h:34
NumLib::TimeIncrement::value_
double value_
Definition
TimeIncrement.h:48
NumLib
TimeStepping
TimeIncrement.h
Generated by
1.12.0