← Back to team overview

yade-dev team mailing list archive

Re: time step with viscous damping

 

A lazy time-step determination :

I recall the problem we solve is:
$$a\ddot{X}+b\dot{X}+X=0$$

1/ If the viscous effects "b" are high compared to elastic effects, then
it means b>>1 and the "X" term can be neglected.
In that case a first order(*) explicit scheme will give
$$\dot{X}_{t+dt} = \dot{X}_{t}-dt.a/b.\dot{X}_{t}$$
or
$$\dot{X} = (1 - dt.a/b.\dot{X})\dot{X}$$
which obviously converges only if $$dt_v<2b/a$$.
In the absence of a better derivation, this condition should at least be
verified for all visco-simulation.

(*) If the current implementation uses previous velocity to determine
the viscous force, then it is first order scheme. Is it the case?

2/ If viscous effects are small in comparison with stiffness (highly
"under-relaxed", if you like), then the elastic times-step $$dt_e$$
given by GSTStepper is a good enough approximate.

3/ If nothing can be neglected, then there a critical timestep smaller
than the two timesteps defined above, this is the interesting but
difficult part.
It could be workarounded, maybe, by defining a sufficiently small safety
factor, like dt=0.5*min($$dt_e,dt_v$$). It would need numerical
experiments to see if this method applies.

I examined the true visco-elastic problem today and found a big equation
giving a conditon on dt, but I couldn't solve it by hand yet... :-(

Bruno






Follow ups

References