13#ifndef SANDALS_EXPLICIT_SYSTEM_HH
14#define SANDALS_EXPLICIT_SYSTEM_HH
40 template <
typename Real, Integer N, Integer M = 0>
86 return x_dot - this->
f(x, t);
107 return -this->
Jf_x(x, t);
127 return MatrixJF::Identity();
162 return -this->
f(x, -t);
174 return -this->
Jf_x(x, -t);
187 return -x_dot - this->
f(x, -t);
202 return -this->
Jf_x(x, -t);
217 return -MatrixJF::Identity();
241 template <
typename Real, Integer N, Integer M = 0>
340 return this->
m_f(x, t);
358 return this->
m_Jf_x(x, t);
369 return this->
m_h(x, t);
387 return this->
m_Jh_x(x, t);
#define SANDALS_BASIC_CONSTANTS(Real)
Definition Sandals.hh:70
VectorF f_reverse(VectorF const &x, Real t) const
Definition Explicit.hh:160
MatrixJF JF_x_reverse(VectorF const &x, VectorF const &, Real t) const
Definition Explicit.hh:200
std::shared_ptr< Explicit< Real, N, M > > Pointer
Definition Explicit.hh:46
Explicit(std::string t_name)
Definition Explicit.hh:69
Explicit(Type t_type, std::string t_name)
Definition Explicit.hh:57
MatrixJF JF_x_dot_reverse(VectorF const &, VectorF const &, Real) const
Definition Explicit.hh:215
MatrixJF JF_x(VectorF const &x, VectorF const &, Real t) const override
Definition Explicit.hh:105
MatrixJF JF_x_dot(VectorF const &, VectorF const &, Real) const override
Definition Explicit.hh:125
virtual MatrixJF Jf_x(VectorF const &x, Real t) const =0
virtual VectorF f(VectorF const &x, Real t) const =0
MatrixJF Jf_x_reverse(VectorF const &x, Real t) const
Definition Explicit.hh:172
typename Implicit< Real, N, M >::Type Type
Definition Explicit.hh:49
Explicit()
Definition Explicit.hh:63
typename Implicit< Real, N, M >::MatrixJF MatrixJF
Definition Explicit.hh:48
VectorF F_reverse(VectorF const &x, VectorF const &x_dot, Real t) const
Definition Explicit.hh:185
VectorF F(VectorF const &x, VectorF const &x_dot, Real t) const override
Definition Explicit.hh:84
typename Implicit< Real, N, M >::VectorF VectorF
Definition Explicit.hh:47
static const FunctionH DefaultH
Definition Explicit.hh:258
typename Explicit< Real, N, M >::MatrixJF MatrixJF
Definition Explicit.hh:249
std::function< MatrixJH(VectorF const &, Real)> FunctionJH
Definition Explicit.hh:255
bool in_domain(VectorF const &x, Real t) const override
Definition Explicit.hh:397
static const FunctionID DefaultID
Definition Explicit.hh:260
FunctionH & h()
Definition Explicit.hh:318
std::shared_ptr< ExplicitWrapper< Real, N, M > > Pointer
Definition Explicit.hh:247
ExplicitWrapper(std::string t_name, FunctionF t_f, FunctionJF t_Jf_x, FunctionH t_h=DefaultH, FunctionJH t_Jh_x=DefaultJH, FunctionID t_in_domain=DefaultID)
Definition Explicit.hh:292
typename Explicit< Real, N, M >::MatrixJH MatrixJH
Definition Explicit.hh:251
FunctionJF & Jf_x()
Definition Explicit.hh:312
FunctionF & f()
Definition Explicit.hh:306
typename Explicit< Real, N, M >::VectorH VectorH
Definition Explicit.hh:250
FunctionID m_in_domain
Definition Explicit.hh:267
MatrixJF Jf_x(VectorF const &x, Real t) const override
Definition Explicit.hh:356
FunctionJF m_Jf_x
Definition Explicit.hh:264
typename Explicit< Real, N, M >::VectorF VectorF
Definition Explicit.hh:248
FunctionF m_f
Definition Explicit.hh:263
FunctionJH & Jh_x()
Definition Explicit.hh:324
FunctionH m_h
Definition Explicit.hh:265
std::function< VectorF(VectorF const &, Real)> FunctionF
Definition Explicit.hh:252
std::function< MatrixJF(VectorF const &, Real)> FunctionJF
Definition Explicit.hh:253
std::function< VectorH(VectorF const &, Real)> FunctionH
Definition Explicit.hh:254
FunctionJH m_Jh_x
Definition Explicit.hh:266
VectorF f(VectorF const &x, Real t) const override
Definition Explicit.hh:338
static const FunctionJH DefaultJH
Definition Explicit.hh:259
MatrixJH Jh_x(VectorF const &x, Real t) const override
Definition Explicit.hh:385
ExplicitWrapper(FunctionF t_f, FunctionJF t_Jf_x, FunctionH t_h=DefaultH, FunctionJH t_Jh_x=DefaultJH, FunctionID t_in_domain=DefaultID)
Definition Explicit.hh:278
FunctionID & in_domain()
Definition Explicit.hh:330
~ExplicitWrapper()
Definition Explicit.hh:300
std::function< bool(VectorF const &, Real)> FunctionID
Definition Explicit.hh:256
VectorH h(VectorF const &x, Real t) const override
Definition Explicit.hh:367
Class container for the system of implicit ODEs/DAEs.
Definition Implicit.hh:42
Implicit(Type t_type, std::string t_name)
Definition Implicit.hh:63
The namespace for the Sandals library.
Definition Sandals.hh:89