Parallel Decomposition- based Contact Response Fehmi Cirak California Institute of Technology
Requirements to a contact library for the Virtual Test Facility Non-smooth geometries Modular software architecture for use with shell and solid solvers No problem dependent parameters Parallelization overhead in terms of implementation and
performance should be minimum
Some of the existing contact algorithms Explicit Methods
Penalty methods Include problem dependent parameters
Do not work for non-smooth geometries Explicit-implicit methods
Very hard to parallelize and/or not efficient
Motivation
Discrete Variational Mechanics Discrete action integral
with collision at time
Equilibrium and collision equations
Geometrically admissible configurations
Constraint on the variations
Inadmissible Configurations in 3DVertex-face
collisionEdge-edge collision
Constraint function g is defined as the
tetrahedron volume
Equilibrium equations
Collision equations Jumps in the momentum
Jumps in the kinetic energy
Collision events during explicit time-stepping of the equilibrium equations
Equilibrium and Collision Equations
Impact time tc Impact time approximation as used in
this work
Momentum Decompositions Prior to solving the collision equations the momenta
during the contact are decomposed into components
Normal component
Fix component does not lead to any relative motion
Solving the Collision Equations Non-frictional case
Closed form expressions for the momentum after the collision can be computed using the collision equations and momentum decompositions
Frictional case Friction is modeled as an impulse in the slide direction
Normal impulse same as in non-frictional case
Coulomb model for friction
Update nodal positions and velocities using standard time stepping schemes, such as Newmark
Search and remove inadmissible triangle-triangle intersections
Remove face-node penetrations by projecting the penetrating node to the closest point on the triangles surface
Remove edge-edge penetrations by projecting the penetrating edge to the closest point on the triangle edge
Transfer momenta between colliding vertices and triangles using momentum decompositions
Decompose the momenta prior to contact by computing , , , , and
Compute the normal impulse and the slide impulse Update momentum immediately after impact
DCR Algorithm (with Matt West)
Spheres Impact Without Friction
With Friction ( = 0.5)
Time step 500 Time step 2000
Time step 4000Time step 500 Time step 2000
Time step 4000
Spheres Impact without Friction
Radius 1.0 Neo-hookean material Thickness 0.05 Young’s modulus 21000
Poisson’s ratio 0.3Time step size 5.0e-6 Density 0.0785
0.0
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
0.00 0.01 0.02 0.03Time
Mom
entu
mlinear angular
0.0
100.0
200.0
300.0
400.0
500.0
600.0
700.0
0.00 0.01 0.02 0.03Time
Energy
total kinetic internal
0.0
100.0
200.0
300.0
400.0
500.0
600.0
700.0
0.00 0.01 0.02 0.03
Time
Energy
total kinetic internal
0.0
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
0.00 0.01 0.02 0.03Time
Mom
entu
mlinear angular
Spheres Impact with Friction (=0.5)
Length 1.0 Thickness 0.2
Time step size 5.0e-6
Neo-hookean material Young’s modulus
21000Poisson’s ratio 0.3Density
0.0785
Cubes Impact
Cubes Impact – Energies and Momenta
114.0
114.5
115.0
115.5
116.0
116.5
117.0
117.5
118.0
118.5
119.0
119.5
0.00 0.01 0.02 0.03 0.04 0.05 0.06
Time
Mom
entu
mlinear Momentum angular Momentum
0.0
1000.0
2000.0
3000.0
4000.0
5000.0
6000.0
0.00 0.01 0.02 0.03 0.04 0.05 0.06Time
Energy
total Energy kinetic Energy internal Energy
Data for non-smooth impact of five cubes
Parallel Contact Detection In large scale computations contact search takes up a
significant amount of time
There are basic differences in the communication patterns of contact search and element level computations
Contact search is an inherently global problem Finite element computations are local for explicit dynamics
For scalability different partitions for the solid and contact surface are necessary
ll
J L l
Contact partitioning with RCB algorithm
Solid partitioning with METIS
Parallel Contact Algorithm Solid solver provides the entire surface mesh and the
related vertex variables to all computational contact nodes
Surface mesh is partitioned with recursive coordinate bisection using Zoltan
An extended surface patch is assigned to each computational contact node
Each computational node performs on its assigned partition Serial search for collisions
Orthogonal range query with sparse buckets Local contact check for vertex-face and edge-edge penetrations
Apply the serial DCR algorithm
Collect all the modified vertex variables and return the surface mesh to the solid solver
Scalabililty - Two Disk Impact
Scalability runs performed on Frost by Sharon Brunett More tests for different examples in progress
0
0.25
0.5
0.75
1
4 5 6 7 8
CPUs (log2)
Sec
onds
per
con
tact
ste
p
13632 elements54528 elements218112 elements