Omu_IntDASPK Class Reference

#include <Omu_IntDASPK.h>

Inheritance diagram for Omu_IntDASPK:

Inheritance graph
base refererrect $classOmu__Integrator.html 9,7 124,34
[legend]
Collaboration diagram for Omu_IntDASPK:

Collaboration graph
base refererrect $classOmu__Integrator.html 329,495 444,521rect $classOmu__SVec.html 456,361 547,388rect $classOmu__StateVec.html 445,207 557,233rect $classOmu__Vec.html 176,84 256,111rect $classOmu__DependentVec.html 143,361 289,388rect $classMesch_1_1VECP.html 33,7 137,33rect $classMesch_1_1MATP.html 561,84 665,111rect $classMesch_1_1IVECP.html 688,495 797,521
[legend]

List of all members.


Detailed Description

Solve differential-algebraic equation system using DASPK.

Currently DASPK version 3.0 is supported (distribution file http://www.engineering.ucsb.edu/~cse/Software/ddaspk30.tar.gz).

Public Member Functions

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


char * name ()
 Name of a specific integrator.
virtual 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.
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.
Callback routines for DASPK.
void res (freal *t, freal *x, freal *xprime, freal *delta, fint *ires, freal *rpar, fint *ipar, freal *senpar)
void jac (freal *t, freal *y, freal *yprime, freal *pd, freal *cj, freal *rpar, fint *ipar, freal *senpar, fint *ijac)

Protected Attributes

int _jac_sbw
 User given semi-bandwidth of Jacobian (default: -1).
bool _banded
 User specification to allow banded solver (default: true).
bool _banded_solver
 internal flag for using banded solver
bool _krylov
 User specification if Krylov iterative solver should be used instead of direct solver (default: false).
bool _krylov_prec
 User specification if a preconditioner should be used by the Krylov iterative solver (default: true).
bool _with_jac
 User specification if externally provided Jacobian should be used (default: true).
int _nsteps
 User defined fixed number of steps.


Member Function Documentation

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

Name of a specific integrator.

Implements Omu_Integrator.

virtual void Omu_IntDASPK::init ( int  k,
const Omu_StateVec xc,
const Omu_Vec q,
const Omu_DependentVec Fc,
bool  sa 
) [virtual]

Initialize integrator, like adaptation of array dimensions and test of pre-conditions, like explicit ODE.

An explicit ODE is present if Fc.Jdx.is_scalar() and Fc.Jdx[0][0] != 0.0. An algebraic state j, 0<=j<_n can be identified with Fc.Jdx.is_zero_column[j]. Note that the init method should not find consistent initial conditions of a DAE as parameters may jump between sample periods kk afterwards.

Parameters:
k stage
xc continuous-time states, dim(xc)=_n
q sensitivity parameters, dim(q)=_nq
Fc pre-initialized data structures for evaluating residuals, dim(Fc)=_n, including structurally analyzed Jacobians, dim(Fc.Jx)=_n._n, dim(Fc.Jxp)=_n._n, dim(Fc.Jq)=_n._nq
sa indicates if sensitivity analysis is required

Reimplemented from Omu_Integrator.

virtual void Omu_IntDASPK::solve ( int  kk,
double  tstart,
double  tend,
Omu_StateVec xc,
Omu_StateVec dxc,
Omu_Vec q,
Omu_DependentVec Fc 
) [virtual]

Solve differential equations over one sample period.

Additionally solve sensitivity equations if _sa is true. The default implementation calls the depreciated solve method.

Parameters:
kk sample period
tstart start time for integration
tend end time for integration
xc continuous-time states at tstart, dim(xc)=_n; sensitivities xc.Sq at tstart, dim(xc.Sq)=_n._nq, if _sa is true
dxc pre-allocated time derivatives of continuous-time states, dim(dxc)=_n
q sensitivity parameters, dim(q)=_nq
Fc pre-allocated argument for residual calls, dim(Fc)=_n, including structurally analyzed Jacobians Fc.Jx, Fc.Jdx, Fc.Jq
Return values:
xc continuous-time states at tend; sensitivities xc.Sq 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.


Member Data Documentation

int Omu_IntDASPK::_jac_sbw [protected]

User given semi-bandwidth of Jacobian (default: -1).

If a value >= 0 is specified, then it is used instead of the automatic detection.

bool Omu_IntDASPK::_banded [protected]

User specification to allow banded solver (default: true).

Banded solvers are used if _banded is true, _jac_sbw < 0, and if the automatic detection indicates that the problem can be solved more efficiently in this way.

bool Omu_IntDASPK::_krylov_prec [protected]

User specification if a preconditioner should be used by the Krylov iterative solver (default: true).

A banded preconditioner is used if the problem is treated banded. Otherwise an incomplete LU factorization is used.

bool Omu_IntDASPK::_with_jac [protected]

User specification if externally provided Jacobian should be used (default: true).

Otherwise DASPK approximates it internally, which is generally more efficient for not analytically given Jacobians.

int Omu_IntDASPK::_nsteps [protected]

User defined fixed number of steps.

(default: 0, i.e. variable step size based on _rtol and _atol)


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.