Contact Resolution
Contact resolution occurs when a new contact is detected during the cycle sequence, prior to force-displacement calculations. During contact resolution, the contact state variables (see table) are updated. These variables are defined, and the procedure by which they are computed is described here.
The contact shown in Figure 1 has been created between the pieces of two bodies. Each contact has two ends, end1 and end2, with the associated pieces and bodies labeled 1 and 2. The bodies are rigid; therefore, the motion of body (b) is described by its rotational velocity (ωω(b)) and the translational velocity (˙x(b)) of its centroid (x(b)).
The first contact state variables to be updated are: the effective inertial mass of the contact (mc); the location (xc), normal direction (ˆnc) and coordinate system (nst) of the contact plane; and the contact gap (gc), which is the minimal signed distance separating the piece surfaces. The contact mass is given by
where m(b) is the mass of body (b). Computation of the location, normal direction and gap depends on the surface geometry of the two contacting pieces in the vicinity of the contact (and is described below in the “Contact Plane” section).
After the above quantities have been updated, the contact model is responsible for updating the activity state of the contact, given the updated contact gap. The exact criterion used to determine contact activity is specific to the implementation of each contact model. If the contact was not found to be active, then an additional check is performed to assess whether, given the current conditions, it could become active in the near future. Both active and could-be-active contacts participate in the timestep estimation procedure. If the contact is found active, then the variables defining the relative motion of the piece surfaces are computed (as described in “Relative Motion at a Contact” section).
The kinematic information is described in the next two sections, which define the contact plane and describe the relative motion of the piece surfaces at a contact. All contact types are described without loss of generality in terms of the two combinations of ball-ball and ball-facet, because balls and pebbles have the same shape. The ball-ball contact types include ball-ball, ball-pebble, and pebble-pebble; the ball-facet contact types include ball-facet and pebble-facet.
Property | Description |
---|---|
mc | effective inertial mass |
Contact plane: | |
xc | contact-plane location |
ˆnc | contact-plane normal direction |
ˆsc | contact-plane coordinate system (s axis) (2D model: ˆsc≡−ˆk) |
ˆtc | contact-plane coordinate system (t axis) |
gc | contact gap |
Relative motion: | |
˙δδ | relative translational velocity |
˙θθ | relative rotational velocity |
Δδn | relative normal-displacement increment |
Δδδs | relative shear-displacement increment (Δδss,Δδst) (2D model: Δδss≡0) |
Δθt | relative twist-rotation increment (2D model: Δθt≡0) |
Δθθb | relative bend-rotation increment (Δθbs,Δθbt) (2D model: Δθbk=−Δθbs,Δθbt≡0) |
Contact Plane
A contact provides an interface between two pieces (see Figure 2). The interface consists of a contact plane with location (xc), normal direction (ˆnc), and coordinate system (nst). The contact plane is centered within the interaction volume (either gap or overlap) of the two pieces, oriented tangential to the two pieces and rotated to ensure that relative motion of the piece surfaces at the contact location remains symmetric w.r.t. the contact plane.
The contact plane is centered within the interaction volume of the two pieces, directed from piece 1 to piece 2 and oriented tangential to piece 1. The location (xc) and normal direction (ˆnc) of the contact plane are given by (see Figure 3):
where x(b) and R(b) are the center and radius, respectively, of ball (b); xf is the point on the wall facet that is closest to x(1); xw is the wall center of rotation and gc is the contact gap. The contact gap is the minimal signed distance separating the piece surfaces such that the gap is negative if the surfaces overlap.

Figure 3: The contact plane location and normal direction for the two fundamental contact types: ball-ball and ball-facet.
The contact plane coordinate system (nst) is oriented such that n coincides with the contact normal direction while s and t are orthogonal coordinates on the plane and ˆnc=ˆsc׈tc. The contact plane coordinate system is translated and rotated to ensure that relative motion of the piece surfaces at the contact location remains symmetric w.r.t. the contact plane (as shown in Figure 7 and Figure 8). The translation updates the location and normal direction via Equation (2). For the 2D model, the following constraints make the rotation implicit:
The contact location and normal direction lie in the xy plane such that
(3)xc=xc(x,y,z)=xcxˆi+xcyˆj+xczˆk(xcz≡0)ˆnc=ˆnc(x,y,z)=ncxˆi+ncyˆj+nczˆk(ncz≡0).The nt axis lies in the xy plane such that
(4)ˆtc=ˆk׈nc.
For the 3D model, the s-axis is aligned initially with the projection of the global x or y direction, respectively, onto the contact plane (whichever is not parallel with ˆnc), and then the rotation updates the s-axis orientation:
where the first rotation (to give s1) is about the line common to the old and new planes, and the second rotation (to give s2) is about the new normal direction; the star (∗) denotes the value at the end of the previous timestep; ωω(p) is the rotational velocity of piece (p); and ~ωω is the average rotational velocity of the two pieces about the new normal direction. See Figure 4 and note that the vector S rotates with the plane (as if it were marked onto the plane).

Figure 4: Orientation of contact plane and a vector that lies on the plane in response to rotation of the bottom piece and translation of the top piece.
A vector quantity that lies on the contact plane (S) can be expressed in the contact plane coordinate system by the relations:
Relative Motion at a Contact
The relative motion of the piece surfaces at a contact is described by the relative translational (˙δδ) and rotational (˙θθ) velocities:
In this expression, ˙x(b)c is the translational velocity of body (b) at the contact location:
where ˙x(b) is the translational velocity of body (b); ωω(b) is the rotational velocity of body (b); xc is the contact location and x(b) is either the centroid (if the body is a ball or clump) or the center of rotation (if the body is a wall) of body (b). See Figure 5, and note that this expression can be obtained by setting xp=xc in Equation (9). The contact location defines a point that is fixed w.r.t. each body, and thus ˙x(b)c is the translational velocity of that point in body (b).
Each body has a reference point (x) and a rotational velocity (ωω). The reference point remains fixed w.r.t. the body. The reference point for a ball or clump is the body centroid and the reference point for a wall is the center of rotation. The translational velocity of a point xp that is fixed w.r.t. the body is given by
where rp is the relative position of the point, x(b) is the centroid of body (b), and xw is the wall center of rotation.

Figure 6: Kinematic variables used to describe body motion for the three fundamental body types: ball, clump, and wall.
The relative translational velocity can be expressed as
where ˙δδn (˙δn>0 is moving apart) and ˙δδs are the relative translational velocities normal and tangential, respectively, to the contact plane, and the subscripts n and s correspond with normal and shear action, respectively (see Figure 7 and Figure 9—the centering of the contact within the interaction volume ensures that the relative displacement is symmetric w.r.t. the contact plane). For the 2D model, Equation (10) satisfies the condition ˙δss≡0.
The relative rotational velocity can be expressed as
where ˙θθt (˙θt>0 is shown in Figure 8) and ˙θθb are the relative rotational velocities normal and tangential, respectively, to the contact plane, and the subscripts t and b correspond with twisting and bending action, respectively (see Figure 8 and Figure 9—the second rotation in Equation (5) ensures that the relative rotation is symmetric w.r.t. the contact plane). For the 2D model, Equation (11) satisfies the conditions: ˙θθt≡0 and ˙θθb is aligned with the z axis such that ˙θbt≡0 and ˙θbk=−˙θbs.
The relative displacement and rotation increments at the contact during a timestep Δt are
where Δδn is the relative normal-displacement increment, Δδδs is the relative shear-displacement increment, Δθt is the relative twist-rotation increment, and Δθθb is the relative bend-rotation increment. For the 2D model, Equation (12) satisfies the conditions: Δδss≡Δθt≡Δθbt≡0 and Δθbk=−Δθbs.

Figure 7: Kinematics of a contact showing contact plane with relative displacement and motion of piece surfaces.
Was this helpful? ... | FLAC3D © 2019, Itasca | Updated: Feb 25, 2024 |