This file implements the functions of the Euler Implicit integrator in C. Warning : not working yet. More...
#include "integrator.h"#include "nrfct.h"#include "mbs_message.h"#include "mbs_1D_array.h"#include "mbs_dirdyn_struct.h"#include "mbs_euler_implicit.h"Functions | |
| 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. More... | |
This file implements the functions of the Euler Implicit integrator in C. Warning : not working yet.
Creation date: April 2018
@source Arnold M. et al, Linearly implicit time integration methods in real-time applications: DAEs and stiff ODEs Multibody System Dynamics, 2007, 17:99-117
(c) Universite catholique de Louvain
| int euler_implicit | ( | double | y[], |
| double | dydx[], | ||
| int | n, | ||
| double * | x, | ||
| double | h, | ||
| double | yout[], | ||
| int(*)(double, double[], double[], MbsData *, MbsDirdyn *) | derivs, | ||
| MbsData * | s, | ||
| MbsDirdyn * | mbs_dd | ||
| ) |
Euler Implicit integrator implementation.
@source (adapted from) Arnold M. et al, Linearly implicit time integration methods in real-time applications: DAEs and stiff ODEs Multibody System Dynamics, 2007, 17:99â117
| y | state vector of variable |
| dydx | derivative of y by x |
| n | number of variables |
| x | current time value, at which the function needs to be computed |
| h | time step |
| yout | solution of the incremented variables |
| derivs | the function computing f' |
| s | the MbsData structure of the model on which dirdyn analysis is computed. |
| mbs_dd | the MbsDirdyn structure related to the integration. |
calls an external function
A = (- h* Jv - h*h * Jp )
A = ( I - * Jv - h * h * Jp)
add 1/h in diagonal terms (identity matrix)
Compute the product : Jp * Xv
B = qdd + h * Jp * Xv
delta p = Xv + h * delta v
with delta v = B
Xv (n+1) with delta v = B
Xp (n+1)
1.8.17