Global solution control: contact method
Node to segment contact
When defining contact pairs for a deformable-to-deformable analysis, it is important to define them in the properly which is the contacted (touched) and the contacting (tounching) structural element. As a general rule, the structural element with a finer mesh should be defined as contacted (touched) and the one with a coarser mesh should be defined as contacting (tounching).
During the incremental procedure, each potential contact node is first checked to see whether it is near a contact segment. The contact segments are either edges of other 2-D structural elements or faces of 3-D structural elements. By default, each node could contact any other segment including segments on the structural element that it belongs to. This allows a body to contact itself.
Tolerance
During the iteration process, the motion of the node is checked to see whether it has penetrated a surface by determining whether it has crossed a segment.
Because there can be a large number of nodes and segments, efficient algorithms have been developed to expedite this process. A bounding box algorithm is used so that it is quickly determined whether a node is near a segment. If the node falls within the bounding box, more sophisticated techniques are used to determine the exact status of the node.
During the contact process, it is unlikely that a node exactly contacts the surface. For this reason, a contact tolerance is associated with each surface.
If a node is within the contact tolerance, it is considered to be in contact with the segment. if is not input the contact tolerance, a default value is computed by the program: as 1/20 of the smallest element size of all elements in any contact body or 1/4 of the smallest thickness of all shell or beam elements in any contact body, whichever is the smallest. Note that for a continuum element the element size is defined here as the smallest edge of the surrounding rectangle (2D) or box (3D), set up in the global coordinate system, while for a shell element it is the smallest element edge and for a beam element it is the element length.
During an increment, if node A moves from A (t) to A (t+Δt), where A (t+Δt) is beyond the contact tolerance, the node is considered to have penetrated (see figure below). In such a case, a special procedure is invoked to avoid this penetration.
The size of the contact tolerance has a significant impact on the computational costs and the accuracy of the solution. If the contact tolerance is too small, detection of contact and penetration is difficult which leads to higher costs.
Penetration of a node happens in a shorter time period leading to more recycles due to iterative penetration checking or to more increment splitting and increases the computational costs. If the contact tolerance is too large, nodes are considered in contact prematurely, resulting in a loss of accuracy or more recycling due to separation. Furthermore, the accepted solution might have nodes that “penetrate” the surface less than the error tolerance, but more than desired by the user. The default error tolerance is recommended.
Many times, areas exist in the model where nodes are almost touching a surface (for example, in rolling analysis close to the entry and exit of the rolls). In such cases, the use of a biased tolerance area with a smaller distance on the outside and a larger distance on the inside is advised. This avoids the close nodes from coming into contact and separating again and is accomplished by entering a bias factor. The bias factor should be given a value between 0.0 and 0.99. The default is 0.0 or no bias. Also, in analyses involving frictional contact, a bias factor for the contact tolerance is recommended. The outside contact area is (1. - bias) times the contact tolerance on the inside contact area (1. + bias) times the contact tolerance (see figure below). The bias factor recommended value is 0.95.
Shell elements
A node on a shell makes contact when the position of the node plus or minus half the thickness projected with the normal comes into contact with another segment. In 2-D, this can be shown as:
x1 = A + n·t/2
If point x or y falls within the contact tolerance distance of segment S, node A is considered in contact with the segment S. Here x1 and x2 are the position vectors of a point on the surfaces 1 and 2 on the shell, A is the position vector of a point (node in a discretized model) on the midsurface of the shell, is the normal to the midsurface, and is the shell thickness.
As the shell has finite thickness, the node (depending on the direction of motion) can physically contact either the top surface, bottom surface, or mathematically contact can be based upon the midsurface. You can control whether detection occurs with either both surfaces, the top surface, the bottom surface, or the middle surface. In such cases, either two or one segment will be created at the appropriate physical location. Note that these segments will be dependent, not only on the motion of the shell, but also the current shell thickness (see figure below).
S1, S2 are segments associated with shell consisting of node 1 and 2.
Beam Elements
In CivilFEM the beam elements can be used in two methods:
1. The nodes of the beam and truss elements can also come into contact with the faces of three-dimensional continuum elements or shell elements. The normal is based upon the normal of the element face.
2. The three-dimensional beam and truss elements can also come into contact with other beam or truss elements (beam-to-beam contact).
In the beam-to-beam contact model, a beam or truss element is viewed as a conical surface with a circular crosssection. The radius of the cross-section can vary linearly between the start and end node of a beam element. For each beam or truss element of a contact body, a contact radius can be entered by the user or automatically computed. The contact radius at a node follows from the average contact radius of the elements sharing that node. Hence, the start and end node of an element may have different contact radius.
Contact is detected between two beams or truss elements if the associated conical surfaces touch each other; that is, if the distance between the closest points on the conical surfaces is smaller than the distance below which bodies are considered touching each other. This is shown in the figure below where beam elements and their contact body representation are given. It should be emphasized that the contacting points are points on the conical surfaces and not nodes of the finite element model.
Segment to Segment contact
The contact algorithm discussed above is based on nodes being in contact with a segment (a curve, surface, element edge, or element face), and can thus be called a node-to-segment algorithm. This contact algorithm has matured and has been successfully applied to a large variety of contact problems. However, there are a few weaknesses of this algorithm especially for deformable contact, which call for the development of an alternative contact algorithm.
The segment-to-segment (STS) procedure incorporates two major changes to the implementation of contact: (1) the detection of contact and (2) the enforcement of the constraints after contact is detected.
Advantages
- STS method is less mesh sensitive. In node-to-segment contact solution depends of contacted and contacting bodies.
- When contact has been detected, the nonpenetration constraint is enforced on a nodal basis. Because of this point-wise application of constraints, the node-to-segment algorithm does not generally maintain stress continuity across the contact interface of deformable contact bodies. STS produce better stress continuity and better contact normal distribution.
- Contact status is shown in both bodies.
- With node-segment contact a shell node can only touch another body at the top or at the bottom, not both. Double-sided shell contact is possible to be done with STS method.
Procedure
Auxiliary points per contact segment are introduced to allow for a contact search.
Each contact segment will get a number of auxiliary points. These auxiliary points are only used during the contact detection phase of the analysis and they are defined at fixed positions on the contact segments.
The actual contact detection phase consists of two passes. During the first pass, there is a check whether an auxiliary point is sufficiently close to a contact segment and if the corresponding normal vectors are “almost opposite”.
During the distance check, the distance between an auxiliary point and its closest point projection on a contact segment is calculated and compared with a reference value. This reference value is determined by the contact tolerance and the bias factor , where. The default contact tolerance is calculated by the program as the smaller of 5% of the smallest element side or 25% of the smallest (beam or shell) element thickness, based on all the elements defined in any contact body. Alternatively, the user can define the contact tolerance. The default bias factor is zero. A non-zero bias factor, entered by the user, implies that the outside zone becomes smaller and the inside zone larger and usually avoids unnecessary iterations following from physically unrealistic contact detection. If the distance check of an auxiliary point and its closest point projection on a segment is passed, then the direction check is performed. This direction check is passed if the angle between the normal vector at the auxiliary point and the normal vector at the potentially contacted segment is larger than 120º.
If both checks are passed, the segments are marked as potentially contacting. For each segment-segment combination within contact distance, polygons (polylines in 2D) will be generated element wise. Each polygon has a number of polygon points. These Polyline points does not coincide with the auxiliary points used of the contact detection before. In the same way as for the auxiliary points before, a second contact detection pass is performed for the polygon points (distance + direction check). At the end of this second pass, there is a set of polygon points being in contact and representing the contact area. The polygons can be treated as normal interface elements representing the contact stiffness. The polygon points build the basis for the numerical integration of the corresponding contact stiffness formulation
Penalty factor
The penalty factor can be interpreted as a stiffness per area, applied to the normal interface elements. The default penalty stiffness is based upon the average initial material stiffness and a characteristic length L of the contacting bodies. This choice gives good results in many application, particularly if the material stiffness of the contacting bodies is of the same order.
Augmentation
In case that too large penetration occurs, the augmentation procedure may be used to iteratively adjust the contact normal stress so that the overlap of the contact bodies will be minimized. Augmentation means that a gap function g defined by the contact gap (g=0 when gap is closed) will be minimized iteratively by adjusting the contact normal stresses p. The augmentation procedure (adjustment of the spring base) forces additional recycles in the global Newton-Raphson algorithm.
When STS method is chosen augmentation can be activated/deactivated in the global solution control:
- No augmentation: This results in a pure penalty method and is recommended for most analyses, since it gives reasonably accurate results in a relative small number of iterations.
- Augmentation: In this case, augmentation based on constant penetration field is used for linear elements and augmentation based on (bi-)linear penetration field is used for quadratic elements.