23#ifndef _LSODI_INTEGRATOR_H_
24#define _LSODI_INTEGRATOR_H_
26#include "dae_integrator.h"
30 extern bool odePackInUse;
42 double delta(
int i,
double z)
const override;
43 typedef void (*Res)(
int* neq,
double* t,
double* y_,
double* yd_,
double* res_,
int* ires);
44 typedef void (*Jac)(
int *neq,
double* t,
double* y_,
double *yd_,
int* ml,
int* mu,
double* J_,
int* nrowp);
47 static void resODE(
int* neq,
double* t,
double* z_,
double* zd_,
double* res_,
int* ires);
48 static void resDAE2(
int* neq,
double* t,
double* y_,
double* yd_,
double* res_,
int* ires);
49 static void resGGL(
int* neq,
double* t,
double* y_,
double* yd_,
double* res_,
int* ires);
50 static void adda(
int *neq,
double* t,
double* y_,
int* ml,
int* mu,
double* P,
int* nrowp);
51 static void jacODE(
int *neq,
double* t,
double* y_,
double *yd_,
int* ml,
int* mu,
double* J_,
int* nrowp);
52 static void jacDAE2(
int *neq,
double* t,
double* y_,
double *yd_,
int* ml,
int* mu,
double* J_,
int* nrowp);
53 static void jacGGL(
int *neq,
double* t,
double* y_,
double *yd_,
int* ml,
int* mu,
double* J_,
int* nrowp);
56 void reinit()
override;
73 std::exception_ptr exception;
76 void setMaximumStepSize(
double dtMax_) {
dtMax = dtMax_; }
77 void setMinimumStepSize(
double dtMin_) {
dtMin = dtMin_; }
78 void setInitialStepSize(
double dt0_) {
dt0 = dt0_; }
79 void setStepLimit(
int maxSteps_) {
maxSteps = maxSteps_; }
80 void setExcludeAlgebraicVariablesFromErrorTest(
bool excludeAlgebraicVariables_) {
excludeAlgebraicVariables = excludeAlgebraicVariables_; }
Base class for all DAE integrators.
Definition: dae_integrator.h:33
virtual void integrate()=0
start the integration of the system set by setSystem. Each class implemeting this function should cal...
Hindmarsh’s ODE solver LSODI.
Definition: lsodi_integrator.h:39
double dtMin
Definition: lsodi_integrator.h:61
double dtMax
Definition: lsodi_integrator.h:59
void integrate()
start the integration of the system set by setSystem. Each class implemeting this function should cal...
Definition: lsodi_integrator.cc:257
double dt0
Definition: lsodi_integrator.h:63
bool excludeAlgebraicVariables
Definition: lsodi_integrator.h:67
int maxSteps
Definition: lsodi_integrator.h:65
virtual void initializeUsingXML(xercesc::DOMElement *element)
initialize integrator
Definition: lsodi_integrator.cc:505
namespace MBSim
Definition: bilateral_constraint.cc:30