|
|
void | setMaximumStepSize (double dtMax_) |
| |
|
void | setMinimumStepSize (double dtMin_) |
| |
|
void | setInitialStepSize (double dt0_) |
| |
|
void | setStepLimit (int maxSteps_) |
| |
|
void | setExcludeAlgebraicVariablesFromErrorTest (bool excludeAlgebraicVariables_) |
| |
| void | integrate () |
| | start the integration of the system set by setSystem. Each class implemeting this function should call debugInit first. More...
|
| |
| virtual void | initializeUsingXML (xercesc::DOMElement *element) |
| | initialize integrator More...
|
| |
| virtual void | integrate ()=0 |
| | start the integration of the system set by setSystem. Each class implemeting this function should call debugInit first. More...
|
| |
|
void | integrate (MBSim::DynamicSystemSolver &sys) |
| | Convinent function: call setSystem(&sys) and integrate()
|
| |
| void | initializeUsingXML (xercesc::DOMElement *element) override |
| | initialize integrator More...
|
| |
|
void | setFormalism (Formalism formalism_) |
| |
|
void | setAbsoluteTolerance (const fmatvec::Vec &aTol_) |
| |
|
void | setAbsoluteTolerance (double aTol_) |
| |
|
void | setRelativeTolerance (const fmatvec::Vec &rTol_) |
| |
|
void | setRelativeTolerance (double rTol_) |
| |
|
void | setAbsolutePositionTolerance (double aTolPos_) |
| |
|
void | setAbsoluteVelocityTolerance (double aTolVel_) |
| |
|
void | setAbsoluteFirstOrderTolerance (double aTol1st_) |
| |
|
void | setAbsoluteForceTolerance (double aTolForce_) |
| |
|
void | setRelativePositionTolerance (double rTolPos_) |
| |
|
void | setRelativeVelocityTolerance (double rTolVel_) |
| |
|
void | setRelativeFirstOrderTolerance (double rTol1st_) |
| |
|
void | setRelativeForceTolerance (double rTolForce_) |
| |
|
void | setReducedForm (bool reduced_) |
| |
|
void | setPartiallyAnalyticalJacobian (bool partiallyAnalyticalJacobian_) |
| |
|
void | setRootFindingAccuracy (double dtRoot_) |
| | Define the root-finding accuracy.
|
| |
|
void | setPlotOnRoot (bool b) |
| | Define wether to trigger a plot before and after each found root.
|
| |
|
void | setToleranceForPositionConstraints (double gMax_) |
| | Set the maximum allowed position drift.
|
| |
|
void | setToleranceForVelocityConstraints (double gdMax_) |
| | Set the maximum allowed velocity drift.
|
| |
|
double | getToleranceForPositionConstraints () |
| | Get the maximum allowed position drift.
|
| |
|
double | getToleranceForVelocityConstraints () |
| | Get the maximum allowed velocity drift.
|
| |
| virtual void | initializeUsingXML (xercesc::DOMElement *element) |
| | initialize integrator More...
|
| |
|
| Integrator () |
| | constructor
|
| |
|
| ~Integrator () override=default |
| | destructor
|
| |
|
void | setStartTime (double tStart_) |
| |
|
void | setEndTime (double tEnd_) |
| |
|
void | setPlotStepSize (double dtPlot_) |
| |
|
double | getStartTime () const |
| |
|
double | getEndTime () const |
| |
|
double | getPlotStepSize () const |
| |
| void | execute () override |
| | start solving the dynamic system set by setSystem. More...
|
| |
| virtual void | integrate ()=0 |
| | start the integration of the system set by setSystem. Each class implemeting this function should call debugInit first. More...
|
| |
|
void | integrate (MBSim::DynamicSystemSolver &sys) |
| | Convinent function: call setSystem(&sys) and integrate()
|
| |
| void | debugInit () |
| |
| virtual void | preIntegrate () |
| |
| virtual void | subIntegrate (double tStop) |
| |
| virtual void | postIntegrate () |
| |
| void | initializeUsingXML (xercesc::DOMElement *element) override |
| | initialize integrator More...
|
| |
|
| Solver () |
| | constructor
|
| |
|
| ~Solver () override=default |
| | destructor
|
| |
|
void | throwError (const std::string &msg) const |
| |
| virtual void | execute ()=0 |
| | start solving the dynamic system set by setSystem. More...
|
| |
| virtual void | postprocessing () |
| |
| virtual void | initializeUsingXML (xercesc::DOMElement *element) |
| |
|
void | setInitialState (const fmatvec::Vec &z0_) |
| |
|
const fmatvec::Vec & | getInitialState () const |
| |
|
void | setSystem (DynamicSystemSolver *s) |
| |
|
MBSim::DynamicSystemSolver * | getSystem () |
| |
|
const MBXMLUtils::DOMEvalException & | getDOMEvalError () const |
| |
|
|
static void | resODE (int *neq, double *t, double *z_, double *zd_, double *res_, int *ires) |
| |
|
static void | resDAE2 (int *neq, double *t, double *y_, double *yd_, double *res_, int *ires) |
| |
|
static void | resGGL (int *neq, double *t, double *y_, double *yd_, double *res_, int *ires) |
| |
|
static void | adda (int *neq, double *t, double *y_, int *ml, int *mu, double *P, int *nrowp) |
| |
|
static void | jacODE (int *neq, double *t, double *y_, double *yd_, int *ml, int *mu, double *J_, int *nrowp) |
| |
|
static void | jacDAE2 (int *neq, double *t, double *y_, double *yd_, int *ml, int *mu, double *J_, int *nrowp) |
| |
|
static void | jacGGL (int *neq, double *t, double *y_, double *yd_, int *ml, int *mu, double *J_, int *nrowp) |
| |
|
| enum | Formalism {
ODE =0
, DAE1
, DAE2
, DAE3
,
GGL
, unknown
} |
| |
|
void | par_ud_xd_gdd_par_q_u (fmatvec::Mat &J, const fmatvec::Vec &ud_=fmatvec::Vec()) |
| |
|
void | par_zd_gdd_par_q_u (fmatvec::Mat &J, const fmatvec::Vec &ud_=fmatvec::Vec()) |
| |
|
void | par_ud_xd_par_x (fmatvec::Mat &J) |
| |
|
void | par_ud_xd_gd_par_q (fmatvec::Mat &J) |
| |
|
void | par_zd_gd_par_q (fmatvec::Mat &J) |
| |
|
void | par_ud_xd_g_par_q (fmatvec::Mat &J) |
| |
|
void | par_zd_g_par_q (fmatvec::Mat &J) |
| |
|
void | par_ud_xd_gd_g_par_q (fmatvec::Mat &J) |
| |
|
void | par_zd_gd_g_par_q (fmatvec::Mat &J) |
| |
| void | calcSize () override |
| |
| void | init () override |
| |
|
virtual void | reinit () |
| |
|
virtual double | delta (int i, double z) const |
| |
|
void | par_ud_xd_par_q (fmatvec::Mat &J) |
| |
|
void | par_zd_par_q (fmatvec::Mat &J) |
| |
|
void | par_ud_xd_par_u_x (fmatvec::Mat &J, bool updla) |
| |
|
void | par_zd_par_z (fmatvec::Mat &J, bool updla) |
| |
|
virtual void | calcSize () |
| |
|
virtual void | init () |
| |
|
bool | signChangedWRTsvLast (const fmatvec::Vec &svStepEnd) const |
| |
| Formalism | formalism {ODE} |
| |
| fmatvec::Vec | aTol |
| |
|
std::optional< double > | aTolScalar |
| |
| fmatvec::Vec | rTol |
| |
|
std::optional< double > | rTolScalar |
| |
|
std::optional< double > | aTolPos |
| |
|
std::optional< double > | aTolVel |
| |
|
std::optional< double > | aTol1st |
| |
|
std::optional< double > | aTolForce |
| |
|
std::optional< double > | rTolPos |
| |
|
std::optional< double > | rTolVel |
| |
|
std::optional< double > | rTol1st |
| |
|
std::optional< double > | rTolForce |
| |
|
int | laInd |
| |
|
int | lInd |
| |
|
fmatvec::Vec | gd0 |
| |
|
fmatvec::Vec | g0 |
| |
|
fmatvec::RangeV | Rla |
| |
|
fmatvec::RangeV | Rl |
| |
|
fmatvec::RangeV | RlaMove |
| |
|
fmatvec::RangeV | RlMove |
| |
| bool | reduced {false} |
| |
| bool | partiallyAnalyticalJacobian {false} |
| |
|
int | neq |
| |
|
int | qMove |
| |
|
fmatvec::Vec | zd0 |
| |
|
fmatvec::RangeV | Rq |
| |
|
fmatvec::RangeV | Ru |
| |
|
fmatvec::RangeV | Rx |
| |
|
fmatvec::RangeV | Rz |
| |
|
fmatvec::RangeV | RuMove |
| |
|
fmatvec::RangeV | RxMove |
| |
| double | dtRoot {1e-10} |
| |
| bool | plotOnRoot {false} |
| |
| double | gMax {-1} |
| |
| double | gdMax {-1} |
| |
|
fmatvec::Vec | svLast |
| |
|
bool | shift {false} |
| |
|
double | tStart {0.} |
| | start, end, plot time
|
| |
|
double | tEnd {1.} |
| |
|
double | dtPlot {1e-4} |
| |
|
std::string | name |
| | name of integrator
|
| |
|
fmatvec::Vec | z0 |
| | initial state
|
| |
|
MBSim::DynamicSystemSolver * | system |
| | dynamic system
|
| |
|
MBXMLUtils::DOMEvalException | domEvalError |
| | Special XML helper variable.
|
| |
Hindmarsh’s ODE solver LSODI.
Livermore Solver for Ordinary Differential Equations (Implicit form). LSODI solves the initial-value problem for differential-algebraic systems of index 2. This integrator uses ODEPACK (http://www.netlib.org/odepack).