When to adjust the search_radius

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • ateshian
    Developer
    • Dec 2007
    • 1830

    When to adjust the search_radius

    In contact analyses, the gap function represents the distance from the slave surface to the master surface. This gap value is evaluated by throwing a ray from a point on the slave surface, and finding its intersection with the master surface. The gap is positive when the master and slave surfaces overlap at the slave point. If there are multiple intersections between the slave surface point and the master surface, FEBio normally uses the intersection that produces the most positive gap value (the greatest overlap).

    However, there are unusual circumstances when this largest positive gap value is not the valid solution. In this case, it is possible to exclude such large gap values by restricting valid solutions to fall within a prescribed maximum gap value. In FEBio, this maximum gap value is prescribed using the <search_radius> parameter, which is a scale factor,

    maximum gap value = search_radius * bounding_box_size

    where the bounding_box_size is the largest dimension (width, height or depth) of the bounding box for the entire mesh. Any intersection whose gap value exceeds this maximum allowable value will be rejected. The default value of the search_radius parameter is 1, which means that the default setting will always use the largest gap value to determine the valid intersection.

    To illustrate the type of problem where the <search_radius> parameter needs to be set to a value other than its default, consider the 'snake' self-contact problem shown in the figures below.
    Snake1.png(reference configuration)
    Snake2.png(deformed configuration)
    In this example, there are two contact interfaces, one for the top surface and another for the bottom surface of this snake. For both contact interfaces, the slave and master surfaces are the same (thus, a self-contact problem). The 'unusual circumstance' arises from the fact that projecting a ray from some of the slave surface points (on the vertical faces) will intersect the master at multiple locations (on other vertical faces), and for some of these intersections we cannot reject the solution using the criterion that the outward normals should be pointing toward each other, since this criterion remains valid for multiple solutions. Therefore, prescribing a smaller search_radius is the only way to exclude the solutions we don't want. The attached input file, SnakeSelfContact.feb, uses search_radius=0.1 and converges just fine. If you use the default value search_radius=1, the analysis will fail because it will find huge gap values on the very first iteration, producing negative jacobians.

    Gerard
Working...
X
😀
😂
🥰
😘
🤢
😎
😞
😡
👍
👎