CPodes Class Reference

This is a straightforward translation of the Sundials CPODES C interface into C++. More...

#include <SimTKcpodes.h>

List of all members.

Public Types

enum  ODEType { UnspecifiedODEType = 0, ExplicitODE, ImplicitODE }
enum  LinearMultistepMethod { UnspecifiedLinearMultistepMethod = 0, BDF, Adams }
enum  NonlinearSystemIterationType { UnspecifiedNonlinearSystemIterationType = 0, Newton, Functional }
enum  ToleranceType { UnspecifiedToleranceType = 0, ScalarScalar, ScalarVector, WeightFunction }
enum  ProjectionNorm { UnspecifiedProjectionNorm = 0, L2Norm, ErrorNorm }
enum  ConstraintLinearity { UnspecifiedConstraintLinearity = 0, Linear, Nonlinear }
enum  ProjectionFactorizationType {
  UnspecifiedProjectionFactorizationType = 0, ProjectWithLU, ProjectWithQR, ProjectWithSchurComplement,
  ProjectWithQRPivot
}
enum  StepMode {
  UnspecifiedStepMode = 0, Normal, OneStep, NormalTstop,
  OneStepTstop
}

Public Member Functions

 CPodes (ODEType ode=UnspecifiedODEType, LinearMultistepMethod lmm=UnspecifiedLinearMultistepMethod, NonlinearSystemIterationType nls=UnspecifiedNonlinearSystemIterationType)
 ~CPodes ()
int init (CPodesSystem &sys, Real t0, const Vector &y0, const Vector &yp0, ToleranceType tt, Real reltol, void *abstol)
int reInit (CPodesSystem &sys, Real t0, const Vector &y0, const Vector &yp0, ToleranceType tt, Real reltol, void *abstol)
int projInit (ProjectionNorm, ConstraintLinearity, const Vector &ctol)
int projDefine ()
int quadInit (const Vector &q0)
int quadReInit (const Vector &q0)
int rootInit (int nrtfn)
int setErrHandlerFn ()
int setEwtFn ()
int dlsSetJacFn (void *jac, void *jac_data)
int dlsProjSetJacFn (void *jacP, void *jacP_data)
int step (Real tout, Real *tret, Vector &y_inout, Vector &yp_inout, StepMode=Normal)
int setErrFile (FILE *errfp)
int setMaxOrd (int maxord)
int setMaxNumSteps (int mxsteps)
int setMaxHnilWarns (int mxhnil)
int setStabLimDet (bool stldet)
int setInitStep (Real hin)
int setMinStep (Real hmin)
int setMaxStep (Real hmax)
int setStopTime (Real tstop)
int setMaxErrTestFails (int maxnef)
int setMaxNonlinIters (int maxcor)
int setMaxConvFails (int maxncf)
int setNonlinConvCoef (Real nlscoef)
int setProjUpdateErrEst (bool proj_err)
int setProjFrequency (int proj_freq)
int setProjTestCnstr (bool test_cnstr)
int setProjLsetupFreq (int proj_lset_freq)
int setProjNonlinConvCoef (Real prjcoef)
int setQuadErrCon (bool errconQ, int tol_typeQ, Real reltolQ, void *abstolQ)
int setTolerances (int tol_type, Real reltol, void *abstol)
int setRootDirection (Array_< int > &rootdir)
int getDky (Real t, int k, Vector &dky)
int getQuad (Real t, Vector &yQout)
int getQuadDky (Real t, int k, Vector &dky)
int getWorkSpace (int *lenrw, int *leniw)
int getNumSteps (int *nsteps)
int getNumFctEvals (int *nfevals)
int getNumLinSolvSetups (int *nlinsetups)
int getNumErrTestFails (int *netfails)
int getLastOrder (int *qlast)
int getCurrentOrder (int *qcur)
int getNumStabLimOrderReds (int *nslred)
int getActualInitStep (Real *hinused)
int getLastStep (Real *hlast)
int getCurrentStep (Real *hcur)
int getCurrentTime (Real *tcur)
int getTolScaleFactor (Real *tolsfac)
int getErrWeights (Vector &eweight)
int getEstLocalErrors (Vector &ele)
int getNumGEvals (int *ngevals)
int getRootInfo (int *rootsfound)
int getIntegratorStats (int *nsteps, int *nfevals, int *nlinsetups, int *netfails, int *qlast, int *qcur, Real *hinused, Real *hlast, Real *hcur, Real *tcur)
int getNumNonlinSolvIters (int *nniters)
int getNumNonlinSolvConvFails (int *nncfails)
int getNonlinSolvStats (int *nniters, int *nncfails)
int getProjNumProj (int *nproj)
int getProjNumCnstrEvals (int *nce)
int getProjNumLinSolvSetups (int *nsetupsP)
int getProjNumFailures (int *nprf)
int getProjStats (int *nproj, int *nce, int *nsetupsP, int *nprf)
int getQuadNumFunEvals (int *nqevals)
int getQuadErrWeights (Vector &eQweight)
char * getReturnFlagName (int flag)
int dlsGetWorkSpace (int *lenrwLS, int *leniwLS)
int dlsGetNumJacEvals (int *njevals)
int dlsGetNumFctEvals (int *nfevalsLS)
int dlsGetLastFlag (int *flag)
char * dlsGetReturnFlagName (int flag)
int dlsProjGetNumJacEvals (int *njPevals)
int dlsProjGetNumFctEvals (int *ncevalsLS)
int lapackDense (int N)
int lapackBand (int N, int mupper, int mlower)
int lapackDenseProj (int Nc, int Ny, ProjectionFactorizationType)

Static Public Attributes

static const int Success = 0
static const int TstopReturn = 1
static const int RootReturn = 2
static const int Warning = 99
static const int TooMuchWork = -1
static const int TooClose = -27
static const int RecoverableError = 9999
static const int UnrecoverableError = -9999

Friends

class CPodesRep

Detailed Description

This is a straightforward translation of the Sundials CPODES C interface into C++.

The class CPodes represents a single instance of a CPODES integrator, and handles the associated memory internally. Methods here are identical to the corresponding CPODES functions (with the "CPode" prefix removed) but are const-correct and use SimTK Vector & Real rather than Sundials N_Vector and realtype.


Member Enumeration Documentation

Enumerator:
UnspecifiedConstraintLinearity 
Linear 
Nonlinear 
Enumerator:
UnspecifiedLinearMultistepMethod 
BDF 
Adams 
Enumerator:
UnspecifiedNonlinearSystemIterationType 
Newton 
Functional 
enum ODEType
Enumerator:
UnspecifiedODEType 
ExplicitODE 
ImplicitODE 
Enumerator:
UnspecifiedProjectionFactorizationType 
ProjectWithLU 
ProjectWithQR 
ProjectWithSchurComplement 
ProjectWithQRPivot 
Enumerator:
UnspecifiedProjectionNorm 
L2Norm 
ErrorNorm 
enum StepMode
Enumerator:
UnspecifiedStepMode 
Normal 
OneStep 
NormalTstop 
OneStepTstop 
Enumerator:
UnspecifiedToleranceType 
ScalarScalar 
ScalarVector 
WeightFunction 

Constructor & Destructor Documentation

CPodes ( ODEType  ode = UnspecifiedODEType,
LinearMultistepMethod  lmm = UnspecifiedLinearMultistepMethod,
NonlinearSystemIterationType  nls = UnspecifiedNonlinearSystemIterationType 
) [inline, explicit]
~CPodes (  ) 

Member Function Documentation

int dlsGetLastFlag ( int *  flag  ) 
int dlsGetNumFctEvals ( int *  nfevalsLS  ) 
int dlsGetNumJacEvals ( int *  njevals  ) 
char* dlsGetReturnFlagName ( int  flag  ) 
int dlsGetWorkSpace ( int *  lenrwLS,
int *  leniwLS 
)
int dlsProjGetNumFctEvals ( int *  ncevalsLS  ) 
int dlsProjGetNumJacEvals ( int *  njPevals  ) 
int dlsProjSetJacFn ( void *  jacP,
void *  jacP_data 
)
int dlsSetJacFn ( void *  jac,
void *  jac_data 
)
int getActualInitStep ( Real *  hinused  ) 
int getCurrentOrder ( int *  qcur  ) 
int getCurrentStep ( Real *  hcur  ) 
int getCurrentTime ( Real *  tcur  ) 
int getDky ( Real  t,
int  k,
Vector dky 
)
int getErrWeights ( Vector eweight  ) 
int getEstLocalErrors ( Vector ele  ) 
int getIntegratorStats ( int *  nsteps,
int *  nfevals,
int *  nlinsetups,
int *  netfails,
int *  qlast,
int *  qcur,
Real *  hinused,
Real *  hlast,
Real *  hcur,
Real *  tcur 
)
int getLastOrder ( int *  qlast  ) 
int getLastStep ( Real *  hlast  ) 
int getNonlinSolvStats ( int *  nniters,
int *  nncfails 
)
int getNumErrTestFails ( int *  netfails  ) 
int getNumFctEvals ( int *  nfevals  ) 
int getNumGEvals ( int *  ngevals  ) 
int getNumLinSolvSetups ( int *  nlinsetups  ) 
int getNumNonlinSolvConvFails ( int *  nncfails  ) 
int getNumNonlinSolvIters ( int *  nniters  ) 
int getNumStabLimOrderReds ( int *  nslred  ) 
int getNumSteps ( int *  nsteps  ) 
int getProjNumCnstrEvals ( int *  nce  ) 
int getProjNumFailures ( int *  nprf  ) 
int getProjNumLinSolvSetups ( int *  nsetupsP  ) 
int getProjNumProj ( int *  nproj  ) 
int getProjStats ( int *  nproj,
int *  nce,
int *  nsetupsP,
int *  nprf 
)
int getQuad ( Real  t,
Vector yQout 
)
int getQuadDky ( Real  t,
int  k,
Vector dky 
)
int getQuadErrWeights ( Vector eQweight  ) 
int getQuadNumFunEvals ( int *  nqevals  ) 
char* getReturnFlagName ( int  flag  ) 
int getRootInfo ( int *  rootsfound  ) 
int getTolScaleFactor ( Real *  tolsfac  ) 
int getWorkSpace ( int *  lenrw,
int *  leniw 
)
int init ( CPodesSystem sys,
Real  t0,
const Vector y0,
const Vector yp0,
ToleranceType  tt,
Real  reltol,
void *  abstol 
)
int lapackBand ( int  N,
int  mupper,
int  mlower 
)
int lapackDense ( int  N  ) 
int lapackDenseProj ( int  Nc,
int  Ny,
ProjectionFactorizationType   
)
int projDefine (  ) 
int projInit ( ProjectionNorm  ,
ConstraintLinearity  ,
const Vector ctol 
)
int quadInit ( const Vector q0  ) 
int quadReInit ( const Vector q0  ) 
int reInit ( CPodesSystem sys,
Real  t0,
const Vector y0,
const Vector yp0,
ToleranceType  tt,
Real  reltol,
void *  abstol 
)
int rootInit ( int  nrtfn  ) 
int setErrFile ( FILE *  errfp  ) 
int setErrHandlerFn (  ) 
int setEwtFn (  ) 
int setInitStep ( Real  hin  ) 
int setMaxConvFails ( int  maxncf  ) 
int setMaxErrTestFails ( int  maxnef  ) 
int setMaxHnilWarns ( int  mxhnil  ) 
int setMaxNonlinIters ( int  maxcor  ) 
int setMaxNumSteps ( int  mxsteps  ) 
int setMaxOrd ( int  maxord  ) 
int setMaxStep ( Real  hmax  ) 
int setMinStep ( Real  hmin  ) 
int setNonlinConvCoef ( Real  nlscoef  ) 
int setProjFrequency ( int  proj_freq  ) 
int setProjLsetupFreq ( int  proj_lset_freq  ) 
int setProjNonlinConvCoef ( Real  prjcoef  ) 
int setProjTestCnstr ( bool  test_cnstr  ) 
int setProjUpdateErrEst ( bool  proj_err  ) 
int setQuadErrCon ( bool  errconQ,
int  tol_typeQ,
Real  reltolQ,
void *  abstolQ 
)
int setRootDirection ( Array_< int > &  rootdir  ) 
int setStabLimDet ( bool  stldet  ) 
int setStopTime ( Real  tstop  ) 
int setTolerances ( int  tol_type,
Real  reltol,
void *  abstol 
)
int step ( Real  tout,
Real *  tret,
Vector y_inout,
Vector yp_inout,
StepMode  = Normal 
)

Friends And Related Function Documentation

friend class CPodesRep [friend]

Member Data Documentation

const int RecoverableError = 9999 [static]
const int RootReturn = 2 [static]
const int Success = 0 [static]
const int TooClose = -27 [static]
const int TooMuchWork = -1 [static]
const int TstopReturn = 1 [static]
const int UnrecoverableError = -9999 [static]
const int Warning = 99 [static]

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

Generated on Thu Aug 12 16:38:33 2010 for SimTKcore by  doxygen 1.6.1