|
Sandals
v0.0.0
A C++ library for ODEs/DAEs integration
|
Class container for the system of semi-explicit ODEs/DAEs wrapper. More...
#include <SemiExplicit.hh>
Inherits Sandals::SemiExplicit< Real, N, 0 >.
Public Types | |
| using | Pointer = std::shared_ptr<SemiExplicitWrapper<Real, N, M>> |
| using | FunctionA = std::function<MatrixA(VectorF const &, Real const)> |
| using | FunctionTA = std::function<TensorTA(VectorF const &, Real const)> |
| using | FunctionB = std::function<VectorB(VectorF const &, Real const)> |
| using | FunctionJB = std::function<MatrixJB(VectorF const &, Real const)> |
| using | FunctionH = std::function<VectorH(VectorF const &, Real const)> |
| using | FunctionJH = std::function<MatrixJH(VectorF const &, Real const)> |
| using | FunctionID = std::function<bool(VectorF const &, Real const)> |
| Public Types inherited from Sandals::SemiExplicit< Real, N, 0 > | |
| using | Pointer |
| using | VectorF |
| using | MatrixJF |
| using | MatrixA |
| using | TensorTA |
| using | VectorB |
| using | MatrixJB |
| using | Type |
| Public Types inherited from Sandals::Explicit< Real, N, M > | |
| using | Pointer |
| using | VectorF |
| using | MatrixJF |
| using | Type |
| Public Types inherited from Sandals::Implicit< Real, N, M > | |
| using | Type |
| using | Pointer |
| using | VectorF |
| using | MatrixJF |
| using | VectorH |
| using | MatrixJH |
Public Member Functions | |
| SemiExplicitWrapper (FunctionA t_A, FunctionTA t_TA_x, FunctionB t_b, FunctionJB t_Jb_x, FunctionH t_h=DefaultH, FunctionJH t_Jh_x=DefaultJH, FunctionID t_in_domain=DefaultID) | |
| SemiExplicitWrapper (std::string t_name, FunctionA t_A, FunctionTA t_TA_x, FunctionB t_b, FunctionJB t_Jb_x, FunctionH t_h=DefaultH, FunctionJH t_Jh_x=DefaultJH, FunctionID t_in_domain=DefaultID) | |
| ~SemiExplicitWrapper () | |
| FunctionA & | A () |
| FunctionTA & | TA_x () |
| FunctionB & | b () |
| FunctionJB & | Jb_x () |
| FunctionH & | h () |
| FunctionJH & | Jh_x () |
| FunctionID & | in_domain () |
| MatrixA | A (VectorF const &x, Real const t) const override |
| TensorTA | TA_x (VectorF const &x, Real const t) const override |
| VectorB | b (VectorF const &x, Real const t) const override |
| MatrixJB | Jb_x (VectorF const &x, Real const t) const override |
| VectorH | h (VectorF const &x, Real const t) const override |
| MatrixJH | Jh_x (VectorF const &x, Real const t) const override |
| bool | in_domain (VectorF const &x, Real const t) const override |
| Public Member Functions inherited from Sandals::SemiExplicit< Real, N, 0 > | |
| SemiExplicit () | |
| VectorF | F (VectorF const &x, VectorF const &x_dot, Real const t) const override |
| MatrixJF | JF_x (VectorF const &x, VectorF const &x_dot, Real const t) const override |
| MatrixJF | JF_x_dot (VectorF const &x, VectorF const &, Real const t) const override |
| VectorF | f (VectorF const &x, Real const t) const override |
| MatrixJF | Jf_x (VectorF const &x, VectorF const &x_dot, Real const t) const |
| Public Member Functions inherited from Sandals::Explicit< Real, N, M > | |
| virtual MatrixJF | Jf_x (VectorF const &x, Real const t) const=0 |
| VectorF | f_reverse (VectorF const &x, Real const t) const |
| MatrixJF | Jf_x_reverse (VectorF const &x, Real const t) const |
| VectorF | F_reverse (VectorF const &x, VectorF const &x_dot, Real const t) const |
| MatrixJF | JF_x_reverse (VectorF const &x, VectorF const &, Real const t) const |
| MatrixJF | JF_x_dot_reverse (VectorF const &, VectorF const &, Real) const |
| Public Member Functions inherited from Sandals::Implicit< Real, N, M > | |
| virtual | ~Implicit () |
| Type | type () const |
| bool | is_implicit () const |
| bool | is_explicit () const |
| bool | is_semiexplicit () const |
| std::string & | name () |
| Integer | equations_number () const |
| Integer | invariants_number () const |
| VectorF | F_reverse (VectorF const &x, VectorF const &x_dot, Real const t) const |
| MatrixJF | JF_x_reverse (VectorF const &x, VectorF const &x_dot, Real const t) const |
| MatrixJF | JF_x_dot_reverse (VectorF const &x, VectorF const &x_dot, Real const t) const |
Static Public Attributes | |
| static const FunctionH | DefaultH = [](VectorF const &, Real const) {return VectorH::Zero();} |
| static const FunctionJH | DefaultJH = [](VectorF const &, Real const) {return MatrixJH::Zero();} |
| static const FunctionID | DefaultID = [](VectorF const &, Real const) {return true;} |
Private Attributes | |
| FunctionA | m_A {nullptr} |
| FunctionTA | m_TA_x {nullptr} |
| FunctionB | m_b {nullptr} |
| FunctionJB | m_Jb_x {nullptr} |
| FunctionH | m_h {nullptr} |
| FunctionJH | m_Jh_x {nullptr} |
| FunctionID | m_in_domain {nullptr} |
Additional Inherited Members | |
| Protected Member Functions inherited from Sandals::Explicit< Real, N, M > | |
| Explicit (Type t_type, std::string t_name) | |
| Protected Member Functions inherited from Sandals::Implicit< Real, N, M > | |
| Implicit (Type t_type, std::string t_name) | |
Class container for the system of semi-explicit ordinary differential equations (ODEs) or differential algebraic equations (DAEs)of the type \( \mathbf{A}(\mathbf{x}, t) \mathbf{x}^{\prime} = \mathbf{b}(\mathbf{x}, t) \), with invariants manifold \( \mathbf{h}( \mathbf{x}, t) = \mathbf{0} \).
| Real | const The scalar number type. |
| N | The dimension of the semi-explicit ODE system. |
| M | The dimension of the invariants manifold. |
| using Sandals::SemiExplicitWrapper< Real, N, M >::FunctionA = std::function<MatrixA(VectorF const &, Real const)> |
< Templetized invariants Jacobian type. Function type for the mass matrix.
| using Sandals::SemiExplicitWrapper< Real, N, M >::FunctionB = std::function<VectorB(VectorF const &, Real const)> |
Function type for the right-hand-side.
| using Sandals::SemiExplicitWrapper< Real, N, M >::FunctionH = std::function<VectorH(VectorF const &, Real const)> |
Invariants function type.
| using Sandals::SemiExplicitWrapper< Real, N, M >::FunctionID = std::function<bool(VectorF const &, Real const)> |
In-domain function type.
| using Sandals::SemiExplicitWrapper< Real, N, M >::FunctionJB = std::function<MatrixJB(VectorF const &, Real const)> |
Function type for the right-hand-side Jacobian.
| using Sandals::SemiExplicitWrapper< Real, N, M >::FunctionJH = std::function<MatrixJH(VectorF const &, Real const)> |
Jacobian of the invariants function type.
| using Sandals::SemiExplicitWrapper< Real, N, M >::FunctionTA = std::function<TensorTA(VectorF const &, Real const)> |
Function type for the mass matrix.
| using Sandals::SemiExplicitWrapper< Real, N, M >::Pointer = std::shared_ptr<SemiExplicitWrapper<Real, N, M>> |
Shared pointer to a semi-explicit ODE/DAE system.
|
inline |
Class constructor for the semi-explicit ODE/DAE system wrapper.
| [in] | t_A | The function for the mass matrix. |
| [in] | t_TA_x | The function for the mass matrix. |
| [in] | t_b | The function for the right-hand-side. |
| [in] | t_Jb_x | The function for the right-hand-side Jacobian. |
| [in] | t_h | The invariants function. |
| [in] | t_Jh_x | The Jacobian of the invariants function. |
| [in] | t_in_domain | The in-domain function. |
|
inline |
Class constructor for the semi-explicit ODE/DAE system wrapper.
| [in] | t_name | The name of the semi-explicit ODE/DAE system. |
| [in] | t_A | The function for the mass matrix. |
| [in] | t_TA_x | The function for the mass matrix. |
| [in] | t_b | The function for the right-hand-side. |
| [in] | t_Jb_x | The function for the right-hand-side Jacobian. |
| [in] | t_h | The invariants function. |
| [in] | t_Jh_x | The Jacobian of the invariants function. |
| [in] | t_in_domain | The in-domain function. |
|
inline |
Class destructor for the semi-explicit ODE/DAE system wrapper.
|
inline |
Get the function for the mass matrix.
|
inlineoverridevirtual |
Evaluate th e semi-explicit ODE/DAE system mass matrix \( \mathbf{A}(\mathbf{x}, t) \).
| [in] | x | States \( \mathbf{x} \). |
| [in] | t | Independent variable (or time) \( t \). |
Implements Sandals::SemiExplicit< Real, N, 0 >.
|
inline |
Get the function for the right-hand-side.
|
inlineoverridevirtual |
Evaluate the semi-explicit ODE/DAE system right-hand-side function \( \mathbf{b}(\mathbf{x}, t) \).
| [in] | x | States \( \mathbf{x} \). |
| [in] | t | Independent variable (or time) \( t \). |
Implements Sandals::SemiExplicit< Real, N, 0 >.
|
inline |
Get the system's invariants.
|
inlineoverridevirtual |
Evaluate the ODE/DAE system invariants \( \mathbf{h}(\mathbf{x}, t) \).
| [in] | x | States \( \mathbf{x} \). |
| [in] | t | Independent variable (or time) \( t \). |
Implements Sandals::Implicit< Real, N, M >.
|
inline |
Get the in-domain function.
|
inlineoverridevirtual |
Return true if the values \( \mathbf{f}(\mathbf{x}, t) \) is in the domain of the ODE/DAE system.
| [in] | x | States \( \mathbf{x} \). |
| [in] | t | Independent variable (or time) \( t \). |
Implements Sandals::Implicit< Real, N, M >.
|
inline |
Get the function for the right-hand-side Jacobian.
|
inlineoverridevirtual |
Evaluate the Jacobian of the semi-explicit ODE/DAE system right-hand-side function \( \mathbf{b} (\mathbf{x}, t) \) with respect to the states \( \mathbf{x} \)
\[\mathbf{Jb}_{\mathbf{x}}(\mathbf{x}, t) = \displaystyle\frac{\partial\mathbf{b}(\mathbf{x}, t)}{\partial\mathbf{x}} \text{.} \]
| [in] | x | States \( \mathbf{x} \). |
| [in] | t | Independent variable (or time) \( t \). |
Implements Sandals::SemiExplicit< Real, N, 0 >.
|
inline |
Get the Jacobian of the system's invariants with respect to the states.
|
inlineoverridevirtual |
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 \). |
Implements Sandals::Implicit< Real, N, M >.
|
inline |
Get the function for the mass matrix tensor with respect to the states.
|
inlineoverridevirtual |
Evaluate the tensor of the semi-explicit ODE/DAE system mass matrix \( \mathbf{A}(\mathbf{x}, t) \) with respect to the states \( \mathbf{x} \)
\[\mathbf{TA}_{\mathbf{x}}(\mathbf{x}, t) = \displaystyle\frac{\partial\mathbf{A}(\mathbf{x}, t)}{\partial\mathbf{x}} \text{.} \]
| [in] | x | States \( \mathbf{x} \). |
| [in] | t | Independent variable (or time) \( t \). |
Implements Sandals::SemiExplicit< Real, N, 0 >.
|
inlinestatic |
Default mass matrix function.
|
inlinestatic |
Default in-domain function.
|
inlinestatic |
Default system matrix function.
|
private |
Function for the mass matrix.
|
private |
Function for the right-hand-side.
|
private |
Invariants function.
|
private |
In-domain function.
|
private |
Function for the right-hand-side Jacobian.
|
private |
Jacobian of the invariants function.
|
private |
Function for the mass matrix.