Omu_IntOdeTs Class Reference

#include <Omu_IntOdeTs.h>

Inheritance diagram for Omu_IntOdeTs:

Inheritance graph
base refererrect $classOmu__Integrator.html 7,7 121,34
[legend]
Collaboration diagram for Omu_IntOdeTs:

Collaboration graph
base refererrect $classOmu__Integrator.html 387,604 502,631rect $classOmu__SVec.html 688,479 779,506rect $classOmu__StateVec.html 527,290 639,316rect $classOmu__Vec.html 311,124 391,151rect $classOmu__DependentVec.html 154,290 300,316rect $classOmu__VariableVec.html 375,290 503,316rect $classMesch_1_1VECP.html 299,7 403,34rect $classMesch_1_1MATP.html 531,7 635,34rect $classOmu__Jacobian.html 175,124 287,151rect $classOmu__DepVec.html 103,479 207,506rect $classMesch_1_1IVECP.html 7,7 116,34rect $classOmu__Program.html 555,479 664,506
[legend]

List of all members.


Detailed Description

Solving autonomous ordinary differential equations using Taylor series expansion.

The implementation is adapted from the driver routine forodec of the adol-c automatic differentiation code.

Public Member Functions

 Omu_IntOdeTs (int)
 constructor
 Omu_IntOdeTs ()
 constructor
 ~Omu_IntOdeTs ()
 destructor
Implementation of predefined methods.
See also:
Omu_Integrator


char * name ()
 Name of a specific integrator.
void init_stage (int k, const Omu_VariableVec &x, const Omu_VariableVec &u, const Omu_DependentVec &Ft, bool sa)
 Initialize solution of differential equations for stage k.
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.

Protected Attributes

int _max_deg
 maximum degree of the taylor series expansion of the ode
double _tau
 time scaling of the taylor series


Member Function Documentation

char* Omu_IntOdeTs::name (  )  [inline, virtual]

Name of a specific integrator.

Implements Omu_Integrator.

void Omu_IntOdeTs::init_stage ( int  k,
const Omu_VariableVec x,
const Omu_VariableVec u,
const Omu_DependentVec Ft,
bool  sa 
) [virtual]

Initialize solution of differential equations for stage k.

Note: The numbers of variables and equation structure (given in F) shall be the same for all sample periods of a stage.

Parameters:
k stage
x state variables for optimization, including bounds etc.
u control parameters for optimization
Ft pre-initialized data structures for resisuals and Jacobians
sa true if sensitivity analysis shall be performed

Reimplemented from Omu_Integrator.

void Omu_IntOdeTs::solve ( int  kk,
double  tstart,
double  tend,
const Omu_VariableVec x,
const Omu_VariableVec u,
Omu_Program sys,
Omu_DependentVec Ft,
Omu_StateVec xt 
) [virtual]

Solve differential equations over one sample period.

The differential-algebraic equations can be evaluated by calling Omu_Program::continuous for sys. Note that the first _nd elements of xt are discrete-time states that need to be treated like control parameters u by an integrator. Furthermore, the last _nv elements of xt are expansion variables that are not seen by the optimizer and accordingly no sensitivities are required with respect to them. The default implementation of solve calls the high-level version.

Parameters:
kk sample period
tstart start time for integration
tend end time for integration
x state variables for optimization, including bounds etc.
u control parameters for optimization
sys problem definition for calling Omu_Program::continuous
Ft pre-initialized data structures for resisuals and Jacobians
xt start values for integration at tstart, dim(xt)=_nxt; initial sensitivity matrices xt.Sx, dim(xt.Sx)=_nxt._nx, and xt.Su, dim(xt.Su)=_nxt._nu, if _sa is true
Return values:
xt result at tend; xt.Sx and xt.Su at tend if _sa is true
Exceptions:
E_CONV indicate that the integrator failed to converge; may be caught during optimization step length test

Reimplemented from Omu_Integrator.


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

HQP is hosted at SourceForge. Documentation generated on Sat Nov 8 14:21:33 2008 using doxygen.