Elastic Deformation Using Boundary Element Methods Maxim Garber
ArtDefo: Accurate Real Time Deformable Objects Video ArtDefo: Accurate Real Time Deformable Objects Doug L. James and Dinesh K. Pai University of British Columbia (in Canada ) presented at SIGGRAPH’99 Realtime Haptic interaction Implemented in Java3D Linear Elastic Deformation valid as long as deformations aren’t too big Homogeneous Material
Outline This presentation goes backwards. ArtDefo – a real time implementation of BEM BEM – a method for solving linear elasticity Linear Elasticity – the nasty math [We start with the results, and then dig into the theory]
Outline ArtDefo – a real time implementation of BEM. BEM Linear Elasticity
ArtDefo (0) Deformable object is represented as a polygonal mesh. Rendered using a subdivision surface. Object can be deformed by contact with one or more polygonal probes.
ArtDefo (1) At each point xi of the boundary mesh we need to compute a displacement u(xi) for deformation and force p(xi), for haptics. Let u and p be the concatenated force and displacement vectors for all n boundary nodes xi. u and p have size 3*n
[We’ll see where this comes from later] ArtDefo (2) Assume we have a linear system: Hu = Gp that relates the displacements and forces. [We’ll see where this comes from later] H and G are dense 3n* 3n matrices, where n is the number of points on the boundary. Think of radiosity form factors
ArtDefo (3) Boundary Conditions Displacement conditions, set u(xi) at some boundary point xi, to represent collision. Force conditions, not usually used, so force is free to change with deformation. Once boundary conditions are specified we collect the unknowns in Hu = Gp to get a system: Av = z where A, v and z depend on the specific boundary value problem (BVP)….so they change as you change contact points or contact displacements
ArtDefo (4) Interactive Simulation Changing Boundary Values Recall: (Hu = Gp) => (Av = z) for a particular BVP ArtDefo (4) Interactive Simulation Changing Boundary Values happens when contact point is the same, but displacement amount changes. Take A0 for a particular BVP and precompute A0-1H and A0-1G. Compute several such reference solutions. Generate new solution, v, by: uj and pj are changes in the specific boundary values for column j
ArtDefo (5) Interactive Simulation Recall: (Hu = Gp) => (Av = z) for a particular BVP ArtDefo (5) Interactive Simulation Changing Boundary Conditions happens when probe makes contact (or breaks contact) with a boundary point. Use coherence in contacts, i.e. running your finger along the surface, replaces one displacement boundary condition with another. Use the Sherman-Morrison-Woodbury Formula to compute As-1 for a new BVP from precomputed matrix Ao-1. [we’re not going into this any further, but its good to know that this trick exists]
Why Use This Instead of FEM? Only solve for forces and displacements on the surface of the object this is all you need for graphics and haptics no need to generate mesh of entire volume matrices as smaller More accurate than FEM forces are solved for just like displacements instead of using difference formulas
Why Not Use This For Everything? FEM has sparser matrices which permit faster methods of solution in some cases. FEM gives you internal information engineering analysis simulating fracture FEM is more general BEM is restricted to homogenous materials, although a small number of different regions could be modeled with internal boundaries.
Outline ArtDefo BEM – a method for solving linear elasticity
BEM (1) Let = the object volume, = the object boundary Assume that we have an integral equation for linear elasticity: [We’ll see where this comes from later]
BEM (2) Lets analyze this thing: This equation must hold at every point x on u(y) and p(y) are the familiar displacements and forces at a point y We have three 3x3 matrix functions : c(x) is a smoothness function u*(x,y) and p*(x,y) are tensor fields representing the known fundamental solutions, and can be precomputed b(y) are the body forces, e.g. gravity, that act at every point of The integral over can be entirely precomputed, although in this paper body forces are ignored, so this last term goes away.
BEM (3) To solve this equation: Discretize into a mesh, with nodal points at the centroids of the mesh elements. Consider u and p as 3n-vectors of displacements and forces at all of the nodal points Interpolate values at points x between the nodes: u(x) = (ux, uy, uz)T = (x)u p(x) = (px, py, pz)T = (x)p where (x) is the 3 by n interpolation matrix (linear interpolation)
BEM(4) Discritizing and solving for all N nodal points xi gives: where ci = c(xi), ui = u(xi) and later pi = p(xi) The integrals over have been broken up into sums of integrals over each element j The u(y) and p(y) terms have been replaced by interpolated values (y)u, and (y)p.
This is what we need for the ArtDefo formulation BEM (5) If we take the matrices and and isolate the components that multiply against each uj and pj in u and p we get: Finally, we roll in the ciui terms: to get This is what we need for the ArtDefo formulation
Lets go to the overheads! Outline ArtDefo BEM Linear Elasticity – the physics and math Lets go to the overheads!
Conclusions The calculus behind BEM is: Not Trivial Navier Equations Theorems of Betti Integral Equations Loaded with Nasty Notation (some of which I simplified for this presentation) Tensor notation Einstein index notation
Conclusions The calculus behind BEM is: Well Established there are books on the subject Mostly Avoidable in most cases you just need the final result to implement it
References Papers James, D. L., Pai, D. K. “ArtDefo: Accurate Real Time Deformable Objects”, Computer Graphics SIGGRAPH’99, July 1999 Hunter, P. and Pullin. A., “FEM/BEM Notes”, Department of Engineering Science, The University of Auckland, New Zealand
References Text Books (in order of usefulness) Paris, F. and Cañas, J. “Boundary Element Method Fundamentals and Applications” Oxford University Press, 1997 main reference for the math overheads Kythe, P. K., “An Introduction to Boundary Element Methods”, CRC Press, 1995 some minor help when the book above was not clear Kreysig, E., “Advanced Engineering Mathematics” 7th Edition, John Wiley & Sons, 1993 very minor help with some math and notation
Nasty Notation This is notation that I found in most text books on the subject of BEM. I got rid of most of this in the math I presented. Einstein Subscript Notation repeated subscript implies summation comma in subscript implies partial derivative
Example: Who can figure this out? Nasty Notation This is notation that I found in most text books on the subject of BEM. I got rid of most of this in the math I presented. Kronecker Delta Function ij = 1, if i = j ij = 0, otherwise Example: Who can figure this out?