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
and a resulting stress of
−.01(μ + λ)
| 0 | 0
|
0 | −.01λ | 0
|
0 | 0 | −.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.