Re: Elastic energy

• From: Janek Kozicki <janek_listy@xxxxx>
• Date: Sun, 4 Jul 2010 18:38:38 +0200

```chiara modenese said:     (by the date of Sun, 4 Jul 2010 09:15:03 +0000)

> Thanks Janek for explanation! And thanks Bruno for remind me I should set to
> True the bool traceEnergy ;) I did it. But I do not understand the results.
> You can also reproduce them setting traceEnergy=True in the script I
> attached in this thread. Please just see the attached plot. The code of
> plasticDissipation() I am sure it is correct. There is sliding as expected
> in fact. But what is wrong now?

hmm. I remember calculating internal work, and in fact I remember
that we stumbled upon this problem.

(I hope that your UTF-8 works good, because I'm using UTF below)

What is the work of a typical spring?

W=∫F*dx

F=k*x

W=∫k*x*dx = k*x²/2

, see that squared distance factor?

But we need to integrate that in a little different manner, because
we are summing from one iteration to another. Let us make a plot of
force versus displacement and calculate the surface area below the
force. To make it simple we are integrating using the Trapezoidal Rule:

Wᵢ = (Fᵢ+Fᵢ₋₁)*Δxᵢ⁄2

, where ᵢ is the iteration, Fᵢ₋₁ is previous force, Fᵢ is
current force, Δxᵢ=xᵢ-xᵢ₋₁ is the displacement that happened from
iteration ᵢ₋₁ to ᵢ. Now if we perform summation over all
iterations, like that:

W += Wᵢ

we would get:

i="now"
W =   ∑ (Fᵢ+Fᵢ₋₁)*(xᵢ-xᵢ₋₁)⁄2
i=1

In the end we were using that formula for all DOFs, to get a total
work, as a sum of normal, shearing and rotational displacements over
respective forces (and moment).

W=Wn+Ws+Wr

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

I don't have the implementation at hand right now, I'll find it
tomorrow. I might have made some mistake above, but you should get
the general idea.

If I find a mistake I'll let you know :)

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

```