Sandals
v0.0.0
A C++ library for ODEs/DAEs integration
|
Class container for the system of linear ODEs/DAEs. More...
#include <Linear.hxx>
Inherits Sandals::Explicit< N, 0 >.
Public Types | |
using | Pointer = std::shared_ptr<SemiExplicit<N, M>> |
using | VectorF = typename Explicit<N, M>::VectorF |
using | MatrixJF = typename Explicit<N, M>::MatrixJF |
using | MatrixE = typename Explicit<N, M>::MatrixJF |
using | MatrixA = typename Explicit<N, M>::MatrixJF |
using | VectorB = typename Explicit<N, M>::VectorF |
using | Type = typename Explicit<N, M>::Type |
![]() | |
using | Pointer |
using | VectorF |
using | MatrixJF |
using | Type |
![]() | |
using | Type = enum class Type : Integer {IMPLICIT=0, EXPLICIT=1, SEMIEXPLICIT=1} |
using | Pointer = std::shared_ptr<Implicit<N, M>> |
using | VectorF = Eigen::Vector<Real, N> |
using | MatrixJF = Eigen::Matrix<Real, N, N> |
using | VectorH = Eigen::Vector<Real, M> |
using | MatrixJH = Eigen::Matrix<Real, M, N> |
Public Member Functions | |
Linear () | |
Linear (std::string t_name) | |
VectorF | F (VectorF const &x, VectorF const &x_dot, Real t) const override |
MatrixJF | JF_x (VectorF const &, VectorF const &, Real t) const override |
MatrixJF | JF_x_dot (VectorF const &, VectorF const &, Real t) const override |
VectorF | f (VectorF const &x, Real t) const override |
MatrixJF | Jf_x (VectorF const &, Real t) const override |
virtual MatrixE | E (Real t) const =0 |
virtual MatrixA | A (Real t) const =0 |
virtual VectorB | b (Real t) const =0 |
![]() | |
Explicit () | |
Explicit (std::string t_name) | |
VectorF | f_reverse (VectorF const &x, Real t) const |
MatrixJF | Jf_x_reverse (VectorF const &x, Real t) const |
VectorF | F_reverse (VectorF const &x, VectorF const &x_dot, Real t) const |
MatrixJF | JF_x_reverse (VectorF const &x, VectorF const &, Real t) const |
MatrixJF | JF_x_dot_reverse (VectorF const &, VectorF const &, Real) const |
![]() | |
Implicit () | |
Implicit (std::string t_name) | |
virtual | ~Implicit () |
Type | type () const |
bool | is_implicit () const |
bool | is_explicit () const |
bool | is_semiexplicit () const |
std::string & | name () |
std::string const & | name () const |
Integer | equations_number () const |
Integer | invariants_number () const |
virtual VectorH | h (VectorF const &x, Real t) const =0 |
virtual MatrixJH | Jh_x (VectorF const &x, Real t) const =0 |
virtual bool | in_domain (VectorF const &x, Real t) const =0 |
VectorF | F_reverse (VectorF const &x, VectorF const &x_dot, Real t) const |
MatrixJF | JF_x_reverse (VectorF const &x, VectorF const &x_dot, Real t) const |
MatrixJF | JF_x_dot_reverse (VectorF const &x, VectorF const &x_dot, Real t) const |
Private Attributes | |
Eigen::FullPivLU< MatrixE > | m_lu |
Additional Inherited Members | |
![]() | |
Explicit (Type t_type, std::string t_name) | |
![]() | |
Implicit (Type t_type, std::string t_name) | |
Class container for the system of linear ordinary differential equations (ODEs) or differential algebraic equations (DAEs) of the type \mathbf{E}(t)\mathbf{x}^{\prime} = \mathbf{A}(t) \mathbf{x} + \mathbf{b}(t) , with invariants manifold \mathbf{h}(\mathbf{x}, t) = \mathbf{0} .
N | The dimension of the semi-explicit ODE system. |
M | The dimension of the invariants manifold. |
using Sandals::Linear< N, M >::MatrixA = typename Explicit<N, M>::MatrixJF |
Templetized matrix type.
using Sandals::Linear< N, M >::MatrixE = typename Explicit<N, M>::MatrixJF |
Templetized matrix type.
using Sandals::Linear< N, M >::MatrixJF = typename Explicit<N, M>::MatrixJF |
Templetized matrix type.
using Sandals::Linear< N, M >::Pointer = std::shared_ptr<SemiExplicit<N, M>> |
Shared pointer to a semi-explicit ODE/DAE system.
using Sandals::Linear< N, M >::Type = typename Explicit<N, M>::Type |
System type enumeration.
using Sandals::Linear< N, M >::VectorB = typename Explicit<N, M>::VectorF |
Templetized vector type.
using Sandals::Linear< N, M >::VectorF = typename Explicit<N, M>::VectorF |
Templetized vector type.
|
inline |
Class constructor for the linear ODE/DAE system.
|
inline |
Class constructor for the linear ODE/DAE system.
[in] | t_name | The name of the linear ODE/DAE system. |
|
pure virtual |
Evaluate the linear ODE/DAE system matrix \mathbf{A}(t) .
[in] | t | Independent variable (or time) t . |
|
pure virtual |
Evaluate the linear ODE/DAE system vector \mathbf{b}(t) .
[in] | t | Independent variable (or time) t . |
|
pure virtual |
Evaluate the linear ODE/DAE system mass matrix \mathbf{E}(t) .
[in] | t | Independent variable (or time) t . |
|
inlineoverridevirtual |
Evaluate the ODE/DAE system \mathbf{F}(\mathbf{x}, \mathbf{x}^{\prime}, t) .
\mathbf{F}(\mathbf{x}, \mathbf{x}^{\prime}, t) = \mathbf{E}(t) \mathbf{x}^{\prime} - \mathbf{A}(t) \mathbf{x} - \mathbf{b}(t)
[in] | x | States \mathbf{x} . |
[in] | x_dot | States derivative \mathbf{x}^{\prime} . |
[in] | t | Independent variable (or time) t . |
Reimplemented from Sandals::Explicit< N, 0 >.
|
inlineoverridevirtual |
Evaluate the explicit ODE/DAE system function \mathbf{f}(\mathbf{x}, t) as
\mathbf{f}(\mathbf{x}, t) = \mathbf{E}(t)^{-1}(\mathbf{A}(t)\mathbf{x} + \mathbf{b}(t))
[in] | x | States \mathbf{x} . |
[in] | t | Independent variable (or time) t . |
Implements Sandals::Explicit< N, 0 >.
|
inlineoverridevirtual |
Evaluate the Jacobian of the ODE/DAE system function \mathbf{F}(\mathbf{x}, \mathbf{x}^{\prime}, t) with respect to the states \mathbf{x}
\mathbf{JF}_{\mathbf{x}}(\mathbf{x}, \mathbf{x}^{\prime}, t) = \displaystyle\frac{\partial\mathbf{F}(\mathbf{x}, \mathbf{x}^{\prime}, t)}{\partial\mathbf{x}} = -\mathbf{A}(t) \text{.}
[in] | x | States \mathbf{x} . |
[in] | x_dot | States derivative \mathbf{x}^{\prime} . |
[in] | t | Independent variable (or time) t . |
Reimplemented from Sandals::Explicit< N, 0 >.
|
inlineoverridevirtual |
Evaluate the Jacobian of the explicit ODE/DAE system function \mathbf{f}(\mathbf{x}, t) with respect to the states \mathbf{x}
\mathbf{Jf}_{\mathbf{x}}(\mathbf{x}, t) = \displaystyle\frac{\partial\mathbf{f}( \mathbf{x}, t)}{\partial\mathbf{x}} = \mathbf{E}(t)^{-1} \mathbf{A}(t) \text{.}
[in] | x | States \mathbf{x} . |
[in] | t | Independent variable (or time) t . |
Implements Sandals::Explicit< N, 0 >.
|
inlineoverridevirtual |
Evaluate the Jacobian of the ODE/DAE system function \mathbf{F}(\mathbf{x}, \mathbf{x}^{\prime}, t) with respect to the states derivative \mathbf{x}^{\prime}
\mathbf{JF}_{\mathbf{x}^{\prime}}(\mathbf{x}, \mathbf{x}^{\prime}, t) = \displaystyle \frac{\partial\mathbf{F}(\mathbf{x}, \mathbf{x}^{\prime}, t)}{\partial\mathbf{x}^{\prime}} = \mathbf{E}(t) \text{.}
[in] | x | States \mathbf{x} . |
[in] | x_dot | States derivative \mathbf{x}^{\prime} . |
[in] | t | Independent variable (or time) t . |
Reimplemented from Sandals::Explicit< N, 0 >.
|
private |
LU decomposition.