Green`s function

Overview
Class #7 (Thurs, Feb 6)
• Black box approach to linear elastostatics
• Discrete Green’s function methods
– Three parts:
• What are Green’s functions?
– Precomputation
• Fast contact handling via low-rank updates
– Capacitance matrix algorithm
• Multiresolution extensions (later)
Linear Elastostatic Models
(recap from last class)
• Small-strain time-independent
(static/equilibrium) deformation response
• Various origins, e.g., solid bodies, thin
shells, abstract linear systems, …
• Various surface representations and
discretization possible, e.g., FEM, BEM,
FVM, FDM, spectral,…
GF Deformation Basis
• Green’s functions are physically based basis
functions adapted to
• particular geometry
• particular constraints
• GF matrix is an input-output model of the linear
deformable system (for a particular BVP-type)
• Relates displacements to tractions, etc.
• We’ll focus on surface constraints & surface GFs
• Also works for volumetric quantities
• displacement, stress, strain, strain-rate, etc.
Some Graphics References
• See webpage
– Cotin et al., 96/99.
– James & Pai
• ARTDEFO: Accurate Real Time Deformable Objects, In
SIGGRAPH 99 Conference Proceedings, ACM SIGGRAPH,
1999.
• A Unified Treatment of Elastostatic and Rigid Contact for
Real Time Haptics, Haptics-e, The Electronic Journal of
Haptics Research (www.haptics-e.org), 2(1), 2001.
• Doug L. James and Dinesh K. Pai, Multiresolution Green's
Function Methods for Interactive Simulation of Large-scale
Elastostatic Objects, ACM Transactions on Graphics, Volume
22, No. 1, Jan. 2003.
• …
Discrete Green's Functions (GFs)
(in a nutshell...)
• Reference BVP (RBVP) (0u , 0p )
0
 u : Nodes with displacement constraints
0
 p : Nodes with traction constraints
• Green’s function matrix
  [1 2  n ]
• General solution to RBVP (barspecified BV)
v  v 
 u   p
j
j0u
j
j
j0p
j
Example:
Displacement Constrained Model
(white dots indicate “fixed” vertices)
Corresponding Green’s Functions
• GF for this vertex is the response due to a vertex
force in the x, y and z directions
• Use linear superposition to combine responses
Anatomy of a Green’s Function
• GF column corresponding to jth node, j
 1j 
  


 j    ij 

 Block influence coefficient
  
33
ij  
 nj 


describes effect of jth SBV on ith UBV.
Anatomy of a Green’s Function
• GF corresponding to a single vertex…
Boundary Value Notation
• Various model descriptions/spaces possible
• Variables defined at n nodes/vertices:
x=(x1,x2,…,xn)T
• Continuous displacement u(x) and traction p(x) fields,
e.g., p(x) 

n
 (x) p k
k 1 k
• Discrete displacement u and traction p fields, e.g.,
u=(u1,u2,…,un)T, uk=u(xk)
p=(p1,p2,…,pn)T, pk=p(xk)
• Force relationship: fk=akpk, ak=kd
• Sign convention: (uk,pk)0
Boundary Value Problem (BVP)
• Specified and unspecified nodal variables
u j : j   u
p j : j   u
vj  
and v j  
p j : j   p
u j : j   p
• (u, p) are complementary node sets specifying
nodes with u or p constraints
• BVP: Given v and (u, p)  Compute v
• (Mixed nodal boundary conditions possible)
Example: BEM (from last class)
Identification with BEM equations
Hu=Gp
- G: j : j   u
 H: j : j   u
A: j  
and A: j  
H
:
j


G
:
j


:
j
p
:
j
p


(ARTDEFO paper)
Recap: Solving the BVP
Hu=Gp
H,G large & dense
Specify boundary
conditions
Red: BV specified
Yellow: BV unknown
• A v = z, A large, dense
Green's Functions (GFs)
• Reference BVP (RBVP)
( ,  )  (A 0 , A0 )
0
u
0
p
• Green’s function matrix
  -A A 0  [1 2  n ]
-1
0
• Solutions to RBVP are
v  v 
 u   p
j
j0u
j
j
j0p
j
Data-driven GF Formulation
•
•
•
•
•
•
Excellent for interactive applications!
Precompute GFs for speed
Exploits linearity
Avoids redundant work
Optional boundary-only description for speed
“Black-box” model definition
Force-feedback Rendering
More generally...
• GFs: fundamental response of a linear system
• See whiteboard:
• If Lu=f + BVP then GF, G, satisfies LG=delta + homog BC.
• In linear elasticity, there are formulae for “free space”
solutions, and a few others.
• Survey of GFs for other physical phenomena
• We want Green’s functions for a particular deformable object
(& constraint configuration), hence
– Numerical approx  “discrete Green’s functions”
Fast Capacitance
Matrix Algorithms
ARTDEFO: Accurate Real Time Deformable Objects
In SIGGRAPH 99 Conference Proceedings, ACM SIGGRAPH, 1999. (with Dinesh K. Pai)
A Unified Treatment of Elastostatic and Rigid Contact for Real Time Haptics, Haptics-e,
The Electronic Journal of Haptics Research (www.haptics-e.org), 2(1), 2001. (w/ DKP)
Exploiting BVP Equation
Structure
(0) (0)
A v =z
(0)
(1) (1)
A v =z
(1)
(2) (2)
A v =z
(2)
(3) (3)
A v =z
(3)
Boundary Value Changes
Constraint type (positionforce) doesn’t change
Only the value of the constraint changes
Boundary Value Changes
•BV changes only affect z in Av=z
=
Hu = Gp
Av=z
•Traction-free BC are trivial: •0+0+0+...
Boundary Condition Type
Changes
Position  Force constraint type switching
Intermediate BV changes
Boundary Condition Type
Changes
•BC change swaps a block column of A
=
= +
Hu = Gp
Av=z
Sherman-Morrison-Woodbury
•Idea: Exploit coherence between BVPs
•If A s  A 0  δA s E T 



1
A  A - A A s I  E A A s E A
-1
s
-1
0
-1
0
T
-1
0
• s-by-s capacitance matrix 
• Smaller matrix to invert and store!
=
T
-1
0
Motivation: Changing BVP Type
• Tractiondisplacement constraint switching
• Example: single nonzero constraint: v   jp j
u j   jjp j
 Self-effect relationship:
-1
 Equivalent traction constraint: p j   jj u j
 Equivalent Green’s function (displ. constraint):
1

ΞijΞ jj , i  j
(u)
(u)
ξ j   1
s.t. v  ξ j u j
 Ξ jj , i  j
• Systematic formulation is CMA
Capacitance Matrix Algorithms
• Solving general BVP using RBVP’s GFs
• Low-rank updating techniques
• Long history in computing:
–
–
–
–
–
Sherman-Morrison-Woodbury et al. (`50)
Static reanalysis
Contact mechanics [Ezawa & Okamoto 89]
Domain decomposition
Real time simulation with precomputed GF [Cotin et al. 96,
JamesPai99]
CMA: Notation
• Updated capacitance node list, S
S=(S1,S2,…,Ss)
for s updates.
• Contact compliance matrix, C
• C = -ETE
• Capacitance matrix
• E: densesparse row expansion
3n3s
E  [I:S1I:S2 I:Ss ]  
• e.g., S={k}, E=I:k3n3
• ET: sparsedense row extraction
CMA: Formulae
• Solution to any BVP in terms of 
Using Sherman-Morrison-Woodbury...
v = v(0) + (E+(E)) C-1ET v(0)
_
(0)
T
T
v = [ (I-EE ) - EE ] v + B
C = -ETE = s-by-s capacitance matrix
• Direct solver with input/output sensitivity
• O(s3) C-1 construction for s switched contacts
• O(s2+sn) solve for s nonzero BC and n outputs
CMA: Formulae (cont’d)
Capacitance Matrix Algorithm (CMA)
v = v(0) + (E+(E)) C-1ET v(0)
_
(0)
T
T
v = [ (I-EE ) - EE ] v + B
C = -ETE = s-by-s capacitance matrix
1.
2.
3.
Compute C-1
Compute v(0)
Compute s updated BVs:
ET v = C-1ET v(0) 3s
4. Add correction to v(0) to obtain v:
v(0) += (E+(E)) (C-1ET v(0))
_
(0)
(Simpler when v = -v )
Demo!
Early ARTDEFO Examples
ARTDEFO: Accurate Real Time Deformable Objects
In SIGGRAPH 99 Conference Proceedings, ACM SIGGRAPH, 1999. (with Dinesh K. Pai)
Capacitance Inverse Updating
• Sequential inversion
– Use one C-1 to construct another
– Exploits temporal coherence between matrix BVP
• O(s2s) cost for s BC changes
• Effective updating of explicit matrix inverse
Capacitance Inverse Updating
Haptic Interaction