Elastons: Basics 3

Energy

The next step after stress and strain is to use them to compute the elastic energy (the energy due to deformations) in the body. It is computed as

 W(u) = \frac{1}{2} \int_\Omega \! \epsilon:\sigma \, d\Omega

(see also “Continuum Systems” on this wikipedia page). So basically the energy in each part of the object is summed up to arrive at the overall energy stored in the body.

Governing Equation

This is pretty much one of the major parts that one needs to understand to implement the method in the paper, I think. The governing equation is the equation that describes how external forces and the state of the object are related. The authors state the governing equation in their paper, shortly below equation 3:

\rho \ddot{u} + f_{d}(\dot{u})-\frac{\partial W}{\partial u} = f

along with the following definitions:

\rho – the density of the material

\ddot{u} – acceleration

f_d – a damping force

\dot{u} – velocity

WW – the elastic energy

u – displacement

ff – external forces

Governing Equation 2

Looking at another paper by Eric Parker and James O’Brien  (that looks pretty good actually), we find a formulation of this equation when the displacement has been discretized, that is, broken down into small units which define positions at which the displacement is sampled. The displacement and it’s derivates are now vectors, and the values they are multiplied with matrices.

Ma + Cv + K(x-u) = f

Here, the authors have the nomenclature of a as acceleration , v as velocity and u as displacement. The three matrices are

M – mass matrix

C – damping matrix

K – stiffness matrix

Looking at this equation, it reminds me of some other things:

If we remove the damping and stiffness part, we get f = Ma, which is very similar to the classical way of expressing Newton’s third law. The mass matrix here is the generalization of the mass for a rigid body, in that is defines how each element of the object resists changes in position as measured by the mass. The damping part is computed using the velocity, which reminds one of the way this happens in a spring as defined by Hooke’s law.

The stiffness matrix… Doesn’t really remind me of something else. What I thought when I saw this equation first is that this has to be where the connection between the individual units must happen. If you think about it, the state of all object parts/elastons must be connected. Otherwise, if an object drops onto the ground, the elastons couldn’t “know” that the object is being squashed from it’s own weight. Therefore, the stiffness matrix has to encode the relationships of all elastons, which also makes it (as is clear from the evaluation the authors have carried out) the most expensive computation during the simulation.

What strikes me as odd is that there seems to be no mention in the paper of the damping matrix. Do they not have one? Or maybe it’s too trivial and they feel they didn’t have to mention it. I guess I will see (if and when I actually get this running) if it is missing or not.

In the same paper where the second equation above is from there is a scheme how this equation can be solved:

M + \Delta tC + \Delta t^{2}K)v^{+} = \Delta tf + Mv-\Delta tK(x -u)

Here, \Delta t is the time step, v^{+} is the velocity at the end of the time step. Keeping in mind that everything here are matrices and vectors, this is equivalent to an equation Av = b defining a set of linear equations that can be solved to get the value of v. Using the velocity, it is possible to compute the actual displacement u at the end of the time step based on the displacement at the start of the time step.

Implementation

Concerning implementation, I haven’t made a bit of progress. The next goal is to write the code to set up a simulation for a voluminous body made up by a grid of elastons. This body will start out in the air, fall to the ground (modelled as a plane) and interact with it (probably by checking each vertex on the outside of the body against the plane). We’ll see how this goes.