Robotran C Documentation
integrator.h
Go to the documentation of this file.
1 
14 #ifndef __INTEGRATOR_H_INCLUDED__ // guard against multiple/recursive includes
15 #define __INTEGRATOR_H_INCLUDED__
16 
17 #include "mbs_data.h"
18 #include "mbs_aux.h"
19 
30 
31 
32 
37 void set_integrator(MbsDirdyn *dd);
38 
45 void print_warnings_integrator(MbsData *mbs_data, MbsDirdyn *mbs_dd, int type_of_integrator);
46 
52 void print_warnings_constant_step_integrator(MbsDirdyn *mbs_dd, char *integrator_name);
53 
59 void print_warnings_explicit_integrator(MbsDirdyn* mbs_dd, char* integrator_name);
60 
80 int rk4(double y[], double dydx[], int n, double x, double h, double yout[],
81  int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *),
82  MbsData *s, MbsDirdyn *dd);
83 
108 int rosenbrock(int n, int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *),
109  double *x, double y[], double eps, double hmax, double htry,
110  long nmax, double dydx[], double yscal[], double *hnext, MbsData *s,
111  MbsDirdyn *dd, double *hdid);
112 
117 int ThetaSC(double y[], double dydx[], int n, double x, double h, double yout[],
118  int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *),
119  MbsData *s, MbsDirdyn *dd);
120 
140 int mbs_estim_jac_acc(double x, double htry, double y[], double dydx[], int compute_dfdx, double dfdx[], double **dfdy, int n,
141  int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), MbsData *s, MbsDirdyn *dd);
142 
143 
168 int mbs_freeze_jac(int freeze_index, int *next_freeze_index, double x, double h, double y[], double dydx[],
169  int compute_dfdx, double dfdx[], double **dfdy, double dydx_freeze[], double dfdx_freeze[], double **dfdy_freeze,
170  int n, int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), MbsData *s, MbsDirdyn *mbs_dd);
171 
172 
190 int euler_implicit(double y[], double dydx[], int n, double *x, double h, double yout[],
191  int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *),
192  MbsData *s, MbsDirdyn *mbs_dd);
193 
211 int w_methods(double y[], double dydx[], int n, double x, double h, double yout[],
212  int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *),
213  MbsData *s, MbsDirdyn *mbs_dd);
214 
215 #endif
print_warnings_explicit_integrator
void print_warnings_explicit_integrator(MbsDirdyn *mbs_dd, char *integrator_name)
Print the warning message, called by print_warnings_integrator for explicit integrators.
Definition: integrator.c:363
mbs_msg
void mbs_msg(const char *msg,...)
Send a message.
Definition: mbs_message.c:87
print_warnings_integrator
void print_warnings_integrator(MbsData *mbs_data, MbsDirdyn *mbs_dd, int type_of_integrator)
Check the options set by user to warn him when he modified an unused option for the integrator.
Definition: integrator.c:272
complex_float
Implementation of eig function using lapacke without using the lapackE interface.
Definition: cholesky.c:14
loop_bader
int loop_bader(double t0, double tf, MbsData *mbs_data, MbsDirdyn *mbs_dd)
Integrate the motion from t0 to tf.
Definition: mbs_bader.c:65
mbs_estim_jac_acc
int mbs_estim_jac_acc(double x, double htry, double y[], double dydx[], int compute_dfdx, double dfdx[], double **dfdy, int n, int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), MbsData *s, MbsDirdyn *dd)
Evaluate the Jacobian of a function accelerations using finite difference.
Definition: integrator.c:35
Dopri5
@ Dopri5
Definition: integrator.h:29
Functions::mbs_invdynared_dqd
mbs_invdynared_d_ptr mbs_invdynared_dqd
Definition: mbs_data.h:81
mbs_euler_implicit.h
This header defines global functions for Euler Implicit integrator in C.
useful_functions.h
mbs_w_methods.h
This header defines global functions for W methods integrator in C.
mbs_eig_0
int mbs_eig_0(double **A, int n, double *eval_a, double *eval_b, double **evec_r, double **evec_phi)
Compute the eigen values and vector of a matrix with index starting a 0.
Definition: eig_lapacke.c:29
mbs_data.h
MbsDirdyn::nState
int nState
size of the state vector
Definition: mbs_dirdyn_struct.h:174
mbs_bader.h
This header defines global functions for Bader integrator in C.
mbs_dirdyn_struct.h
loop_w_methods
int loop_w_methods(double t0, double tf, MbsData *mbs_data, MbsDirdyn *mbs_dd)
Integrate the motion from t0 to tf.
Definition: mbs_w_methods.c:86
MbsData::nqu
int nqu
Number of independent articulations.
Definition: mbs_data.h:262
mbs_error_msg
void mbs_error_msg(int err, const char *msg,...)
Send an error message.
Definition: mbs_message.c:131
get_dvec_0
double * get_dvec_0(int l_v)
create (with memory allocation) a vector (length l_v) of doubles, starting at index 0
Definition: mbs_1D_array.c:955
MbsDirdynOptions::dt_max
double dt_max
maximal time step [s], default = 1.0e-3
Definition: mbs_dirdyn_struct.h:136
RK4
@ RK4
Definition: integrator.h:29
DIRDYN_INTEGRATOR_OPTION_DEFAULT_dt_max
#define DIRDYN_INTEGRATOR_OPTION_DEFAULT_dt_max
Definition: mbs_dirdyn_struct.h:31
print_warnings_constant_step_integrator
void print_warnings_constant_step_integrator(MbsDirdyn *mbs_dd, char *integrator_name)
Print the warning message, called by print_warnings_integrator for constant step size dt integrators.
Definition: integrator.c:339
copy_dmat_0
void copy_dmat_0(double **tab_src, double **tab_dest, int nb_r, int nb_c)
Copy the content of a [nb_r times nb_c] matrix of doubles to a second matrix, starting with index 0.
Definition: mbs_matrix.c:402
MbsDirdynOptions::nmax
int nmax
maximal number of steps [-], default = 1e9
Definition: mbs_dirdyn_struct.h:132
MbsDp::G
double ** G
Damping matrix of size [njoint+1, njoint+1].
Definition: mbs_data.h:201
mbs_define.h
DIRDYN_INTEGRATOR_OPTION_DEFAULT_atoler
#define DIRDYN_INTEGRATOR_OPTION_DEFAULT_atoler
Definition: mbs_dirdyn_struct.h:30
WMethods
@ WMethods
Definition: integrator.h:29
free_dmat_0
void free_dmat_0(double **mat)
release memory for a matrix of doubles, starting at index 0
Definition: mbs_matrix.c:332
DIRDYN_INTEGRATOR_OPTION_DEFAULT_toler
#define DIRDYN_INTEGRATOR_OPTION_DEFAULT_toler
Definition: mbs_dirdyn_struct.h:28
mbs_matrix.h
mbs_warning_msg
void mbs_warning_msg(const char *msg,...)
Send a warning message.
Definition: mbs_message.c:100
mbs_cholsl_0
int mbs_cholsl_0(double **A, int n, double **B, int nb)
Solves a symmetric positive definite system of linear equations AX=B (B being the right hand side wit...
Definition: cholesky.c:40
MbsData::Nux
int Nux
Number of user variable.
Definition: mbs_data.h:387
mbs_rosenbrock.h
This header defines global functions for rosenbrock integrator in C.
loop_rosenbrock
int loop_rosenbrock(double t0, double tf, MbsData *mbs_data, MbsDirdyn *mbs_dd)
Integrate the motion from t0 to tf.
Definition: mbs_rosenbrock.c:74
mbs_freeze_jac
int mbs_freeze_jac(int freeze_index, int *next_freeze_index, double x, double h, double y[], double dydx[], int compute_dfdx, double dfdx[], double **dfdy, double dydx_freeze[], double dfdx_freeze[], double **dfdy_freeze, int n, int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), MbsData *s, MbsDirdyn *mbs_dd)
Freeze the Jacobian of an integrator structure until mbs_dd->options->n_freeze.
Definition: integrator.c:129
MbsData::mbs_dp
MbsDp * mbs_dp
Structure to store the matrix of tangent analysis (symbolic).
Definition: mbs_data.h:416
complex_double
Definition: cholesky.c:15
AlphaM
@ AlphaM
Definition: integrator.h:29
complex_float::x
float x
Definition: cholesky.c:14
mbs_1D_array.h
choldc_0
int choldc_0(double **a, int n, double *p)
Definition: choldc.c:47
loop_euler_implicit
int loop_euler_implicit(double t0, double tf, MbsData *mbs_data, MbsDirdyn *mbs_dd)
Integrate the motion from t0 to tf.
Definition: mbs_euler_implicit.c:65
DIRDYN_INTEGRATOR_OPTION_DEFAULT_rtoler
#define DIRDYN_INTEGRATOR_OPTION_DEFAULT_rtoler
Definition: mbs_dirdyn_struct.h:29
MbsDirdyn::finish_integrator
finish_integrator_ptr finish_integrator
pointer to integrator closing function
Definition: mbs_dirdyn_struct.h:211
mbs_freeze_jac
int mbs_freeze_jac(int freeze_index, int *next_freeze_index, double x, double h, double y[], double dydx[], int compute_dfdx, double dfdx[], double **dfdy, double dydx_freeze[], double dfdx_freeze[], double **dfdy_freeze, int n, int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), MbsData *s, MbsDirdyn *mbs_dd)
Freeze the Jacobian of an integrator structure until mbs_dd->options->n_freeze.
Definition: integrator.c:129
get_dmat_0
double ** get_dmat_0(int nb_r, int nb_c)
create (with memory allocation) a [nb_r times nb_c] matrix of doubles, starting at index 0
Definition: mbs_matrix.c:277
MbsDirdynOptions::dt0
double dt0
initial value of the integration step size, default = 0.001
Definition: mbs_dirdyn_struct.h:45
rk4
int rk4(double y[], double dydx[], int n, double x, double h, double yout[], int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), MbsData *s, MbsDirdyn *dd)
Runge Kutta 4 integrator implementation Given values for the variables y[1..n] and their derivatives ...
Definition: rk4.c:22
finish_euler_implicit
void finish_euler_implicit(MbsData *mbs_data, MbsDirdyn *dd)
Finalize and clear memory allocated for Euler Implicit integrator.
Definition: mbs_euler_implicit.c:140
loop_custom
int loop_custom(double t0, double tf, MbsData *mbs_data, MbsDirdyn *mbs_dd)
Integrate the motion from t0 to tf with a custom integrator implemented by the user.
Definition: mbs_custom.c:45
loop_eulerEx
int loop_eulerEx(double t0, double tf, MbsData *mbs_data, MbsDirdyn *mbs_dd)
Integrate the motion from t0 to tf.
Definition: mbs_euler_explicit.c:64
mbs_choldc_0
int mbs_choldc_0(double **A, int n)
Compute the Cholesky decomposition of A, i.e.
Definition: cholesky.c:25
MbsDirdyn::tsim
double tsim
current simulation time
Definition: mbs_dirdyn_struct.h:171
initialize_dopri5
void initialize_dopri5(MbsData *mbs_data, MbsDirdyn *mbs_dd, int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), void(*loop_fct)(MbsData *, MbsDirdyn *), int(*save_realtime_update)(MbsDirdyn *dd, MbsData *mbs_data))
Initialize all needed fields in MbsDirdyn for Dopri5 integrator.
Definition: mbs_dopri5.c:23
Bader
@ Bader
Definition: integrator.h:29
finish_dopri5
void finish_dopri5(MbsData *mbs_data, MbsDirdyn *mbs_dd)
Finalize and clear memory allocated for dopri5 integrator.
Definition: mbs_dopri5.c:71
initialize_bader
void initialize_bader(MbsData *mbs_data, MbsDirdyn *mbs_dd, int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), void(*loop_fct)(MbsData *, MbsDirdyn *), int(*save_realtime_update)(MbsDirdyn *dd, MbsData *mbs_data))
Initialize all needed fields in MbsDirdyn for Bader integrator.
Definition: mbs_bader.c:23
MbsDirdynOptions::flag_symbolic_jacobian
int flag_symbolic_jacobian
1 to use symbolic computation of the jacobian. Only used with implicit integrators....
Definition: mbs_dirdyn_struct.h:141
EulerIm
@ EulerIm
Definition: integrator.h:29
Rosenbrock
@ Rosenbrock
Definition: integrator.h:29
complex_float::y
float y
Definition: cholesky.c:14
MbsDirdynOptions::n_freeze
int n_freeze
number of time step when the jacobian is freezed (computed once at the start of the n_freeze time ste...
Definition: mbs_dirdyn_struct.h:140
complex_double::y
double y
Definition: cholesky.c:15
finish_bader
void finish_bader(MbsData *mbs_data, MbsDirdyn *dd)
Finalize and clear memory allocated for Bader integrator.
Definition: mbs_bader.c:165
MbsDirdynOptions::toler
double toler
mixed error tolerances [-], default = 1.0e-3
Definition: mbs_dirdyn_struct.h:133
finish_eulerEx
void finish_eulerEx(MbsData *mbs_data, MbsDirdyn *dd)
Finalize and clear memory allocated for Euler Explicit integrator.
Definition: mbs_euler_explicit.c:128
MbsDirdynOptions::flag_oneshot
int flag_oneshot
1 to compute the derivative function only once (no time integration !), default = 0 The time is the v...
Definition: mbs_dirdyn_struct.h:92
print_warnings_constant_step_integrator
void print_warnings_constant_step_integrator(MbsDirdyn *mbs_dd, char *integrator_name)
Print the warning message, called by print_warnings_integrator for constant step size dt integrators.
Definition: integrator.c:339
MbsData::fct
Functions fct
Structure to store the pointer to the project-specific functions.
Definition: mbs_data.h:414
finish_rosenbrock
void finish_rosenbrock(MbsData *mbs_data, MbsDirdyn *dd)
Finalize and clear memory allocated for Rosenbrock integrator.
Definition: mbs_rosenbrock.c:158
transpose_dmat_0
void transpose_dmat_0(double **tab_src, double **tab_dest, int nb_r, int nb_c)
Transpose a [nb_r times nb_c] matrix of doubles and store the results in a [y times nb_r] matrix,...
Definition: mbs_matrix.c:482
initialize_euler_implicit
void initialize_euler_implicit(MbsData *mbs_data, MbsDirdyn *mbs_dd, int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), void(*loop_fct)(MbsData *, MbsDirdyn *), int(*save_realtime_update)(MbsDirdyn *dd, MbsData *mbs_data))
Initialize all needed fields in MbsDirdyn for Euler Implicit integrator.
Definition: mbs_euler_implicit.c:26
initialize_w_methods
void initialize_w_methods(MbsData *mbs_data, MbsDirdyn *mbs_dd, int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), void(*loop_fct)(MbsData *, MbsDirdyn *), int(*save_realtime_update)(MbsDirdyn *dd, MbsData *mbs_data))
Initialize all needed fields in MbsDirdyn for W Methods integrator.
Definition: mbs_w_methods.c:27
mbs_message.h
mbs_euler_explicit.h
This header defines global functions for Euler Explicit integrator in C.
MbsDp::K
double ** K
Stiffness matrix of size [njoint+1, njoint+1].
Definition: mbs_data.h:200
_MBS_ERR_LOW_EIG_VAL
#define _MBS_ERR_LOW_EIG_VAL
Low Level error number Eigen value problem = -4.
Definition: mbs_errors_names.h:132
ThetaSC
int ThetaSC(double y[], double dydx[], int n, double x, double h, double yout[], int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), MbsData *s, MbsDirdyn *dd)
Unknown integrator.
Definition: thetaSC.c:25
complex_double::x
double x
Definition: cholesky.c:15
MbsData
Definition: mbs_data.h:246
initialize_eulerEx
void initialize_eulerEx(MbsData *mbs_data, MbsDirdyn *mbs_dd, int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), void(*loop_fct)(MbsData *, MbsDirdyn *), int(*save_realtime_update)(MbsDirdyn *dd, MbsData *mbs_data))
Initialize all needed fields in MbsDirdyn for Euler Explicit integrator.
Definition: mbs_euler_explicit.c:23
MbsDirdynOptions::rtoler
double rtoler
relative error tolerances [-], default = 1.0e-3
Definition: mbs_dirdyn_struct.h:134
Custom
@ Custom
Definition: integrator.h:29
set_integrator
void set_integrator(MbsDirdyn *dd)
Set the function pointer in MbsDirdyn.
Definition: integrator.c:173
MbsDirdynOptions
Structure defining the option of a direct dynamic.
Definition: mbs_dirdyn_struct.h:38
MBS_VERBOSE_WARNING
#define MBS_VERBOSE_WARNING
Definition: mbs_define.h:45
cholsl_0
void cholsl_0(double **a, int n, double *p, double *b, double *x)
Definition: cholsl.c:25
set_integrator
void set_integrator(MbsDirdyn *mbs_dd)
Set the function pointer in MbsDirdyn.
Definition: integrator.c:173
Eulaire
@ Eulaire
Definition: integrator.h:29
mbs_eig_0
int mbs_eig_0(double **A, int n, double *eval_a, double *eval_b, double **evec_a, double **evec_b)
Compute the eigen values and vector of a matrix with index starting a 0.
Definition: eig_lapack.c:32
print_warnings_explicit_integrator
void print_warnings_explicit_integrator(MbsDirdyn *mbs_dd, char *integrator_name)
Print the warning message, called by print_warnings_integrator for explicit integrators.
Definition: integrator.c:363
integrator.h
This header defines specific integrators functions in C.
w_methods
int w_methods(double y[], double dydx[], int n, double x, double h, double yout[], int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), MbsData *s, MbsDirdyn *mbs_dd)
W Methods integrator implementation.
Definition: w_methods.c:25
MbsDirdyn::initialize_integrator
initialize_integrator_ptr initialize_integrator
pointer to integrator initialize function
Definition: mbs_dirdyn_struct.h:207
MbsDirdynOptions::integrator
int integrator
Set integrator to use, available value: RK4, Dopri5, Rosenbrock, EulerEx, Eulaire,...
Definition: mbs_dirdyn_struct.h:109
DIRDYN_INTEGRATOR_OPTION_DEFAULT_nmax
#define DIRDYN_INTEGRATOR_OPTION_DEFAULT_nmax
Define of default options for integrator in DirdynStruc.
Definition: mbs_dirdyn_struct.h:27
initialize_rosenbrock
void initialize_rosenbrock(MbsData *mbs_data, MbsDirdyn *mbs_dd, int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), void(*loop_fct)(MbsData *, MbsDirdyn *), int(*save_realtime_update)(MbsDirdyn *dd, MbsData *mbs_data))
Initialize all needed fields in MbsDirdyn for Rosenbrock integrator.
Definition: mbs_rosenbrock.c:31
cholsl
void cholsl(double **a, int n, double p[], double b[], double x[])
Definition: cholsl.c:10
mbs_custom.h
This header defines global functions for custom integrator in C. Advanced user can modify this file.
print_warnings_integrator
void print_warnings_integrator(MbsData *mbs_data, MbsDirdyn *mbs_dd, int type_of_integrator)
Check the options set by user to warn him when he modified an unused option for the integrator.
Definition: integrator.c:272
choldc
int choldc(double **a, int n, double p[])
Compute the Cholesky decomposition of a, i.e.
Definition: choldc.c:25
MbsDirdynOptions::verbose
int verbose
Verbosity level propagated to other compatible module:
Definition: mbs_dirdyn_struct.h:111
copy_dvec_0
void copy_dvec_0(double *vec_src, double *vec_dest, int l_v)
Copy the content of a vector (of sizel_v) of doubles to a second vector, starting with index 0.
Definition: mbs_1D_array.c:981
free_dvec_0
void free_dvec_0(double *vec)
release memory for a vector of doubles, starting at index 0
Definition: mbs_1D_array.c:971
mbs_estim_jac_acc
int mbs_estim_jac_acc(double x, double htry, double y[], double dydx[], int compute_dfdx, double dfdx[], double **dfdy, int n, int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), MbsData *s, MbsDirdyn *dd)
Evaluate the Jacobian of a function accelerations using finite difference.
Definition: integrator.c:35
mbs_dopri5.h
finish_rk4
void finish_rk4(MbsData *mbs_data, MbsDirdyn *dd)
Finalize and clear memory allocated for RK4 integrator.
Definition: mbs_rk4.c:121
Functions::symb
struct Functions::@4 symb
MbsDirdynOptions::atoler
double atoler
absolute error tolerances [-], default = 1.0e-6
Definition: mbs_dirdyn_struct.h:135
MbsDirdyn
General structure of the direct dynamic module.
Definition: mbs_dirdyn_struct.h:166
MbsDirdynOptions::flag_waypoint
int flag_waypoint
1 to use waypoints, 0 otherwise, default =0
Definition: mbs_dirdyn_struct.h:127
euler_implicit
int euler_implicit(double y[], double dydx[], int n, double *x, double h, double yout[], int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), MbsData *s, MbsDirdyn *mbs_dd)
Euler Implicit integrator implementation.
Definition: euler_implicit.c:25
mbs_rk4.h
This header defines global functions for Runge Kutta 4 integrator in C.
initialize_custom
void initialize_custom(MbsData *mbs_data, MbsDirdyn *mbs_dd, int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), void(*loop_fct)(MbsData *, MbsDirdyn *), int(*save_realtime_update)(MbsDirdyn *dd, MbsData *mbs_data))
Initialize all needed fields in MbsDirdyn for Custom integrator.
Definition: mbs_custom.c:24
loop_dopri5
int loop_dopri5(double t0, double tf, MbsData *mbs_data, MbsDirdyn *mbs_dd)
Integrate the motion from t0 to tf.
Definition: mbs_dopri5.c:50
MbsDirdyn::loop_integrator
loop_integrator_ptr loop_integrator
pointer to integrator looping function
Definition: mbs_dirdyn_struct.h:209
initialize_rk4
void initialize_rk4(MbsData *mbs_data, MbsDirdyn *mbs_dd, int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), void(*loop_fct)(MbsData *, MbsDirdyn *), int(*save_realtime_update)(MbsDirdyn *dd, MbsData *mbs_data))
Initialize all needed fields in MbsDirdyn for RK4 integrator.
Definition: mbs_rk4.c:24
MbsDirdyn::options
MbsDirdynOptions * options
structure defining the option of a direct dynamic
Definition: mbs_dirdyn_struct.h:168
finish_custom
void finish_custom(MbsData *mbs_data, MbsDirdyn *mbs_dd)
Finalize and clear memory allocated for Custom integrator.
Definition: mbs_custom.c:122
Functions::mbs_invdynared_dq
mbs_invdynared_d_ptr mbs_invdynared_dq
Definition: mbs_data.h:80
mbs_aux.h
MbsDirdyn::flag_ongoing_jac_computation
int flag_ongoing_jac_computation
flag is ON (=1) when the implicit integrator is currently computing the jacobian, default is 0.
Definition: mbs_dirdyn_struct.h:201
finish_w_methods
void finish_w_methods(MbsData *mbs_data, MbsDirdyn *dd)
Finalize and clear memory allocated for W Methods integrator.
Definition: mbs_w_methods.c:165
loop_rk4
int loop_rk4(double t0, double tf, MbsData *mbs_data, MbsDirdyn *mbs_dd)
Integrate the motion from t0 to tf.
Definition: mbs_rk4.c:43
_MBS_ERR_LOW_LAPACKE
#define _MBS_ERR_LOW_LAPACKE
Low Level error number problem with Lapacke system resolution = -5.
Definition: mbs_errors_names.h:137
EulerEx
@ EulerEx
Definition: integrator.h:29
mbs_errors_names.h
rosenbrock
int rosenbrock(int n, int(*derivs)(double, double[], double[], MbsData *, MbsDirdyn *), double *x, double y[], double eps, double hmax, double htry, long nmax, double dydx[], double yscal[], double *hnext, MbsData *s, MbsDirdyn *dd, double *hdid)
Fourth-order Rosenbrock step for integrating stiff problems, with monitoring of local truncation erro...
Definition: rosenbrock.c:105