1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
while (iter < tf){
iter += dt;
fprintf(p_pot,"\n%f ", iter);
for(i = 0 ; i < npart ; i++) {
epsdt = exp(-dt/t_part[i]->eps[0]) ;
t_part[i]->x[0][0] = (t_part[i]->x[0][1])*epsdt + (dt/2.*t_part[i]->eps[0])*
( (t_part[i]->tab_f[0])(t_part[i]->x[t_part[i]->nvar_mone][t_part[i]->delay], t_part[i])
+epsdt*(t_part[i]->tab_f[0])(t_part[i]->x[t_part[i]->nvar_mone][t_part[i]->delay_pone], t_part[i] ) ) ;
fprintf(p_pot,"%f ", t_part[i]->x[0][0]) ;
for(j = 1 ; j < t_part[i]->nvar ; j++) {
epsdt = exp(-dt/t_part[i]->eps[j]) ;
t_part[i]->x[j][0] = (t_part[i]->x[j][1])*epsdt + (dt/2.*t_part[i]->eps[j])*
( (t_part[i]->tab_f[0])(t_part[i]->x[j-1][t_part[i]->delay], t_part[i])
+epsdt*(t_part[i]->tab_f[j])(t_part[i]->x[j-1][t_part[i]->delay_pone], t_part[i]) );
fprintf(p_pot,"%f ", t_part[i]->x[j][0]) ;
}
// Décalage des valeurs:
for(j = 0 ; j < t_part[i]->nvar ; j++) {
for(k = t_part[i]->delay_pone ; k > 0 ; k--) {
t_part[i]->x[j][k] = t_part[i]->x[j][k-1] ;
}
}
}
} |
Partager