Sandals
v0.0.0
A C++ library for ODEs/DAEs integration
|
Class container for the system of implicit ODEs/DAEs. More...
#include <Implicit.hxx>
Inherited by Sandals::Explicit< N, 0 >, and Sandals::Explicit< N, M >.
Public Types | |
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 | |
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 VectorF | F (VectorF const &x, VectorF const &x_dot, Real t) const =0 |
virtual MatrixJF | JF_x (VectorF const &x, VectorF const &x_dot, Real t) const =0 |
virtual MatrixJF | JF_x_dot (VectorF const &x, VectorF const &x_dot, Real t) const =0 |
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 |
Protected Member Functions | |
Implicit (Type t_type, std::string t_name) | |
Private Attributes | |
Type | m_type {Type::IMPLICIT} |
std::string | m_name |
Class container for the system of inplicit ordinary differential equations (ODEs) or differential algebraic equations (DAEs) of the type \( \mathbf{F}(\mathbf{x}, \mathbf{x}^{\prime}, t) = \mathbf{0} \), with invariants manifold \( \mathbf{h}(\mathbf{x}, t) = \mathbf{0} \).
N | The dimension of the implicit ODE system. |
M | The dimension of the invariants manifold. |
using Sandals::Implicit< N, M >::MatrixJF = Eigen::Matrix<Real, N, N> |
Templetized matrix type.
using Sandals::Implicit< N, M >::MatrixJH = Eigen::Matrix<Real, M, N> |
Templetized matrix type.
using Sandals::Implicit< N, M >::Pointer = std::shared_ptr<Implicit<N, M>> |
Shared pointer to an implicit ODE system.
using Sandals::Implicit< N, M >::Type = enum class Type : Integer {IMPLICIT=0, EXPLICIT=1, SEMIEXPLICIT=1} |
System type enumeration.
using Sandals::Implicit< N, M >::VectorF = Eigen::Vector<Real, N> |
Templetized vector type.
using Sandals::Implicit< N, M >::VectorH = Eigen::Vector<Real, M> |
Templetized vector type.
|
inlineprotected |
Class constructor for an implicit ODE/DAE system.
[in] | t_type | The type of the implicit ODE/DAE system. |
[in] | t_name | The name of the implicit ODE/DAE system. |
|
inline |
Class constructor for an implicit ODE/DAE system.
|
inline |
Class constructor for an implicit ODE/DAE system.
[in] | t_name | The name of the implicit ODE/DAE system. |
|
inlinevirtual |
Class destructor for an implicit ODE/DAE system.
|
inline |
Get the number of equations of the ODE/DAE system.
|
pure virtual |
Evaluate the ODE/DAE system \( \mathbf{F}(\mathbf{x}, \mathbf{x}^{\prime}, t) \).
[in] | x | States \( \mathbf{x} \). |
[in] | x_dot | States derivative \( \mathbf{x}^{\prime} \). |
[in] | t | Independent variable (or time) \( t \). |
Implemented in Sandals::Explicit< N, M >, Sandals::Explicit< N, 0 >, Sandals::Linear< N, M >, and Sandals::SemiExplicit< N, M >.
|
inline |
Time reversal of the implicit ODE system function \( \mathbf{F}(\mathbf{x}, \mathbf{x}^{ \prime}, t) = -\mathbf{F}(\mathbf{x}, -\mathbf{x}^{\prime}, -t) \).
[in] | x | States \( \mathbf{x} \). |
[in] | x_dot | States derivative \( \mathbf{x}^{\prime} \). |
[in] | t | Independent variable (or time) \( t \). |
|
pure virtual |
Evaluate the ODE/DAE system invariants \( \mathbf{h}(\mathbf{x}, t) \).
[in] | x | States \( \mathbf{x} \). |
[in] | t | Independent variable (or time) \( t \). |
|
pure virtual |
Return true if the values \( \mathbf{F}(\mathbf{x}, \mathbf{x}^{\prime}, t) \) is in the domain of the ODE/DAE system.
[in] | x | States \( \mathbf{x} \). |
[in] | t | Independent variable (or time) \( t \). |
|
inline |
Get the number of invariants of the ODE/DAE system.
|
inline |
Check if the ODE/DAE system is explicit.
|
inline |
Check if the ODE/DAE system is implicit.
|
inline |
Check if the ODE/DAE system is semi-explicit.
|
pure virtual |
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}} \text{.} \]
[in] | x | States \( \mathbf{x} \). |
[in] | x_dot | States derivative \( \mathbf{x}^{\prime} \). |
[in] | t | Independent variable (or time) \( t \). |
Implemented in Sandals::Explicit< N, M >, Sandals::Explicit< N, 0 >, Sandals::Linear< N, M >, and Sandals::SemiExplicit< N, M >.
|
pure virtual |
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}} \text{.} \]
[in] | x | States \( \mathbf{x} \). |
[in] | x_dot | States derivative \( \mathbf{x}^{\prime} \). |
[in] | t | Independent variable (or time) \( t \). |
Implemented in Sandals::Explicit< N, M >, Sandals::Explicit< N, 0 >, Sandals::Linear< N, M >, and Sandals::SemiExplicit< N, M >.
|
inline |
Time reversal of the Jacobian of the implicit ODE 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) \).
[in] | x | States \( \mathbf{x} \). |
[in] | x_dot | States derivative \( \mathbf{x}^{\prime} \). |
[in] | t | Independent variable (or time) \( t \). |
|
inline |
Time reversal of the Jacobian of the implicit ODE 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) \).
[in] | x | States \( \mathbf{x} \). |
[in] | x_dot | States derivative \( \mathbf{x}^{\prime} \). |
[in] | t | Independent variable (or time) \( t \). |
|
pure virtual |
Evaluate the Jacobian of the ODE/DAE system invariants \( \mathbf{h}(\mathbf{x}, t) \) with respect to the states \( \mathbf{x} \)
\[\mathbf{Jh}_{\mathbf{x}}(\mathbf{x} t) = \displaystyle\frac{\partial\mathbf{h}(\mathbf{x}, t)}{\partial\mathbf{x}} \text{.} \]
[in] | x | States \( \mathbf{x} \). |
[in] | t | Independent variable (or time) \( t \). |
|
inline |
Get the ODE/DAE system name reference.
|
inline |
Get the ODE/DAE system name const reference.
|
inline |
Get the enumeration type of the ODE/DAE system.
|
private |
Name of the ODE/DAE system.
|
private |
ODE/DAE system type.