OGS 6.2.1-499-g3b941532c.dirty.20191012113459
ODESolverTypes.h
Go to the documentation of this file.
1 
11 #pragma once
12 
13 #include <functional>
14 #include <Eigen/Core>
15 
16 namespace MathLib
17 {
18 namespace ODE
19 {
22 
31 template <int N, int M>
32 using MappedMatrix = Eigen::Map<Eigen::Matrix<double, N, M, Eigen::ColMajor>>;
33 
35 template <int N, int M>
36 using MappedConstMatrix =
37  Eigen::Map<const Eigen::Matrix<double, N, M, Eigen::ColMajor>>;
38 
40 template <int N>
42 
44 template <int N>
46 
53 template <unsigned N>
54 using Function = std::function<bool(
55  const double t, MappedConstVector<N> const& y, MappedVector<N>& ydot)>;
56 
63 template <unsigned N>
64 using JacobianFunction = std::function<bool(const double t,
65  MappedConstVector<N> const& y,
66  MappedConstVector<N> const& ydot,
68 
70 
71 } // namespace ODE
72 } // namespace MathLib
std::function< bool(const double t, MappedConstVector< N > const &y, MappedConstVector< N > const &ydot, MappedMatrix< N, N > &jac)> JacobianFunction
MappedConstMatrix< N, 1 > MappedConstVector
std::function< bool(const double t, MappedConstVector< N > const &y, MappedVector< N > &ydot)> Function
Eigen::Map< Eigen::Matrix< double, N, M, Eigen::ColMajor > > MappedMatrix
MappedMatrix< N, 1 > MappedVector
Eigen::Map< const Eigen::Matrix< double, N, M, Eigen::ColMajor > > MappedConstMatrix
Behaves like a const Eigen::Matrix.