18 using Ptr = std::shared_ptr<ODEInterface>;
27 using StSpFn = std::function<void(
double,
const double *,
double *)>;
29 using JacFn = std::function<void(
double,
const double *,
double *,
double *,
30 double *,
double *,
double *)>;
34 virtual void odeStateSpace(
double t,
const double y[],
double ydot[]) = 0;
37 virtual void odeJacobian(
double t,
const double y[],
double fy[],
double J[],
38 double tmp1[],
double tmp2[],
double tmp3[]) = 0;
AttributePointer< Attribute< T > > Ptr
std::shared_ptr< AttributeList > Ptr
const CPS::Attribute< Matrix >::Ptr mOdePostState
ODEInterface(AttributeList::Ptr attrList)
virtual void odeStateSpace(double t, const double y[], double ydot[])=0
State Space Equation System for ODE Solver.
const CPS::Attribute< Matrix >::Ptr mOdePreState
std::function< void(double, const double *, double *)> StSpFn
Use this to pass the individual components StateSpace implementation to the ODESolver class.
std::function< void(double, const double *, double *, double *, double *, double *, double *)> JacFn
const CPS::AttributeList::Ptr mAttributeList
std::shared_ptr< ODEInterface > Ptr
virtual void odeJacobian(double t, const double y[], double fy[], double J[], double tmp1[], double tmp2[], double tmp3[])=0
Jacobian Matrix (of State Space System) needed for implicit solve.
Eigen::Matrix< Real, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor > Matrix
Dense matrix for real numbers.