# Recommended Reading for Real Time FEA Deformations

## Recommended Posts

Helderash    144
Hey folks! I'm just about to get started on my six month Master's project, based around the real time deformation of objects during collision (say in a racing game), using Finite Element Analysis. I'm currently comfortable with all the mathematics behind FEA, and the programming involved in coding it, but there's a few other topics I'm a little unsure about, namely: -Reading in vertex data from a mesh generated using a 3D package, to fill a vertex buffer. -Vertex-Vertex collision detection (I have some experience dealing with collision of spheres, but I've never done any collision detection on irregular shapes). -I'm a little rusty on the Physics required, though I'm happy to read any in depth Physics text book (my first degree was in Physics). I was just wondering whether anyone could recommend any books, papers or algorithms on topics that cover the above, as well as (if possible, though I may be wishing for a little too much here) a similar application of Finite Element Analysis. I'm probably going to use a software library to deal with the solution of linear equations, and will be using Ogre for visualisation, so I'm trying not to worry about those for the time being. Oh, I'm also more than happy to use a ready made software library for the collision detection too if anyone knows of a good one, so long as I can handle the response myself (the finite element analysis application is the major theme of the project). Thankyou very much for your help, it is very much appreciated! James.

##### Share on other sites
grhodes_at_work    1385
Interesting topic area! Are you looking to do something novel, or just a typical implementation?

As for topic one...vertex data into a vertex buffer...If you're using Ogre for visualization, I would go through the few basic Ogre tutorials. This will show you how to build a scene for visualization, though it won't specifically show you how a collection of vertices is loaded into a vertex buffer. I don't really think you need to worry about the low-level OpenGL/Direct3D API details *unless* you were writing your own renderer *or* you plan to do some physics on the GPU itself (GPGPU).

For collision detection, I really recommend Christer Ericson's book (see http://www.realtimecollisiondetection.net/ for info). Its a very fine read and highly recommended (by myself), though you could find more comprehensive coverage of any given subtopic for free on the internet (e.g., google UNC's Team Gamma, Gino van den Bergen's SOLID site, etc.) His discussion of GPU-based collision detection doesn't cover all the ideas that are out there now, but it gives you some ideas and is a nice solid introduction to collision detection principals and practice. Buy a copy if you can afford it, otherwise check with your library.

I'm unsure what you're asking for in your last question. You say you're comfortable with FEA, but rusty on the physics??? What physics are you rusty on?

##### Share on other sites
Helderash    144
Thankyou for the help grhodes, and sorry for my rather late reply (it's been one of those weeks).

Ericson's book on collision detection does seem very interesting, and i'm very tempted to buy it along with his game physics book.

As for the Physics problem:

When doing similar sorts of work it seems many people arrive at the system of linear equations, F = kx, where k is the stiffness matrix. I believe this appears sensible if we're modelling the solid as having springs of stiffness 'kij' between each of the FE nodes.

However, for the report Im wanting to do a general derivation of this. I'm currently looking around for a continuous equation describing the deformation of a body under an applied force, where the force is applied over an area of the body (there's also the need for the bodies to lose momentum as they collide, so they "bounce" apart at the correct times). I must admit I did little dynamics at university (focusing on statistical physics), and all my textbooks seem to skip this out. Sadly, all my FEM books focus on convection-diffusion problems rather than deformation problems.

As deformation is something widely done in the game's industry I was hoping there was a book covering its Physics in detail (or an article laying around the internet somewhere). My university library seems to avoid stocking books on games, but I've just picked up a hefty pile of books to go through this weekend on Dynamics. Hopefully an answer lies within... :P

Thanks again for all your help!

##### Share on other sites
grhodes_at_work    1385
The stiffness matrix in a general FEA method is actually very general. It is quite an oversimplification to say it is like springs between nodes. The stiffness matrix diagonal for linear FEA does give spring-like (elastic) behavior along a degree-of-freedom, but the off-diagonal elements can represent complex deformation and interaction amongs the degrees-of-freedom. Generalized FEA can model continuous deformation given generalized loads such as pressures and body loads. (A generalized 6-DOF force/moment load applied to a surfadce is often called a surface traction load in FEA lingo, for example.) As far as I know, most element formulations do expect the load to be distributed out to the vertices, but that is because the vertices are where deformation is modeled. There are higher-order elements that represent element faces not as flat planes or triangles, but as curved patches. For these higher-order elements, you still have vertices...more of them and some being in the interior of the element. You still have to distribute loads out to the vertices, but you can get higher-fidelity modeling. Beyond that...there are also nonlinear FEA element formulations in which the stiffness matrix isn't linear, and can represent, for example, plastic deformation and creep.

I guess I only intend to point out that FEA may be more sophisticated than you are aware. Check out ABAQUS for an example of a commercial vendor who has a very sophisticated FEA solution.

Some of these advanced things may not have been integrated into a real-time simulation yet.

##### Share on other sites
Helderash    144
I think I've found over the past few days that you are most certainly correct, and my initial view of the stiffness matrix was highly naiive.

I believe I've now come to a stage in my understanding where I'd feel comfortable beginning a design brief and starting out on some aspects of the implementation. Calculating the values of the stiffness matrix still eludes me however. There seems to be huge amounts of information lurking about on calculating the stiffness matrix in very specific cases, and very little on the basics (e.g. the stiffness matrix for a single cubic element with 3 degrees of freedom).

I hear software such as Maple can calculate stiffness matrices, so I may take a look down that avenue.

Thanks once more for your help! It's very much appreciated! :)

##### Share on other sites
grhodes_at_work    1385
Computing the stiffness of a single element is simply fundamental to the FEA technique. As far as I know, there ought to be some quite good textbooks that derive stiffness matrices for individual solid elements of various types (hexahedron, tetrahedron, etc. shaped linear elements). Probably some of these show not only how to compute the stiffness matrix component for a single element with isotropic behavior, but also things like simple anisotropic behavior. I have *no* idea whether it is any good or not, but Thomas Hughes has a book called "The Finite Element Method: Linear Static and Dynamic Finite Element Analysis." Reason I mention it...it is inexpensive and the folks on Amazon.com like it. This is NOT AT ALL an endorsement. Simply an indication of a book that is available and not too pricey. Well, in my search I found too many books to mention. If you have access to a university engineering school library, you should easily be able to find a large number of fundamental books on the subject. Please just stay away from books that have a product name in the title, such as "FEA with ANSYS." I think those would be less focused on theory and more focused on product.

Advanced graduate texts might talk about higher-order element formulations somewhat, or nonlinear behavior, but that is where I'd expect textbooks to break down and journal papers to take over. For linear behavior, you really ought to be able to find what you need, and it'd be a wonderful starting point.

(A quick amazon.com search did turn up a few books on nonlinear FEA.)