在接触算法中,为了判定一个从节点是否发生接触,首先应当对它周围的主段进行搜索,发现最近的主段进行接触判定。
LS-DYNA有三种接触搜索方式:
● 基于节点增量的搜索方式
● 基于段的bucket搜索方式
● 基于面段的搜索方式。
增量搜索方式是最早采用的方法,对每一个从节点,搜索最近的主节点,找到最近的主点后,再搜索主节点周围最近的主段,检查若的渗透发生,施加接触力。
增量法搜索过程
所有的非自动接触方式都采用增量搜索方式。
优点:该方法简单高效;
缺点:要求主面的网格必须是连续的,对于不连续的的主面将会出现漏搜索。
如下图,主面不连续导致段2和段3将不会被搜索,而可能实际情况就是段2或段3与从点发生接触。
主面不连续
另外,对于网格差别较大和形状复杂的主面来说,增量搜索方式可能会产生错误的接触行为,如下图所示,搜索到的最近的主点并不包含最近的主段。
基于段的bucket分类搜索方式是新的接触搜索方式,主要是为了解决增量搜索方式的缺陷。
原理:是对于每个从点,搜索最近的主段,首先把接触空间划分成很多小的bucket,对于每个从节点,按照它的空间位置指定于某个bucket中,然后在该范围内搜索最近的主段,运行一定的时间后(比如100个时间循环),根据该节点空间位置的变化再重新指定新的bucket。
一维bucket分类搜索:
上图中的黑点代表接触段的质心点(通过该质心点定位主段),对于落入某bucket的从节点而言,搜素该bucket中的段,找到最近的主段,若没有找到,再搜索附近的bucket,直到找到最近的主段。这种方法由于不断更新bucket分类,所以要耗费更多的CPU时间。
二维bucket分类搜索:
搜索原理同一维bucket分类搜索方式;
三维bucket分类搜索:
搜索原理同一维bucket分类搜索方式;
增量法和Bucket:
如下图所示,若应用基于节点的增量搜索方式,找到最近的主节点,与该节点相关联的主段是1,2,3,但都不包含该从点,所以接触搜索失效;但若用基于段的bucket 分类搜索方式,可以很方便的找到包含该从点的主段,建立接触关系。
SOFT=2调用了基于面段的接触算法,这种算法起源于Belytschko提出的弹球接触(Pinball contact)。
在这种算法下,程序会计算面段之间的接触问题,而不是传统的节点-面段接触问题。当两个四节点的面段相互接触时,程序向八个节点施加接触力以避免面段之间的穿透。这种计算方法可以实现更合理的接触力分布,而且对一些特别疑难的接触问题也很有效。
常用接触的搜索方式:
接触搜索方式由定义的接触类型(Automatic)和参数选择(SOFT)决定,在接触计算中不会发生变化。
① 若定义的接触类型为非Automatic接触,则采用基于节点增量的搜索方式;
② 若定义的接触类型为Automatic接触,则采用基于段的bucket搜索方式;
③ 若在接触定义中选择SOFT=2,则采用基于面段的搜索方式。