# yade-users team mailing list archive

## Re: Elastic energy

• From: Janek Kozicki <janek_listy@xxxxx>
• Date: Sun, 4 Jul 2010 20:47:40 +0200

```chiara modenese said:     (by the date of Sun, 4 Jul 2010 17:27:04 +0000)

> Hi Janek, thanks for your anwer.
> >  W=∫k*x*dx = k*x²/2
> >  Wᵢ = (Fᵢ+Fᵢ₋₁)*Δxᵢ⁄2
> >
> Not sure to understand the point.

I wanted to say that I was actually doing a numerical integration
with trapezoidal rule instead of using analytical method.

>  Using trapezoidal rule, hence working out
> the net work done by the spring in an incremental way, or either taking the
> value of the integral should give you the same result.

This might be not true for slipping - we are entering plastic
behaviour regime. See below.

> Perhaps the mistake is in the computation of the plastic dissipation. But I

Let me rewrite this line from elasticEnergy():

energy += 0.5*(phys->normalForce.squaredNorm()/phys->kn + phys->shearForce.squaredNorm()/phys->ks);

E += (Fn²⁄kn + Fs²⁄ks)⁄2

The normal part Wn =∑ (Fnᵢ+Fnᵢ₋₁)*(xᵢ-xᵢ₋₁)⁄2 should be rather
equivalent to En+=(Fn²⁄kn)⁄2

But slipping might be actually different in those two approaches:

Ws =∑ (Fsᵢ+Fsᵢ₋₁)*(sᵢ-sᵢ₋₁)⁄2

and this: Es+=(Fs²⁄ks)⁄2

That is because the slip distance is implicitly calculated
in formula (Fs²⁄ks)⁄2, because after all:

Fs²⁄ks = (ks*s)²/ks = ks*s²

and I'm afraid that maybe s≠∑(sᵢ-sᵢ₋₁)  , because sᵢ is supposed
to follow the slipping path (or slip "trace") on the surface of a
sphere, while s is calculated from current value Fs.

To say in other words, I think that when spheres start to slip on
each other and Fs stays constant, the increment of s which stays
inside constant Fs differs from the path increment on the sphere's
surface slipping path sᵢ-sᵢ₋₁.

I'm not sure if I worded myself clearly.... I hope that you can
understand what I mean?

IIRC Vaclav was calculating somewhere the total accumulated
_geometrical_ path of one sphere on another sphere.

best regards
--
Janek Kozicki                               http://janek.kozicki.pl/  |

```