3D Elasto Dynamics & Demo

The program contemplates an initial configuration which it takes to be unstrained. Some boundary conditions then begin moving or pushing at points on the boundary. F=ma is calculated for each mesh element throughout the volume and a velocity for each element is maintained. For each resulting strained element a stress tensor is computed and the resulting internal forces accelerate the elements throughout the body. Here are some overly succinct equations and a clarification.

The code assumes isotropic material and the demo also assumes homogeneous material. The bulk and shear modulus appear explicitly in the equations. The calculations are insensitive to the orientation of the zones except as it impacts the size of zones. As I use the terms a body that is distorted so that the point starting at (x, y, z) moves to (.99*x, y, z), suffers a strain of
−.0100
000
000
and a resulting stress of
−.01(μ + λ) 00
0−.01λ0
00−.01λ
where λ & μ are the bulk and shear moduli respectively.
This means that for a zero bulk modulus a cube compressed this way would push in the x direction but not in the y or z direction. Such a cube compressed in a vice would not bulge! Aerogel is a bit like this — it doesn’t bulge much.

Here is an introduction to the code.

Here is an demo for OpenGL for the Macintosh OS X.


Grok this. Read this. Consider this. Perhaps this code would fit in Blender.