numerics
0.1.0
Loading...
Searching...
No Matches
algorithms.hpp
Go to the documentation of this file.
1
/// @file solve/algorithms.hpp
2
/// @brief Algorithm tags: carry the numerics, not the mathematics.
3
#pragma once
4
5
#include "
core/types.hpp
"
6
#include "
linalg/solvers/linear_solver.hpp
"
7
8
namespace
num
{
9
10
struct
Euler
{
11
double
h
= 1
e
-3;
12
};
13
14
struct
RK4
{
15
double
h
= 1
e
-3;
16
};
17
18
struct
RK45
{
19
double
h
= 1
e
-3;
20
double
rtol
= 1
e
-6;
21
double
atol
= 1
e
-9;
22
idx
max_steps
= 1000000;
23
};
24
25
struct
BackwardEuler
{
26
LinearSolver
solver
;
27
double
dt
;
28
int
nstep
;
29
};
30
31
struct
Metropolis
{
32
int
equilibration
= 1000;
33
int
measurements
= 500;
34
};
35
36
}
// namespace num
types.hpp
Core type definitions.
linear_solver.hpp
Universal linear solver callable type.
num
Definition
quadrature.hpp:8
num::LinearSolver
std::function< SolverResult(const Vector &rhs, Vector &x)> LinearSolver
Callable that solves .
Definition
linear_solver.hpp:12
num::idx
std::size_t idx
Definition
types.hpp:11
num::e
constexpr real e
Definition
math.hpp:44
num::BackwardEuler
Definition
algorithms.hpp:25
num::BackwardEuler::solver
LinearSolver solver
Definition
algorithms.hpp:26
num::BackwardEuler::nstep
int nstep
Definition
algorithms.hpp:28
num::BackwardEuler::dt
double dt
Definition
algorithms.hpp:27
num::Euler
Definition
algorithms.hpp:10
num::Euler::h
double h
Definition
algorithms.hpp:11
num::Metropolis
Definition
algorithms.hpp:31
num::Metropolis::equilibration
int equilibration
Definition
algorithms.hpp:32
num::Metropolis::measurements
int measurements
Definition
algorithms.hpp:33
num::RK45
Definition
algorithms.hpp:18
num::RK45::max_steps
idx max_steps
Definition
algorithms.hpp:22
num::RK45::atol
double atol
Definition
algorithms.hpp:21
num::RK45::rtol
double rtol
Definition
algorithms.hpp:20
num::RK45::h
double h
Definition
algorithms.hpp:19
num::RK4
Definition
algorithms.hpp:14
num::RK4::h
double h
Definition
algorithms.hpp:15
include
solve
algorithms.hpp
Generated by
1.9.8