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