13#ifndef SANDALS_IMPLICIT_SYSTEM_HXX
14#define SANDALS_IMPLICIT_SYSTEM_HXX
37 template <Integer N, Integer M>
42 using Pointer = std::shared_ptr<Implicit<N, M>>;
107 std::string &
name() {
return this->m_name;}
113 std::string
const &
name()
const {
return this->m_name;}
211 return -this->
F(x, -x_dot, -t);
226 return -this->
JF_x(x, -x_dot, -t);
241 return this->
JF_x_dot(x, -x_dot, -t);
std::string m_name
Definition Implicit.hxx:50
virtual bool in_domain(VectorF const &x, Real t) const =0
Integer equations_number() const
Definition Implicit.hxx:119
Integer invariants_number() const
Definition Implicit.hxx:125
MatrixJF JF_x_dot_reverse(VectorF const &x, VectorF const &x_dot, Real t) const
Definition Implicit.hxx:239
bool is_implicit() const
Definition Implicit.hxx:89
virtual VectorH h(VectorF const &x, Real t) const =0
Eigen::Vector< Real, N > VectorF
Definition Implicit.hxx:43
virtual MatrixJF JF_x_dot(VectorF const &x, VectorF const &x_dot, Real t) const =0
std::string const & name() const
Definition Implicit.hxx:113
std::string & name()
Definition Implicit.hxx:107
virtual MatrixJH Jh_x(VectorF const &x, Real t) const =0
Eigen::Matrix< Real, N, N > MatrixJF
Definition Implicit.hxx:44
VectorF F_reverse(VectorF const &x, VectorF const &x_dot, Real t) const
Definition Implicit.hxx:209
virtual ~Implicit()
Definition Implicit.hxx:77
virtual VectorF F(VectorF const &x, VectorF const &x_dot, Real t) const =0
Type type() const
Definition Implicit.hxx:83
Eigen::Vector< Real, M > VectorH
Definition Implicit.hxx:45
Eigen::Matrix< Real, M, N > MatrixJH
Definition Implicit.hxx:46
bool is_explicit() const
Definition Implicit.hxx:95
bool is_semiexplicit() const
Definition Implicit.hxx:101
Implicit(std::string t_name)
Definition Implicit.hxx:72
virtual MatrixJF JF_x(VectorF const &x, VectorF const &x_dot, Real t) const =0
Type m_type
Definition Implicit.hxx:49
Implicit()
Definition Implicit.hxx:66
enum class Type :Integer {IMPLICIT=0, EXPLICIT=1, SEMIEXPLICIT=1} Type
Definition Implicit.hxx:41
std::shared_ptr< Implicit< N, M > > Pointer
Definition Implicit.hxx:42
MatrixJF JF_x_reverse(VectorF const &x, VectorF const &x_dot, Real t) const
Definition Implicit.hxx:224
Implicit(Type t_type, std::string t_name)
Definition Implicit.hxx:59
The namespace for the Sandals library.
Definition Sandals.hh:73
double Real
Definition Sandals.hh:84
int Integer
Definition Sandals.hh:85