This file implements the functions of the Euler Implicit integrator in C. Warning : not working yet. More...
#include "integrator.h"
#include "MBSfun.h"
#include "mbs_message.h"
#include "mbs_dirdyn.h"
#include "mbs_dirdyn_struct.h"
#include "mbs_euler_implicit.h"
#include "useful_functions.h"
#include "nrfct.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)