David B. Benson wrote:OneWhiteEye --- After thinking about it for a bit, I suggest using slabs rather than spheres.
Very interesting you should say this. Previously, I'd worked with slabs; you may remember the 13 story sim with floor slabs over at physorg. I've had problems with slabs and stability. Sometimes it's not a matter of the simulation going bananas, more a matter of how ideal rigid slabs would behave if they existed in the real world. Either way, bananas or too perfect, both give the same result: behavior not seen in the real world. An example is a crush-up run I did, originally posted in einsteen's WTC7 collapse model thread (http://the911forum.freeforums.org/relation-collapse-time-and-collapse-energy-in-a-simple-model-t17-15.html#p1161
Tiny, but if you can see, it's quite similar to what you describe in the rest of your post. One slab per floor, one invisible support per story. The interesting thing, however, is the collapse arrest. As Hambone pointed out in the next post, my floors were too bouncy. You simply don't see that in real life, materials are generally so inelastic and lossy. I had to artificially dampen the motion beyond what seemed reasonable to tame the oscillations and, even so, the problem did not fully go away.
What happened there was that the physics engine refused to produce motion in accordance with a simple crush-up model - in particular 'the pile' at the bottom. A simple model dictates stuff hits the bottom, immediately stops and sticks in an ever growing debris pile. That's not the way rigid bodies work unless there's a magnetic attraction between, or at least some adhesion on contact. While the body parameters include restitution
, which can be set to zero, it turns out this is insufficient in some cases to stop all motion upon collision. If it's a sphere, or the edge of a cube, yes this technique will permit a fully inelastic collision. However, it will not stop a body from being rotated in eccentric collision with another body. Slabs and tubes, having long moment arm, are particularly sensitive to this effect.
Short story long, a resonance effect stored kinetic energy in oscillations of the debris pile such that the floor slabs were bouncing back up to meet the descending block. The net effect at a particular superposition of these oscillations was to provide a cushion for the block in its descent! This is how that run came to be an arrested collapse. Tweak the parameters a little and it will go to completion. I believe the phenomena can even be fit within einsteen's model by allowing imaginary solutions; normally the energy would disappear into ideal inelastic collisions.
That's the downside of slabs.
But... I'm glad you raised the issue because that's pretty much what I was going to propose as a first stab, anyway. Not wanting to disappoint. I think it would be nice to work up to a cubic lattice but it's necessary to scale up incrementally to validate along the way, and some quick results are welcome. I may switch between blocks, slabs and spheres, or whatever, but we really must start with small, simple structures. Not to mention, if my calcs are correct, a simple cubic lattice 10 units on a side has only 1000 nodes, but 5400*
nearest neighbor joints. I do not trust a model with over 10,000 joints unless it's at the end of a series of scale-ups.
There is but one slab per elevation unit, held up by a single "glass" rod. Both are perfectly rigid. The slab has infinite strength, but the rod shatters and disappears at some load limit.
The environment I've chosen, at least to start with, allows constraints in the form of joints (rigid or flexible, optionally breakable) between bodies. These joints don't have any material representation, they're just programmatic constructs.**
Therefore the very things that can be used to hold pieces together already have the desired property. It's more
work if you want to see them, because something visible has to be created to represent them.
This is the most severe test of the crush-down equations I can think of. I'd be termpted to use Frank Greening's equations, but that would not be an FEA style analysis.
My thought is that a valid simulation will correspond nicely to Greening's equations. The KE/PE/MV etc data in the crush-ups I did (as above) looked like the plots produced using einsteen's simplified model.
I recommend just using Newton's laws, force of gravity, and the above material properties.
Already built in to an optimized solver. I'll grant you that it is NOT optimized for accuracy, and has many drawbacks, but it's better than anything I could write myself.
That way doubters, if sane, cannot deny what they see.
I expect it will take some significant justification to convince skeptics, and so it should, as skepticism is advised. If this isn't done right, it will be meaningless. As it is, there's a chance it will fail to deliver altogether, but I'm going to work it.* Oops, I double-counted the joints. Each interior point, for example, has 6 attach points but the joint itself is shared with one other body. Still, better the joints number in the hundreds rather than thousands.** I realize that sounds stupid, all of the components are programmatic constructs; there's no mass or surface associated with joints
PS - I have what might be an elegant plan for 'cooking' an amorphous complex of bodies using fewer joints, down the road. It would parallel your sawdust and glue, in a way. Many small structures can be generated which are composed of varying cylinders in a random arrangement with one joint between each nearest neighbor. A large collection of these could then be dropped, in simulation, into a virtual bucket. The group, at rest, can then be 'frozen' in place by adding (somewhat stronger) joints between the small components. This leaves a lot of voids and introduces irregularity into the structure to smooth things out a bit in the solver.