![]() |
Stan Math Library
5.1.0
Automatic Differentiation
|
For each type of Ode(with different rhs functor F and senstivity parameters), we allocate mem and workspace for idas.
This service manages the allocation/deallocation, so ODE systems only request service by injection.
| ode | ode type |
| lmm_type | IDAS solver type (BDF & ADAMS) |
| butcher_tab | AKRODE Butcher table |
Definition at line 32 of file idas_service.hpp.
#include <idas_service.hpp>
Public Member Functions | |
| idas_service (double t0, dae_type &dae) | |
| Construct IDAS ODE mem & workspace. | |
| ~idas_service () | |
| template<typename dae_t = dae_type, std::enable_if_t<!dae_t::use_fwd_sens > * = nullptr> | |
| void | idas_sens_init (N_Vector *yys, N_Vector *yps, int ns, int n) |
| template<typename dae_t = dae_type, std::enable_if_t< dae_t::use_fwd_sens > * = nullptr> | |
| void | idas_sens_init (N_Vector *&yys, N_Vector *&yps, int ns, int n) |
| template<typename dae_t = dae_type, std::enable_if_t< dae_t::is_var_yy0 &&dae_t::is_var_yp0 > * = nullptr> | |
| void | set_init_sens (N_Vector *&yys, N_Vector *&yps, int n) |
| template<typename dae_t = dae_type, std::enable_if_t< dae_t::is_var_yy0 &&(!dae_t::is_var_yp0)> * = nullptr> | |
| void | set_init_sens (N_Vector *&yys, N_Vector *&yps, int n) |
| template<typename dae_t = dae_type, std::enable_if_t<(!dae_t::is_var_yy0) &&dae_t::is_var_yp0 > * = nullptr> | |
| void | set_init_sens (N_Vector *&yys, N_Vector *&yps, int n) |
| template<typename dae_t = dae_type, std::enable_if_t<(!dae_t::is_var_yy0) &&(!dae_t::is_var_yp0)> * = nullptr> | |
| void | set_init_sens (N_Vector *&yys, N_Vector *&yps, int n) |
Public Attributes | |
| sundials::Context | sundials_context_ |
| int | ns |
| N_Vector | nv_yy |
| N_Vector | nv_yp |
| N_Vector * | nv_yys |
| N_Vector * | nv_yps |
| void * | mem |
| SUNMatrix | A |
| SUNLinearSolver | LS |