HQP  1.9.6
Omu_IntRK4 Class Reference

Explicit, fixed step size integrator implementing a Runge Kutta algorithm of 4th order. More...

#include <Omu_IntRK4.h>

Inheritance diagram for Omu_IntRK4:
[legend]

Public Member Functions

 Omu_IntRK4 ()
 constructor
 
 ~Omu_IntRK4 ()
 destructor
 
Implementation of predefined methods.
See Also
Omu_IntODE
const char * name ()
 Name of a specific integrator. More...
 
void ode_solve (double tstart, VECP y, const VECP u, double tend)
 Interface to be implemented by derived ODE solvers. More...
 
- Public Member Functions inherited from Omu_IntODE
 Omu_IntODE ()
 constructor
 
 ~Omu_IntODE ()
 destructor
 
void syseq (double t, const VECP y, const VECP u, VECP f)
 Callback routine for evaluating the model by derived ODE solvers. More...
 
void init (int k, const Omu_StateVec &xc, const Omu_Vec &q, const Omu_DependentVec &Fc, bool sa)
 Initialize integrator, like adaptation of array dimensions and test of pre-conditions, like explicit ODE. More...
 
void solve (int kk, double tstart, double tend, const Omu_VariableVec &x, const Omu_VariableVec &u, Omu_Program *sys, Omu_DependentVec &Ft, Omu_StateVec &xt)
 Solve differential equations over one sample period. More...
 
- Public Member Functions inherited from Omu_Integrator
 Omu_Integrator ()
 constructor
 
virtual ~Omu_Integrator ()
 destructor
 
virtual void setup_stages (const Omu_Program *sys)
 Setup stages for integrator. More...
 
virtual void setup_struct (int k, const Omu_VariableVec &x, const Omu_VariableVec &u, const Omu_DependentVec &Ft)
 Setup struct for one stage k. More...
 
virtual void init_stage (int k, const Omu_VariableVec &x, const Omu_VariableVec &u, const Omu_DependentVec &Ft, bool sa=false)
 Initialize solution of differential equations for stage k. More...
 
virtual void solve (int kk, double tstart, double tend, Omu_StateVec &xc, Omu_StateVec &dxc, Omu_Vec &q, Omu_DependentVec &Fc)
 Solve differential equations over one sample period. More...
 
virtual void residual (int kk, double t, const Omu_StateVec &xc, const Omu_StateVec &dxc, const Omu_Vec &q, Omu_DependentVec &Fc)
 Callback to evaluate residuals of continuous-time equations. More...
 
int K () const
 get number of stages for which integrator has been set up
 

Additional Inherited Members

- Protected Member Functions inherited from Omu_IntODE
void init_stage (int k, const Omu_States &x, const Omu_Vector &u, bool sa=false)
 Initialize solution of differential equations for stage k. More...
 
- Protected Member Functions inherited from Omu_Integrator
virtual void solve (int kk, double tstart, double tend, const Omu_States &x, const Omu_Vector &u, Omu_Program *sys, VECP xt, MATP Sx=MNULL, MATP Su=MNULL)
 Solve differential equations over sample period. More...
 
- Protected Attributes inherited from Omu_Integrator
Omu_Program_sys
 Pointer to problem definition that is valid during solve.
 
int _K
 number of stages for which integrator was set up
 
int _k
 index of current stage
 
int _kk
 index of current sample period
 
int _nxt
 total number of DAE states
 
int _nd
 number of discrete-time states
 
int _nv
 number of expansion variables
 
int _na
 number of algebraic states (no time derivative)
 
int _nx
 number of states treated by optimizer (nx=nxt-nv)
 
int _nu
 number of control parameters
 
int _nq
 number of sensitivity parameters (nq=nx+nu)
 
bool _sa
 Indicate if sensitivity analysis is required together with solution of differential equations.
 
bool _serr
 Boolean to indicate if sensitivities should be considered for error tolerance (default: false).
 
int _n
 Number of continuous-time states during integration (nxt-nd: total number minus discrete-time states).
 
int _m
 Number of control parameters during integration (nd+nu: discrete-time states and actual control parameters).
 
If_List _ifList
 container for interface elements
 
double _stepsize
 Constant stepsize to be taken by integator. More...
 
double _min_stepsize
 Minimal stepsize to be taken by integator. More...
 
double _rtol
 Relative integration error tolerance (only for variable stepsize).
 
double _atol
 Absolute integration error tolerance (only for variable stepsize).
 
int _res_evals
 number of residual evaluations
 
int _sen_evals
 number of sensitivity evaluations
 
int _jac_evals
 number of Jacobian evaluations
 

Detailed Description

Explicit, fixed step size integrator implementing a Runge Kutta algorithm of 4th order.

If _stepsize is not specified, then the integrator takes one step per sample period.

Member Function Documentation

const char* Omu_IntRK4::name ( )
inlinevirtual

Name of a specific integrator.

Implements Omu_Integrator.

void Omu_IntRK4::ode_solve ( double  tstart,
VECP  y,
const VECP  u,
double  tend 
)
virtual

Interface to be implemented by derived ODE solvers.

y contains the initial solution and the result for values and sensitivities (dim(y)=_n=_nxt-_nd without sensitivities, dim(y)=_n*(1+_nxt-_nv+_nu) with sensitivities). u contains discrete-time states and control parameters (dim(u)=_m=_nd+_nu).

See Also
Omu_Integrator for more details about the dimensions.

Implements Omu_IntODE.


The documentation for this class was generated from the following file: