Sunteți pe pagina 1din 20

Contactimpact modeling in explicit transient dynamics

q
Martin W. Heinstein
a,
*
, Frank J. Mello
a
, Stephen W. Attaway
a
,
Tod A. Laursen
b
a
Engineering Mechanics and Material Modeling Department, Sandia National Laboratories, Sandia Corporation, P.O. Box 5800,
Albuquerque, NM 87185-0443, USA
b
Department of Civil and Environmental Engineering, Duke University, Box 90287, Durham, NC 27708-0287, USA
Abstract
In this article we discuss the treatment of contactimpact modeling in a large deformation explicit transient dynamic setting. Such
problems are posed mathematically by demanding the usual satisfaction momentum balance equations and boundary conditions for
each body separately, while imposing an additional set of constraints that govern the interaction of these bodies with each other. In
applying such methods to contact problems we emphasize two requirements: rst, that the treatment of contact should follow from the
development of the local (weak) and global (strong) forms of the contact equations in the continuum setting. Algorithms developed
from this framework are seen to readily handle the three-dimensional multi-body friction case. Second, and equally important es-
pecially in large applications is the practical aspect of computing the closest point projection for contact nodes, an essential component
of dening the contact constraints. This calculation is global in nature, accounting for the fact that contactimpact involves multiple
bodies interacting in unforeseeable ways. These requirements have guided the development of algorithms capable of treating contact
impact in PRONTO3D (M.W. Heinstein, S.W. Attaway, J.W. Swegle, F.J. Mello, A general purpose contact detection algorithm for
nonlinear structural analysis sodes, SAND92-2141, Sandia National Laboratories, Albuquerque, N-87185, 1992) are discussed in this
paper. 2000 Elsevier Science S.A. All rights reserved.
1. Introduction
In this article we discuss the treatment of an important class of nonlinear problems: those in which
multiple distinct domains interact through interfaces. In the particular case of large deformation solid
mechanics, such interaction typically takes the form of mechanical contact between multiple bodies.
Such problems are posed mathematically by demanding the usual satisfaction of momentum balance
equations and boundary conditions for each body separately, while imposing an additional set of con-
straints that govern the interaction of these bodies with each other. These constraints act to preclude in-
terpenetration of the bodies, insure compressive interaction normal to the interface, and satisfy whatever
friction law may be used to govern response tangential to the interface.
Contact constraints are characterized by extreme nonsmoothness and inherently require global inter-
action of kinematic degrees of freedom. This makes their algorithmic implementation dicult. The en-
forcement issues in managing the nonsmoothness (nonlinearity) and the eciency issues in dening global
kinematic constraints in an explicit dynamic framework are the topics of this article.
While precise statements of the contact constraints have been proposed and mathematically scrutinized
for small deformation, elastic problems for some time (see e.g., the early chapters of [12]), analogous
www.elsevier.com/locate/cma
Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640
q
This work performed at Sandia National Laboratories supported by the US Department of Energy, Sandia National Laboratories
under contract #DE-AL04-94AL8500.
*
Corresponding author.
0045-7825/00/$ - see front matter 2000 Elsevier Science S.A. All rights reserved.
PII: S 0 0 4 5 - 7 8 2 5 ( 9 9 ) 0 0 3 4 2 - 4
prescriptions for large deformation, multi-body, inelastic problems have only recently been introduced [13]
(for a series of discrete formulations for large deformation multi-body contact, which work well for specic
element cases in the implicit dynamics and quasistatics setting, see for example, [18,14,11,19], for their
counterpart in an explicit dynamics setting, see for example, [2,5,17]).
This work underscores the need for the complete development of the local (weak) and global (strong)
forms of the contact equations in the continuum setting. Algorithms developed from this framework are
seen to readily handle the three-dimensional multi-body friction case.
Equally important especially in large applications is the practical aspect of computing the closest point
projection for contact nodes, an essential component of dening the kinematic constraints. This calculation
is global in nature, accounting for the fact that contact/impact involves multiple bodies interacting in
unforeseeable ways. (For this reason, calculation of the projection is often referred to as contact detection
or searching.)
Eciency of the contact search issue, with increasing problem sizes, is more and more of concern since it
can easily dominate (bhalf) the CPU time required for simulation, (it is expected that a parallel computing
environment will increase the problem size even more). Several contact searching algorithms have been
proposed in the literature (several of which will be reviewed here), see for example, surface side-set pairing
[17], surface tracking [17,6], bucket searching [1,7], pinball contact [2], and a binary global search [8]. These
algorithms work successfully for a large variety of contact problems, though eciency in the parallel
computing environment is still an issue in most implementations.
The outline of the paper will be as follows. First, a summary of the contact enforcement issues in
transient dynamics setting will consist of: the contact problem as it is mathematically posed, the kinematic
descriptions and physical ideas necessary to write the constraints governing contact interaction on inter-
faces, a discussion of the implications of contact interaction on the global variational principle, and nally
an overview of the methods commonly used to enforce constraints in practice.
Second, important implementation issues associated with contact searching will be discussed including:
example implementations of a global bucket search and a binary global search, and implementation issues
involving uniqueness of the closest point projection.
Finally, the article is concluded with a state-of-the-art contact/impact example, with some discussion of
remaining issues.
2. Problem formulation
2.1. Contact constraint denition
Consider the motions u
(1)
and u
(2)
of two deformable bodies, denoted in their reference congurations
by X
(1)
and X
(2)
, and select C
(1)
oX
(1)
and C
(2)
oX
(2)
to include all prospective contact points over the
time interval [0Y T[ (see Fig. 1). Choosing any material point X C
(1)
, the gap function g
N
is dened with
respect to C
(2)
as:
g
N
(XY t) = min
YC
(2)
u
(1)
(X)
_
_
u
(2)
(Y)
_
_
sign(g
N
)Y (1)
where
sign(g
N
) =
1 if u
(1)
(X) lies in the interior of u
(2)
(X
(2)
)Y
1 otherwiseX
_
(2)
The material point of C
(2)
satisfying the minimization of (1) is denoted as Y(XY t). The contact pressure t
N
acting on the point X (positive in compression) is written as
t
N
= t n (3)
622 M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640
and the contact tangential traction acting on the point X as
t
T
= (I n n) tY (4)
where t is Piola traction acting at X and n is the outward normal to c
(2)
at u
(2)
(Y(XY t)).
With these notations, the contact constraints to be enforced for all X C
(1)
and for all t [0Y T[ are
summarized for frictionless response as:
g
N
P0Y (5a)
t
N
P0Y (5b)
t
N
g
N
= 0Y (5c)
t
N
g
N
= 0X (5d)
The rst three of these constraints can be conceptualized as shown in Fig. 2, with the shaded line denoted
admissible combinations of t
N
and g
N
. The nonsmooth relationship between the gap and contact pressure is
readily apparent.
The frictional constraints are most readily written in rate form, through consideration of a tangential
``gap'' rate L
v
g
T
, dened as follows:
L
v
g
T
= (V(X) V(Y(X))) (p
a
p
a
)Y (6)
where p
a
and p
a
are the contravariant and covariant base vectors associated with any appropriate surface
coordinate system used to describe C
(2)
, with these base vectors being evaluated at the current contact point
Y(X). Summation is to be assumed on repeated indices a, which will in general run between 1 and n
sd
1,
where n
sd
is the number of spatial dimensions in the problem. It is important to emphasize that L
v
g
T
is not
an ordinary time derivative, because the base vectors themselves change as sliding occurs, but is instead a
convected derivative whose denition ensures that (6) denes a frame invariant measure of rate of slip
Fig. 2. Graphical representation of normal contact constraints.
Fig. 1. Notation for the continuum frictional problem.
M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640 623
(see [13] for more detailed discussion). Use of the notation L
v
is meant to imply a Lie derivative, which can
be understood to be the time derivative of an object as viewed from an imbedded reference frame, in this
case the convected p
a
frame, that moves along with the point X.
The contact constraints appropriate for the prescription of a Coulomb friction law can now be expressed
as
U X= |t
T
| lt
N
60Y
L
v
g
T
f
t
T
|t
T
|
= 0Y
f P0Y
Uf = 0Y
(7)
where U is often referred to as the slip function and l may be recognized as the coecient of friction. To
those readers familiar with elastoplastic equations of evolution the analogy to Eq. (7) will be obvious. To
make the behavior of these equations more clear, let us make the denition of g
T
consistent with our slip
rate measure
g
T
=
_
I
c
(L
v
g
T
)
a
dt
_
_
_
_
p
a
Y (8)
where I
c
is the interval of time in contact for X. In other words, g
T
represents a slip distance measure in the
convected coordinate system, whose convected time derivative gives the slip rate dened above. A one-
dimensional schematic of the relationship between t
T
and g
T
implied by (7) is shown in Fig. 3.
Notably, the persistency condition (5d) is ordinarily not considered in traditional direct solution im-
plementations of implicit dynamics and quasistatics problems, but will be shown in the following to be
particularly useful for explicit dynamics implementations and more recently matrix-free iterative solution
techniques [9]. The indicated time derivative in Eq. (5d) can be evaluated without approximation as:
g
N
= n V
(1)
(X)
_
V
(2)
(Y)
_
Y (9)
where V
(1)
(X) and V
(2)
(Y) are the instantaneous material velocities of X and Y, respectively.
2.2. Variational principle
Integrating the weighted local momentum balance in each body and combining, one can show that the
following variational principle holds for the two body system (see e.g. [13]):
H u
+
Y u
_ _
H
c
u
+
Y u
_ _
= 0Y (10)
Fig. 3. One-dimensional schematic of the Coulomb frictional constraints.
624 M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640
where u is the collection of the u
(i)
and u
+
is an admissible material variation. H(u
+
Y u) is the sum of the
internal virtual work and the virtual work of the specied boundary tractions and body forces, and includes
contributions from both bodies. H
c
(u
+
Y u) is the contact virtual work, which has the following form (with a
contribution from both normal and frictional response):
H
c
u
+
Y u
_ _
=
_
C
(1)
(t
N
dg
N
t
Ta
dg
a
T
) dC
(1)
Y (11)
where dg
N
and dg
a
T
are the directional derivatives of g
N
and g
a
T
in the direction of u
+
, i.e.:
d
g
N
X=
d
db
[
b=0
g
N
u
_ _
bu
+
__
Y d
g
a
T
X=
d
db
[
b=0
g
a
T
u
_ _
bu
+
__
X (12)
It is noted that t
N
and t
T
a
in (11) are subject to constraints (5a)(5d) and (7), respectively.
3. Numerical implementation: explicit transient dynamics methods
Application of the semidiscrete nite element method to the variational equation for a contact system
gives rise to the following set of nonlinear ordinary dierential equations:
M

d(t) F
int
(d(t)) F
c
(d(t)) = F
ext
(t)Y (13)
which is to hold for all t (0Y T) and which is subject to initial conditions
d(0) = d
0
Y

d(0) = V
0
X (14)
In Eq. (13), Mis the mass matrix, F
int
is the internal force vector, F
c
is the contact force vector, and F
ext
is
the applied force vector.
3.1. Central dierence time integration
The most common explicit time integrator, central dierences, can be written in the following form for a
typical time step Dt (see, e.g. [2]):
a
n
= M
1
F
ext
n
_
F
int
(d
n
) F
c
[
n
_
Y
v
n1a2
= v
n1a2
Dta
n
Y (15)
d
n1
= d
n
Dtv
n1a2
Y
where subscripts n, n 1, etc. indicate indexing with time. Importantly, Mis conventionally a diagonalized
mass matrix, so that no coupled equations need be solved to advance the solution from time n to time n 1.
3.2. Choices for constraint enforcement
A key issue in the treatment of contact constraints in explicit dynamics is the choice of contact con-
straints to enforce. If we consider the frictionless case for simplicity, we recall from Eqs. (5a)(5d) that the
governing constraints are the classical KuhnTucker conditions usually used in implicit dynamic and
quasistatic problems (i.e., Eqs. (5a)(5c), plus the so called persistency condition on the gap rate (Eq. (5d)).
In physical terms, when the contact force is nonzero, both the gap and the gap rate should be zero. Al-
gorithmically speaking, it is generally impossible to enforce both of these conditions, so that a topic of keen
interest is how to reconcile this situation. In what follows we survey some of the approaches to this problem
as suggested by the literature.
Use of the penalty method to enforce (5a)(5c), i.e., the gap constraints, has been explored in the explicit
context by Belytschko and Neal [2] among others, and can be achieved by expressing F
c
via
F
c
[
n
X= e
N
G
T
N
G
N
d
_ _
n
Y (16)
M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640 625
where e
N
is the penalty parameter, which we take for convenience to be the same for all contacts. G
N
is an
n
con
n
eq
matrix, generally depending on the deformation, which multiplies dto produce and n
con
-vector of
the discrete constraints. To be more specic, one can relate the kinematic variables g
N
and g
a
T
for a single
constraint to the global solution d as
g
i
N
= G
i
N
d(t) (17)
and
Dg
i
T
= G
i
T
Dd(t)Y (18)
where G
i
N
is a 1 n
eq
row vector and G
i
T
is a (n
sd
1) n
eq
matrix. It should be emphasized that although
not explicitly indicated, both of these matrices will in all but the simplest cases depend upon the solution
vector due to the dependences of both the contact point and the surface geometry upon the deformation.
Using an assembly procedure to collect all the G
i
N
and G
i
T
allows one to write
g
N
(t) = G
N
d(t)Y Dg
T
(t) = G
T
Dd(t)Y (19)
where g
N
is taken to be and n
con
-vector of normal gaps, and Dg
T
is a (n
sd
1)n
con
-vector of (incremental)
tangential gaps. To complete the denitions, G
N
must be a n
con
n
eq
matrix and G
T
a (n
sd
1)n
con
n
eq
matrix, where they are assumed to contain zero entries for those constraints which are not currently
active.
The implementation of contact forces given in (16) is arguably the simplest and perhaps most pervasive
one to be seen in current codes; the interested may refer to [5] for a detailed explanation of one such
implementation.
However, it is also to be noted that this description has serious practical problems. As noted in [3] the
contact force is unaected by the deformation (and thus, the constraint values) at time n 1. This causes
the implementation of a Lagrange multiplier counterpart to (16) to be singular, meaning that there is no
unique unambiguous set of contact forces that will be approached as e
N
is made large. Further, we are still
subject to potential penalty sensitivity and since no well-dened Lagrange multiplier formulation exists,
augmented Lagrangian updating of a penalty solution cannot be meaningfully done.
In response to these concerns, researchers have been led to consider implementations that are to some
degree implicit in contact constraints, so that the contact forces depend in some manner on the congu-
ration at time t
n1
. As an example, an algorithmic representation of the rate constraint provides a mech-
anism by which augmented Lagrangian methods can be legitimately considered. Belytschko and Neal [2]
have proposed the following prescription for F
c
:
F
c
[
n
X= e
d
N
G
T
n
G
n
d
n
e
v
N
G
T
n
G
n
v
n1a2
Y (20)
which is the sum of a gap penalization and a gap rate penalization (using e
v
N
). Although (20) is written as a
penalty method, [2] show the Lagrange multipliers to be unique and of the proper sign for the case where
only rate constraint is enforced. Note that the matrix G
n
in (20) is the same for both kinematic constraints
(gap and gape rate); this is a direct consequence of Eq. (9). Also G
n
is more appropriately written as G
N
[
n
but for simplicity (since we are restricting our discussion to the normal contact constraints alone) we are
omitting the reference to N.
Enforcement of the rate constraint introduces a non-diagonal coupling between the discrete constraints.
This is seen by examining the Lagrange multiplier form of the rate constrained problem:
a
n
= M
1
F
ext
n
_
F
int
(d
n
) G
T
n
k
n
_
Y (21a)
v
n1a2
= v
n1a2
Dta
n
Y (21b)
d
n1
= d
n
Dtv
n1a2
Y (21c)
G
n
v
n1a2
= 0Y (21d)
626 M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640
where k
n
is the n
con
-vector of Lagrange multipliers. Solving for k
n
yields
Dt G
n
M
1
G
T
n
_
k
n
= G
n
v
n1a2
_
DtM
1
F
ext
n
_
F
int
(d
n
)
_
Y (22)
where all data on the right-hand side is known (d
n
and v
n1a2
were determined in the last time step). The
coecient matrix on the left-hand side is not in general diagonal. This is troublesome in practice, since we
would rather not appeal to a linear solver to solve the coupled equations. We can see from (22) that the
contact forces k
n
are those that are necessary to remove the velocity mismatch G
n
v
0
n1a2
, where the predictor
velocity v
0
n1a2
is computed assuming no contact contribution to the equilibrium equations:
v
0
n1a2
X= v
n1a2
DtM
1
F
ext
n
_
F
int
(d
n
)
_
X (23)
One approach to solving (22) is to appeal to an iterative scheme (such as GaussSeidel iteration) to solve for
the multipliers. An approach similar to this has been suggested in [3].
Another approach proposed in [17] utilizes a correction to (20) that has proven to be highly eective. It
essentially involves computing as an initial guess for the contact forces k
0
n
q
for constraint q,
k
0
n
q
=
M
q
Dt
2
bg
0
n1

q
Y (24)
where g
0
n1
[
q
= g
n
[
q
Dt g
0
n1a2
[
q
is the qth component of the vector G
n
d
n
DtG
n
v
n1a2
, and physically rep-
resents the gap if the conguration where predicted forward without regard to contact constraints. One
should note that the penalty implied by (22) is of the same form as (20) with the notable exception that the
``penalty'' in this case is a fraction of the inertial stiffness M
q
aDt
2
. The fraction b is typically called the
kinematic partitioning factor since it effectively partitions the predicted gap between body (1) and (2), (if
bg
0
n1
[
q
is removed at constraint q of body of (1) then (1 b)g
0
n1
[
q
is expected to be removed at those
constraints dened on body (2) for nodes contacting body (1)).
A correction to k
0
n
q
is found by application of (21a)(21c) and 24
k
n
q
= k
0
n
q
G
T
n
k
0
n
_ _
[
q
Y (25)
where Dt
2
M
1
G
T
n
k
0
n
_ _
[
q
is physically interpreted as a correction to the predicted conguration after ap-
plying the estimated contact forces k
0
n
q
.
3.3. Iterative enforcement of the rate constraint
A logical extension of the approach just outlined (suggested in [17]) is an iterative solution of (22) given
in [7]. The multipliers k
n
are iteratively improved upon via (superscript j beginning with j = 0, k
n
= 0, and
v
0
n1a2
as given in (23)):
DtHk
j1
n
= G
n
v
j
n1a2
Y
v
j1
n1a2
= v
j
n1a2
DtM
1
G
T
n
k
j1
n
_
k
j
n
_
Y (26)
j j 1Y next jX
In the above, His an algorithmic approximation to G
n
M
1
G
T
n
which one would like to be diagonal (if
H = G
n
M
1
G
T
n
, the pair (k
1
n
, G
n
v
1
n1a2
) exactly satises the constraints). In fact, in the case where all the
contacts occur in a node-to-node fashion, one can show that G
n
M
1
G
T
n
is a diagonal matrix. In this case, it
is found that for each constraint q
k
n
q
=
1
Dt
m
(1)
q
m
(2)
q
m
(1)
q
m
(2)
q
g
n1a2

g
Y (27)
where g
n1a2
[
q
is qth component of the vector G
n
v
n1a2
, and physically represents the approach rate at
n 1a2 for the constraint q. The masses m
(1)
q
and m
(2)
q
are the entries of Mcorresponding to the contacting
nodes for constraint q.
M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640 627
This specialized case can be extended to obtain an algorithmic approximation appropriate for general
use in the explicit dynamic setting, by taking the mass on each side of the interface to be the density
multiplied by the characteristic volume:
m
(i)
q
= q
(i)
c
(i)
DtDA
q
Y (28)
where q
(i)
is the density of body (i), c
(i)
is the wave speed, and DA
q
is the tributary area of the constraint q.
In other words, the characteristic volume is taken as that swept out by an idealized planar wave propa-
gating into the half-space during the time step. With this general choice, the decoupled expressions for k
j1
n
q
is
k
j1
n
q
=
q
(1)
q
(2)
c
(1)
c
(2)
q
(1)
c
(1)
q
(2)
c
(2)
g
j
n1a2

q
DA
q
X (29)
Iteration according to (26), with the diagonalized Himplied by (29), yields an algorithm that typically
satises the rate constraint to suitable accuracy after only a few iterations [7].
As somewhat of an aside, we mention that the use of the partitioning factor in (22) should be interpreted
in the same way as ``two-pass'' contact enforcement algorithm suggested in e.g. [5]. The use of so called two
pass algorithms or symmetric algorithms (whereby a set of contact forces is assembled using one master
slave partitioning and subsequently another set is obtained by reversing the choice) are often touted as
being able to remove the bias in the choice of master and slave surfaces.
In truth, it must be admitted that (at this point) state-of-the-art contact enforcement cannot be con-
sidered unbiased nor exactly satisfy all of the contact constraints pointwise, whether a predictor- corrector
algorithm suggested in [17] or an iterative scheme suggested in [7] is used. In large part, this is an admission
that the true interface (both its position and shape) is an unknown in the continuum framework, and even
worse, it has an ambiguous representation in the discrete setting (since it has two distinct representations-
on each side of the discrete interface). How best to uniquely represent this interface (and therefore solve for
its correct position) remains one of the areas left for improvement in modeling contactimpact.
4. Searching
So far, the focus has been on contact enforcement issues. However, equally important especially in large
applications is the practical aspect of computing the closest point projection for a quadrature point or nodal
point on the surfaces C
(1)
and C
(2)
. This projection is essential to the denitions of both the normal and
tangential gaps (19), and its calculation is often referred to as contact detection or searching.
4.1. Node-to-closest-node tracking
In the simplest possible case, each slave node (simply a nodal point on surface 1 of the mesh) is matched
to a closest master node (a nodal point on surface 2 of the mesh). With a closest node established (called
neighborhood identication), a detailed contact check determines which of the candidate master surfaces
(those physically connected to the closest master node) the slave node actually contacts. A discrete con-
straint is then dened (via G
i
N
and G
i
T
in Eqs. (17) and (19)) which depends on the point of contact, amount
of penetration, and the direction in which the slave node should be pushed back.
However, assuming that both the master and slave surfaces consist of approximately N nodes, such a
search requires O(N
2
) length calculations and comparisons to determine the closest master node for each
slave node. We note that for only a few contact problems it is sufcient to perform such a global search only
once, at the very beginning of a calculation. For subsequent time steps, a local search is performed in the
neighborhood of the previous closest node for a given slave node (generally referred to as tracking). Thus,
the cost of the nearest neighbor search for all slave nodes is reduced to O(N).
For the general case, however, this node-to-closest node searching approach and subsequent tracking
has several unacceptable pathologies resulting in a physically incorrect set of constraint denitions. The
628 M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640
shell self-contact case, shown in Fig. 4, illustrates a condition where a slave node does not necessarily
contact a master surface connected to the closest master node.
In this simple example, slave node 2 is tracking master node 14 (following a node-to-closest node
searching approach), however it is actually contacting master surfaces 89 (dened by surface nodes 89).
The tracked master node 14 implies that a detailed contact check would consider master surfaces 1314 and
1415 only and not master surface 89 as it should. Essentially, the only way to avoid these pathologies is to
recognize that a slave node contacts a master surface (a nite element face on the surface), and a neigh-
borhood identication algorithm should reect a node to closest surface search (i.e. a closest point
projection).
4.2. Node-to-surface (closest point projection) tracking
The remedy for this situation (and to eciently handle the truly arbitrary contact) is to employ a global
search strategy where the goal is to determine what slave nodes are in close proximity to a master surface.
These algorithms can be written so that they do not require contact surface pairing (making them global in
nature) and, therefore, easily handle self-contacting surfaces, eroding and tearing surfaces, and random
contact between multiple bodies. We describe in detail a bucket sorting algorithm and a binary sorting
algorithm.
Fig. 4. Slave node 2 tracking closest master node 14 results in a missed contact.
Fig. 5. Example of two blocks contacting each other.
M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640 629
To illustrate the two search algorithms, the example shown in Fig. 5 of two blocks contacting each other
will be useful. Each block is a cube with dimensions 1
//
1
//
1
//
. The centroid of block 1 is initially at the
coordinates (0X5
//
Y 0X5
//
Y 0X5
//
) and is moving with a velocity v
y
= 500 inXas in the y-direction.
The stable time step is approximately 1X1 10
6
s so that block 1 moves approximately 5X5 10
4
inches
during one time step. Block 2 is initially at rest with its centroid located at the coordinates (0X5
//
Y 1X5
//
Y 0X5
//
).
The symmetric contact enforcement being used (b = 0X5 in Eq. (24) implies that every node and element
face on the surface is included in the contact surface. There are 52 slave nodes (n = 52) and 48 master
surfaces (M
s
= 48).
A local neighbourhood for each master surface is dened by bounding the space occupied by a master
surface at its known location at time t (step n) and its predicted location at time t dt (step n 1). Fig. 6
shows a bounding box for a master surface constructed over one time step and a capture box (that upon
interrogation in the global search collects potentially contacting slave nodes).
For example, suppose the maximum distance any slave node moves in one time step is (v
x
)
max
dt in the x-
direction. Then a slave node within a distance (v
x
)
max
dt from the bounding box could potentially contact
the master surface. This argument holds for the y- and z-directions as well so that a capture box can be
constructed, as shown in Fig. 6. Any slave node inside the capture box should therefore be considered for
potential contact with the master surface. In the example problem, (v
x
)
max
= 0Y (v
y
)
max
= 500 in./s,
(v
z
)
max
= 0, and dt = 1X1 10
6
s, so the capture box for master surface 5 would have the extent:
x
min
= 0X0 inXY x
max
= 0X5 inXY
y
min
= 1X0 v
y
dt = 0X99945 inXY y
max
= 1X0 v
y
dt = 1X00055 inXY
z
min
= 0X5 inXY z
max
= 1X0 inX
4.3. Global searching: bucket sort
Several search algorithms using a bucket sort have been proposed for modeling self contacting surfaces,
see e.g. [1,2]. These global search algorithms are referred to as bucket sorts because the domain of the
problem is subdivided into buckets (or boxes) into which the slave nodes and master nodes are sorted. In
these approaches, the domain of the problem is rst subdivided into S
x
slices along the x-coordinate, S
y
slices along the y-coordinate, and S
z
slices along the z-coordinate. The intersection of any three orthogonal
slices denes a bucket.
Potential interactions between nodes as described in [1] and [2] are determined by looping through the
buckets and collecting the master and slave nodes in neighboring buckets. Typically, a closest master node
Fig. 6. Bounding box and capture box for a moving master surface.
630 M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640
is determined for each slave node using a distance check. Assuming a uniform distribution of n m slave
and master nodes throughout the domain, the total number of distance comparisons for a 3D problem
(reported in [1]) is
C
3D
= (n m)
27(n m)
(S
x
S
y
S
z
)
_
1
_
X (30)
Clearly there is a trade-o between the number of comparisons and memory. We also note a limitation
(attributable to the node-to-closest node tracking approach) that the bucket size must be based on the
largest master surface dimension to avoid missing potential contact, as was demonstrated in Fig. 4. Even
with this limitation the pathologies of node-to-closest node tracking are not addressed by this approach.
We therefore oer the following algorithm which is essentially a conventional bucket search with two
signicant exceptions. One, that the bucket size b
s
is based on the willingness to use memory (rather than
dictated by some physical characteristic of the model) and second, a capture box (described in Fig. 6) is
used to ensure all potential contacts are gathered for a closest point projection (to avoid the pathologies
discussed in node-to-closest-node tracking).
In a nutshell, the search algorithm involves sorting the slave nodes into buckets, then nding the buckets
that a master surface occupies and nally pairing the master surface with the slave nodes in those buckets.
It requires (18n) memory locations plus two vectors with lengths equal to the number of buckets (n
b
).
To sort the slave nodes into buckets, an integer coordinate system is constructed in each physical di-
rection. Assuming that the bucket size b
s
is based on the dimension of the smallest master surface, the
number of slices (each with thickness b
s
) required in the xY yY and z directions are:
S
x
= int[(x
max
x
min
)ab
s
[ 1Y
S
y
= int[(y
max
y
min
)ab
s
[ 1Y
S
z
= int[(z
max
z
min
)ab
s
[ 1X
The three slices containing any given node, i, can be calculated as follows:
S
i
x
= int[(x
i
x
min
)ab
s
[ 1Y
S
i
y
= int[(y
i
y
min
)ab
s
[ 1Y
S
i
z
= int[(z
i
z
min
)ab
s
[ 1X
The intersection of the three orthogonal slices denes the bucket B
i
containing node i, as shown in Fig. 7.
If buckets are numbered sequentially, progressing rst in the x-direction, next in the y-direction, and then
in the z-direction, the bucket id containing node i is given by
Fig. 7. Bucket B
i
dened by three slices of the data that contain node i.
M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640 631
B
i
= (B
i
z
1)S
x
S
y
(B
i
y
1)S
x
B
i
x
X
Several vectors are created so that a list of slave nodes within any given bucket can be eciently deter-
mined. Two vectors of length n are created; one vector (lbox) stores the bucket id for each slave node and
the other (ndsort) is a list of slave nodes sorted by bucket id. Additionally, two vectors of length n
b
are
constructed; the rst (nbox) contains the number of slave nodes occurring in each bucket, and the other
(npoint) is a pointer that identies the rst slave node in each bucket. The entire sorting procedure and
construction of these vectors can be summarized as follows:
1. Zero the vector (nbox) containing the number of nodes in each bucket.
2. Find the bucket id (B
i
) for each node.
3. Store the bucket id for node i in the vector: lbox(i) = B
i
.
4. Increment the counter for bucket B
i
X nbox(B
i
) = nbox(B
i
) 1.
5. Calculate the pointer for each bucket j into a sorted list of nodes.
npoint(1) = 1Y npoint(j) = npoint(j 1) nbox(j 1)X
6. Zero the vector nbox.
7. Sort the slave nodes according to their bucket number into a list ndsort.
ndsort(nbox(lbox(i)) npoint(lbox(i))) = iY
nbox(lbox(i)) = nbox(lbox(i)) 1X
For the example problem, the bucket size is 0.5 in. corresponding to the dimension of the smallest master
surface. This implies that S
x
= 3, S
y
= 5, and S
z
= 3 and a total number of buckets n
b
= 45. The bucket sort
of all 52 slave nodes would give the following results:
Bucket id for each slave node:
lbox = 31Y 32Y 33Y 16Y 17Y 18Y 1Y 2Y 3Y 34Y 35Y 36Y 19Y 21Y 4Y 5Y 6Y 37Y 38Y 39Y 22Y 23Y 24Y 7Y 8Y 9Y 37Y 38Y 39Y 22Y
23Y 24Y 7Y 8Y 9Y 40Y 41Y 42Y 25Y 27Y 10Y 11Y 12Y 43Y 44Y 45Y 28Y 29Y 30Y 13Y 14Y 15X
Pointer into ndsort giving the starting location of the slave nodes in each bucket:
npoint = 1Y 2Y 3Y 4Y 5Y 6Y 7Y 9Y 11Y 13Y 14Y 15Y 16Y 17Y 18Y 19Y 20Y 21Y 22Y 23Y 23Y 24Y 26Y 28Y 30Y 31Y 31Y 32Y
33Y 34Y 35Y 36Y 37Y 38Y 39Y 40Y 41Y 43Y 45Y 47Y 48Y 49Y 50Y 51Y 52X
List of slave nodes sorted by their bucket id:
ndsort = 7Y 8Y 9Y 15Y 16Y 17Y 24Y 33Y 25Y 34Y 26Y 35Y 41Y 42Y 43Y 50Y 51Y 52Y 4Y 5Y 6Y 13Y 14Y 21Y 30Y 22Y 31Y 23Y 32Y
39Y 40Y 47Y 48Y 49Y 1Y 2Y 3Y 10Y 11Y 12Y 18Y 27Y 19Y 28Y 20Y 29Y 36Y 37Y 38Y 44Y 45Y 46X
Number of slave nodes in each bucket:
nbox = 1Y 1Y 1Y 1Y 1Y 1Y 2Y 2Y 2Y 1Y 1Y 1Y 1Y 1Y 1Y 1Y 1Y 1Y 1Y 0Y 1Y 2Y 2Y 2Y 1Y 0Y 1Y 1Y 1Y 1Y 1Y 1Y 1Y 1Y 1Y 1Y 2Y 2Y 2Y 1Y 1Y
1Y 1Y 1Y 1X
To illustrate how all slave nodes within, for example, bucket 23 are gathered, the sorted information
described above is used as follows. The number of slave nodes in bucket 23 is given by: nbox(23) = 2. The
slave nodes occupying bucket 23 can be found starting at location npoint(23) = 26 in ndsort. This implies
that slave nodes at location 26 and 27 in ndsort are in bucket 23: ndsort (26)(27) =slave nodes 22Y 31.
To avoid node-to-closest node tracking pathologies, we propose a strategy as suggested in [7] that rst
collects all the buckets occupied by a master surface. Then, using the vectors constructed during sorting, the
slave nodes in those buckets are collected. This ensures that all potential interactions with a given master
surface are found regardless of bucket size. Thus the bucket size should be interpreted as the sorting re-
nement instead of a length measure of the largest master surface. A bucket size based on the smallest
master surface assures that there will be a small number of slave nodes in each bucket and admits the
632 M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640
possibility that a master surface could occupy many buckets (this also requires more buckets and corre-
sponding memory).
The collection of slave nodes with which a master surface could potentially interact is determined in the
following way:
1. A capture box is constructed for each master surface, as described in Fig. 6.
2. The buckets containing the extreme corners of the master surface capture box are determined
ibox
min
= min(S
x
Y ifix((xc
min
x
min
)ab
s
) 1)Y
jbox
min
= min(S
y
Y ifix((yc
min
y
min
)ab
s
) 1)Y
kbox
min
= min(S
z
Y ifix((zc
min
z
min
)ab
s
) 1)Y
ibox
max
= min(S
x
Y ifix((xc
max
x
min
)ab
s
) 1)Y
jbox
max
= min(S
y
Y ifix((yc
max
y
min
)ab
s
) 1)Y
kbox
max
= min(S
z
Y ifix((zc
max
z
min
)ab
s
) 1)Y
where xc
min
and xc
max
is the extent of the master surface capture box in the x-direction
(yc
min
Y yc
max
Y zc
min
and zc
max
have the same denitions in the y and z directions, respectively).
3. All buckets within the ranges calculated in step 2 are identied as follows:
Loop from ibox = ibox
min
to ibox
max
Loop from jbox = jbox
min
to jbox
max
Loop from kbox = kbox
min
to kbox
max
B
i
= (kbox 1)S
x
S
y
(jbox 1)S
x
ibox
Endloop
Endloop
Endloop
4. All slave nodes in the buckets calculated in step 3 are considered for potential interaction with the master
surface.
In the example problem, assume that master surface 5 is to be processed. The extent of the capture box of
master surface 5 is
xc
min
= 0X0 inXY xc
max
= 0X5 inXY
yc
min
= 0X99945 inXY yc
max
= 1X00055 inXY
zc
min
= 0X5 inXY zc
max
= 1X0 inX
so that the capture box would occupy the range of buckets:
ibox
min
= 1Y ibox
max
= 2Y
jbox
min
= 3Y jbox
max
= 3Y
kbox
min
= 2Y kbox
max
= 3X
This identies buckets 22, 23, 37 and 38. The slave nodes occupying these buckets would be considered for
potential contact with master surface 5. Note that only the slave nodes which are not also nodes on master
surface 5 are considered, so that only the following four pairs would be added to the list for the closest point
projection:
(27Y 5)Y (28Y 5)Y (30Y 5) and (31Y 5)
Perhaps the only limitation of the bucket searching algorithm is the potential need for a large amount of
memory. At rst glance this algorithm appears to require kS
x
S
y
S
z
memory locations, where k is the max-
imum number of nodes likely to be found in a bucket. With some attention to memory management, these
requirements can be signicantly reduced for certain problems. For other problems the large amount of
memory required remains an obstacle. If the problem domain expands greatly, either the number of buckets
M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640 633
must increase (to maintain the same resolution) or the bucket size must increase (to maintain the same
amount of memory). Either one adversely effects the bucket search efciency. This dependency on the
bucket size or, equivalently, on the geometry of the problem domain should be considered as a limitation of
current bucket searching techniques. Even with these possible difculties, one advantage that bucket
searching algorithms have is that they lend themselves to a parallel architecture, as discussed by Plimpton
[15].
4.4. Global searching: binary sorting
Here we describe a search algorithm using 7n memory locations and requiring on the order of m
s
log
2
n
comparisons. The algorithm is based on a particle search technique developed by Swegle [16]. It sorts the
slave nodes by location and uses a binary search to construct a list of slave nodes that are in a master
surface neighborhood. The search algorithm described here depends almost exclusively on the number of
slave nodes n and not on the geometry of the problem. Like the Bucket sorting described above, it takes
advantage of the capture box construction.
The slave nodes are sorted based on their current coordinates, with each coordinate sorted indepen-
dently. This sorting is done using an index vector so that the order of the slave nodes listed in the index
vector corresponds to their coordinate value, with coordinates ordered from smallest to largest. For the
current example, there are 52 slave nodes numbered as shown in Fig 5, resulting in the following index
vectors:
I
x
= 1Y 4Y 7Y 10Y 13Y 15Y 18Y 21Y 24Y 27Y 30Y 33Y 36Y 39Y 41Y 44Y 47Y 50Y 2Y 5Y 8Y 11Y 16Y 19Y
22Y 25Y 28Y 31Y 34Y 37Y 42Y 45Y 48Y 51Y 3Y 6Y 9Y 12Y 14Y 17Y 20Y 23Y 26Y 29Y 32Y 35Y 38Y
40Y 43Y 46Y 49Y 52Y
I
y
= 1Y 2Y 3Y 4Y 5Y 6Y 7Y 8Y 9Y 10Y 11Y 12Y 13Y 14Y 15Y 16Y 17Y 18Y 19Y 20Y 21Y 22Y 23Y 24Y 25Y 26Y
27Y 28Y 29Y 30Y 31Y 32Y 33Y 34Y 35Y 36Y 37Y 38Y 39Y 40Y 41Y 42Y 43Y 44Y 45Y 46Y 47Y 48Y 49Y 50Y 51Y 52Y
I
z
= 7Y 8Y 9Y 15Y 16Y 17Y 24Y 25Y 26Y 33Y 34Y 35Y 41Y 42Y 43Y 50Y 51Y 52Y 4Y 5Y 6Y 13Y 14Y 21Y
22Y 23Y 30Y 31Y 32Y 39Y 40Y 47Y 48Y 49Y 1Y 2Y 3Y 10Y 11Y 12Y 18Y 19Y 20Y 27Y 28Y 29Y 36Y
37Y 38Y 44Y 45Y 46
for the xY yY and z coordinates respectively. A rank vector is also constructed for the slave nodes. It gives the
location of each slave node in the index vector and is required to avoid searching the index vector for a
given slave node. It can be easily constructed by looping through the index vector. For example, suppose a
slave node i is stored at position j in the index vector. The rank vector would then store the pointer j at its
position i. For the current example, the rank vectors are:
R
x
= 1Y 19Y 35Y 2Y 20Y 36Y 3Y 21Y 37Y 4Y 22Y 38Y 5Y 39Y 6Y 23Y 40Y 7Y 24Y 41Y 8Y 25Y 42Y 9Y 26Y 43Y
10Y 27Y 44Y 11Y 28Y 45Y 12Y 29Y 46Y 13Y 30Y 47Y 14Y 48Y 15Y 31Y 49Y 16Y 32Y 50Y 17Y 33Y 51Y 18Y 34Y 52Y
R
y
= 1Y 2Y 3Y 4Y 5Y 6Y 7Y 8Y 9Y 10Y 11Y 12Y 13Y 14Y 15Y 16Y 17Y 18Y 19Y 20Y 21Y 22Y 23Y 24Y 25Y 26Y
27Y 28Y 29Y 30Y 31Y 32Y 33Y 34Y 35Y 36Y 37Y 38Y 39Y 40Y 41Y 42Y 43Y 44Y 45Y 46Y 47Y 48Y 49Y 50Y 51Y 52Y
R
z
= 35Y 36Y 37Y 19Y 20Y 21Y 1Y 2Y 3Y 38Y 39Y 40Y 22Y 23Y 4Y 5Y 6Y 41Y 42Y 43Y 24Y 25Y 26Y 7Y 8Y 9Y
44Y 45Y 46Y 27Y 28Y 29Y 10Y 11Y 12Y 47Y 48Y 49Y 30Y 31Y 13Y 14Y 15Y 50Y 51Y 52Y 32Y 33Y 34Y 16Y 17Y 18X
After the slave nodes are sorted by xY y and z coordinate, the master surfaces are processed sequentially.
This processing involves dening a local neighborhood for each master surface by dening a capture box
(described by Fig. 6). Given the capture box a binary search is done on the index vectors to nd the slave
nodes that are inside the capture box. The binary search provides two pointers for each coordinate di-
rection. One is a lower pointer into the index vector that corresponds to the position in the index vector of
the rst slave node inside the capture box and the other is an upper pointer that corresponds to the position
in the index vector of the last slave node inside the capture box.
634 M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640
For the example problem node 1 at position 1 in I
x
is the rst node in the box in the x-direction, and node
51 at position 34 in I
x
is the last node inside the capture box. In the y-direction node 18 in position 18 of I
y
and node 35 at position 35 in I
y
are the rst and last nodes just inside the capture box, respectively. sim-
ilarly, in the z-direction node 4 in position 19 of I
z
and node 46 at position 52 in I
z
are the rst and last nodes
inside the capture box, respectively. Therefore, the binary search would give the following results:
(i
x
)
min
= 1Y (i
x
)
max
= 34Y
(i
y
)
min
= 18Y (i
y
)
max
= 35Y
(i
z
)
min
= 19Y (i
z
)
max
= 52X
This means, for example, that the subset of slave nodes from I
x
((i
x
)
min
) to I
x
((i
x
)
max
) are in the capture
box of the master surface on the basis of the x coordinate. For the example problem, the subset or list of
slave nodes for each coordinate direction that are in the capture box of master surface 5 are:
L
x
= 1Y 4Y 7Y 10Y 13Y 15Y 18Y 21Y 24Y 27Y 30Y 33Y 36Y 39Y 41Y 44Y 47Y 50Y 2Y 5Y 8Y 11Y 16Y 19Y 22
25Y 28Y 31Y 34Y 37Y 42Y 45Y 48Y 51Y
L
y
= 18Y 19Y 20Y 21Y 22Y 23Y 24Y 25Y 26Y 27Y 28Y 29Y 30Y 31Y 32Y 33Y 34Y 35Y
L
z
= 4Y 5Y 6Y 13Y 14Y 21Y 22Y 23Y 30Y 31Y 32Y 39Y 40Y 47Y 48Y 49Y 1Y 2Y 3Y 10Y 11Y 12Y 18Y 19Y 20Y
27Y 28Y 29Y 36Y 37Y 38Y 44Y 45Y 46X
Finally, a contraction is done to nd the slave nodes in the capture box of the master surface in all three
coordinate directions simultaneously. To accomplish this, each of the slave nodes in one list is selected and
then checked if its rank is between the lower and upper pointer in the other two coordinates. For com-
putational eciency the shortest list of slave nodes is selected, which can be determined by selecting the
smallest of [(i
w
)
max
(i
w
)
min
1[, w = xY yY or z. For example problem, L
y
is the list with the smallest number
of slave nodes, so that slave nodes
i = I
y
((i
y
)
min
)Y I
y
((i
y
)
min
1)Y F F F Y I
y
((i
y
)
max
) are in the capture box if (I
x
)
min
6R
x
(i) 6(i
x
)
max
and
(i
z
)
min
6R
z
(i) 6(i
z
)
max
.
To help illustrate this procedure, the rst few slave nodes in list L
y
are processed as follows:
1. i = I
y
((i
y
)
min
= 18Y R
x
(18) = 7Y and R
z
(18) = 41. Since (I
x
)
min
67 6(i
z
)
max
and (i
x
)
min
641 6(i
z
)
max
slave
node 18 is in the capture box of master surface 5.
2. i = I
y
((i
y
)
min
1) = 19Y R
x
(19) = 24Y and R
z
(19) = 42. Since (i
x
)
min
624 6(i
x
)
max
and
(i
z
)
min
642 6(i
z
)
max
slave node 19 is also in the capture box of master surface 5.
3. i = I
y
((i
y
)
min
2) = 20Y R
x
(20) = 41Y and R
z
(20) = 43. Since 41 b (i
x
)
max
slave node 20 is NOT in the
capture box of master surface 5.
After processing all of the slave nodes in list L
y
, it is found that only the slave nodes
18Y 19Y 21Y 22Y 27Y 28Y 30Y 31 are within the bounding box of master surface 5.
For eciency only those pairs are added where the slave node is not also a node on the master surface.
For the example problem only the following four pairs would be added to the list for the detailed contact
check (closest point projection):
(27Y 5)Y (28Y 5)Y (30Y 5) and (31Y 5)X
At this point the global binary search essentially mimics an exhaustive search in O(m
s
log
2
n) compari-
sons. This algorithm has proven to been highly ecient, is optimized on the vectorized architecture [4], and
shown improved eciency when the problem domain attains any order whatsoever (due to the likelihood
that one of the three sorted lists gets preferentially smaller). This observation seems to be holding true on
the cache based architecture as well.
One nal note on the global search algorithms echoes what is suggested in [1]: that further speedup might
be anticipated by sorting every 5 to 10 time steps, while storing the nearest neighbors for contact deter-
mination in the intermediate time steps. This strategy is adopted by commercial codes, see e.g. [10] and
other multipurpose codes, see e.g. [1,7].
M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640 635
4.5. Closest point projection
After gathering a list of potential interactions using any one of the searching techniques described above,
a detailed contact check is done for each slave node master surface pair, i.e. the closest point projection.
Again, to be forthcoming, a nagging issue in the closest point projection is one of uniqueness in the discrete
setting, an example of which is depicted in Fig. 8. Since no rigorous theory exists to handle this predica-
ment, heuristics often take over in the implementation of contact constraint denition and are either closely
guarded recipes or deemed not worthy to be published (with no intention of endorsing their eectiveness,
some examples of these heuristics can be found in [1,17,7]).
One can see from the case shown in Fig. 8 why the nonconvexity issue is of importance in the discrete
setting; only one of the contact constraints that potentially could be dened can be valid. A gap comparison
[g
1
[ vs. [g
2
[ is suggested in [1], a so called strength-of-contact determination is suggested in [17] (where the
inner products
s
[ g
1
[
m
l
vs.
s
[ g
2
[
m
2
are compared,
s
being the slave node normal and
m
i
the master
surface normal).
Suggested in [7] is a slightly dierent treatment for slave nodes that are not in contact and those that are
already in contact. For slave nodes just coming into contact, a so-called velocity based contact check is used
to identify the physically correct point of contact and time of contact, as shown in Fig. 9(a). The contact is
determined by solving for the point in time when the moving slave node is co-planar with the moving
master surface.
For slave nodes already in contact with a master surface, a static contact check is used, as shown in
Fig. 9(b) (with the associated non-uniqueness issues discussed above).
Fig. 8. Local nonconvexity in the two-dimensional discrete setting.
Fig. 9. Masterslave closest point projection using velocity and static contact check.
636 M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640
Uniqueness issues notwithstanding, contact constraints based on the closest point projection are easily
calculated. The parametric (or local) nY g coordinates of the contact point on the master surface is found by
performing Newton iteration (discussed in [14,1]) on the nonlinear algebraic equations (written here for a
quadrilateral master surface with bi-linear shape functions)
n
g
_ _
=

4
j=1
x
j
n
j

4
j=1
x
j
g
j

4
j=1
y
j
n
j

4
j=1
y
j
g
j
_

_
_

_
4x

4
j=1
(1 n
j
g
j
ng)x
j
4y

4
j=1
(1 n
j
g
j
ng)y
j
_

_
_

_
(31)
with the seed (nY g) = (n
0
Y g
0
). An initial estimate n
0
Y g
0
of the local coordinates can be computed, as shown
in Fig. 10. Four triangles are constructed by connecting the contact point with the four corners of the
quadrilateral master surface. The contact point is inside the master surface when all four areas A
1
Y A
2
Y A
3
and A
4
are all be positive. If it is inside the master surface, then an initial estimate of the local coordinates of
the contact point can be found, as shown.
These equations are based on the observation that (nY g) = (n
0
Y g
0
) is computed exactly for any rect-
angular quadrilateral and that the limiting values of n and g = 1 are computed exactly for any shaped
quadrilateral. If the quadrilateral surface is a rectangle, then the proof is simple. If it is not, then by ob-
servation n is computed exactly only when one of the areas A
2
or A
4
is zero. (For example, suppose A
2
is
zero then the estimated coordinate n = n
0
= 1 is exact. If A
4
is zero then the estimated coordinate
n = n
0
= 1 is also exact. If neither A
2
or A
4
are zero, then the equation gives a reasonable estimate of the
contact point n.) Likewise g is computed exactly only when one of the areas A
1
or A
3
is zero.
5. Example state-of-the-art contact/impact simulation
We turn our attention now to providing an example that perhaps best typies the state-of-the-art
contact/impact simulation: one involving multiple bodies interacting in unforeseeable ways. This calcula-
tion is global in nature, requiring a global search strategy (not only for eciency in determining the active
set of constraints but also for accuracy in their determination).
The example, shown in Fig. 11, is one of simulating the impact and subsequent crush of impact limiting
material in a nose cone.
The details of the various components within the nose are not important in this demonstration, other
than that they are modeled as elastic-plastic materials able to contact each other arbitrarily. Fig. 12 depicts
the deformations incurred after 5 1/2 ms, where the global nature of the contact is evident.
Comparison of the simulation and a test is shown in Fig. 13. With the exception of some material failure
(not modeled in the simulation) the extent of the large deformations and arbitrary contact compares fa-
Fig. 10. Initial estimates for the local coordinates of a contact point.
M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640 637
Fig. 11. Impact limiter crush simulation in a nose cone.
Fig. 12. Deformed nose after 5.5 ms.
638 M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640
vorably. The simulation was done using PRONTO2D employing the 2D versions of the algorithms dis-
cussed in this article, and required ~55 CPU hours on a SUN ULTRA2 300 MHz CPU.
6. Summary
We have presented two essential requirements of contactimpact modeling technology: rst that the
treatment of contact, specically the enforcement of contact constraints, should follow from the devel-
opment of the local (weak) and global (strong) forms of contact equations in the continuum setting; and
second that computing the closest point projection should be eciently calculated using a global node-on-
surface search strategy.
Even with this contactimpact modeling technology in place, it must be admitted that (at this point)
state-of-the-art contact enforcement cannot be considered unbiased nor exactly satisfy all of the contact
constraints pointwise. In large part, this is an admission that the true interface (both its position and shape)
is an unknown in the continuum framework, and even worse, it has an ambiguous representation in the
discrete setting (since it has two distinct representations- on each side of the discrete interface). How best to
uniquely represent this interface (and therefore solve for its correct position) remains one of the areas left
for improvement in modeling contactimpact.
Finally, we note that the example problem provided here could have easily been a penetration problem
where a hard object is passing through a softer one (from which the eectiveness of the penetrator is in-
ferred), an impact/accident scenario where a shipping container impacts an immovable target (from which
the energy absorption characteristics and eectiveness is determined), or an automobile crash where one or
more auto-body frames are impacted (from which the safety of the occupants is ascertained). These ex-
amples give an indication of the more widespread use and reliance on contactimpact modeling in design
practice.
Acknowledgements
Special thanks to M. Neilsen for the example problem. This work, performed at Sandia National La-
boratories, was supported by the US Department of Energy under Contract DE-AL04-94AL8500.
Fig. 13. Comparison of simulation and test.
M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640 639
References
[1] B.J. Benson, J.O. Hallquist, A single surface contact algorithm for the post-buckling analysis of structures, Comput. Meth. Appl.
Mech. Eng. 78 (1990) 141163.
[2] T. Belytschko, M.O. Neal, contactimpact by the pinball algorithm with penalty and Lagrangian methods, Int. J. Numer. Meth.
Eng. 31 (1991) 547572.
[3] N.J. Carpenter, R.L. Taylor, M.G. Katona, Lagrange constraints for transient nite element surface contact, Int. J. Numer. Meth.
Eng. 32 (1991) 103128.
[4] M.E. Davis, M.W. Heinstein, S.W. Attaway, J.W. Swegle, Optimizing the point-in-box search algorithm for the cray Y-MP
TM
supercomputer, SAND93-0933, Sandia National Laboratories, Albuquerque, NM 87185, 1998.
[5] J.O. Hallquist, G.L. Goundreau, D.J. Benson, Sliding interfaces with contactimpact in large-scale lagrangian computations,
Comput. Meth. Appl. Mech. Eng. 51 (1985) 107137.
[6] J.O. Hallquist, D.J. Benson, User's manual for DYNA3D: Nonlinear Dynamic Analysis of Structures, Rev. 3, UCID-19592,
Lawrence Livermore National Laboratories, 1987.
[7] M.W. Heinstein, S.W. Attaway, J.W. Swegle, F.J. Mello, A General Purpose Contact Detection Algorithm for Nonlinear
Structural Analysis Sodes, SAND92-2141, Sandia National Laboratories, Albuquerque, N-87185, 1992.
[8] M.W. Heinstein, F.J. Mello, T.A. Laursen, Augmented Lagrangian Algorithms for Enforcement of Contact Constraints in
Explicit Dynamic and Matrix-free Quasistatic Applications, Contact Mechanics 95, Ferrara, Italy, 1113 July 1995.
[9] M.W. Heinstein, T.A. Laursen, An algorithm for the matrix-free solution of quasistatic frictional contact problems, Int. J. Numer.
Meth. Eng., accepted for publication.
[10] Hibbitt, Karlsson, Sorensen Inc. Contact calculations with ABAQUS ABAQUS Explicit Users Manual, Hibbitt, Karlsson and
Sorensen, Inc., 1992.
[11] J.-W. Ju, R.L. Taylor, A perturbed Lagrangian formulation for the nite element solution of nonlinear frictional contact
problems, J. Theoret. Appl. Mech. 1 (1988) 114.
[12] N. Kikuchi, J.T. Oden, Contact Problems in Elasticity: A Study of Variational Inequalities and Finite Element Methods, SIAM,
Philadelphia, 1988.
[13] T.A. Laursen, J.C. Simo, A continuum-based nite element formulation for the implicit solution of multi-body large deformation
frictional contact problems, Int. J. Numer. Meth. Eng. 36 (1993) 34513485.
[14] H. Parisch, A consistent tangent stiness matrix for three-dimensional non-linear contact analysis, Int. J. Numer. Meth. Eng. 28
(1989) 18031812.
[15] S.J. Plimpton, Molecular dynamics simulations of short-range force systems on 1024-Node Hypercubes, Proceedings of the Fifth
Distributed Memory Computing Conference, Charleston, South Carolina, 812, 1990.
[16] J.W. Swegle, Search algorithm, memo to distribution, Sandia National Laboratories, Albuquerque, NM 87185, May 25, 1992.
[17] L.M. Taylor, D.P. Flanagan, PRONTO3D: A three-dimensional transient solid dynamics program, SAND89-1912, Sandia
National Laboratories, Albuquerque, NM 87185, 1989.
[18] P. Wriggers, J.C. Simo, A note on tangent stiness for fully nonlinear contact problems, Commun. Appl. Numer. Meth. 1 (1985)
199203.
[19] P. Wriggers, T. VuVan, E. Stein, Finite element formulation of large deformation impact-contact problems with friction, Comput.
Struct. 37 (1990) 319331.
640 M.W. Heinstein et al. / Comput. Methods Appl. Mech. Engrg. 187 (2000) 621640

S-ar putea să vă placă și