跳转至

多点约束

FrontISTR 的多点约束功能通过在多个节点自由度之间施加线性关系 \(\sum_i a_i u_i = c\),实现刚性耦合、周期边界以及任意自由度耦合。本章从多点约束能够实现什么,以及与其他自由度耦合功能(如接触的绑定约束)如何区分使用等角度进行整理。

功能概览

多点约束是在多个节点自由度之间施加如下线性关系的功能。

\[ \sum_{i=1}^{N} a_i\, u_i = c \]

一条约束方程由“项数 \(N\)”、“右端常数 \(c\)”以及每一项的“节点、自由度、系数 \((\text{节点}_i, \text{自由度}_i, a_i)\)”组成。项数应指定为 2 以上。

典型用途如下。

  • 刚性耦合:对多个节点的同一自由度施加相同位移(例如,将两个节点的 \(x\) 位移通过 \(u_x^{(A)} - u_x^{(B)} = 0\) 连接)。
  • 周期边界:将相对节点之间的差固定为 0 或常数(例如 \(u^{(A)} - u^{(B)} = c\))。
  • 从属–主控耦合:将从属自由度表示为主控侧自由度的线性组合。

在输入中使用 !EQUATION 定义各约束方程。由 !EQUATION 定义的多点约束适用于结构分析(静力分析、动力分析、模态分析、频率响应分析)以及热传导分析(稳态、瞬态)。结构分析中可指定平移和转动自由度(自由度编号 1~6),热传导分析中指定温度自由度(自由度编号 1)。

多点约束的选择

输入多点约束的方法,根据约束对象是以“单独的节点和自由度”、“面与面”还是“节点与单元”的方式给出来区分使用。

功能 约束对象的指定方式 主要用途
!EQUATION 直接以方程形式指定各节点、自由度和系数 刚性耦合、周期边界、从属–主控耦合
!CONTACT INTERACTION=TIED(绑定约束) 将接触对指定的面彼此耦合 永久连接网格密度不同的部件
!EMBED 将嵌入节点组耦合到母体单元组 将增强材料嵌入母材

当约束关系可以直接写成节点、自由度和系数时,使用 !EQUATION。对于对称边界、周期边界等相对节点之间几何关系已知且可以写成线性关系的情况,这种方式最直接。若要在网格不匹配的情况下连接两个面,使用绑定约束(INTERACTION=TIED);若要将节点组约束在周围单元内部,则使用嵌入。绑定约束和嵌入在内部会展开为多点约束,然后沿与 !EQUATION 相同的路径处理。

滑动接触(INTERACTION=SSLIDFSLID)属于约束关系会随接触状态变化的非线性约束,不包含在本章所述的多点约束中。对于允许滑动和分离的接触,参见接触与嵌入

约束方程的指定

约束方程通过 !EQUATION 输入,其中指定“项数 \(N\)”、“右端常数 \(c\)”,以及每一项的“节点 \(\mathrm{node}_i\)”、“自由度编号 \(d_i\)”、“系数 \(a_i\)”。每一项的节点可指定节点编号或节点组名。自由度编号在结构分析中使用平移 1~3 和转动 4~6,在热传导分析中使用温度 1。若指定模型中没有意义的自由度(如仅有平移自由度的实体单元的 4~6),该项会被忽略并输出警告。

若在各项中重复指定同一节点和同一自由度,约束方程会退化。第二个及之后的重复项会被忽略,并输出警告。在一条约束方程中,应指定不同的节点与自由度组合。

使用节点组一次指定多个节点时,各组内节点数必须与其他项所用节点组相互一致。不一致时将产生输入错误。

约束方程首项所指定的自由度在处理中被视为从属自由度。不得与其他约束方程的首项、由 !BOUNDARY 指定的单点约束,或绑定约束所作用的自由度重叠。对同一自由度进行双重约束会使约束关系冗余,并导致线性系统病态。

约束方程的格式、参数以及数据行排列顺序参见 !EQUATION

约束处理方式(数值求解侧)

将多点约束反映到线性系统中的处理方式,即使输入约束方程相同,也会影响系数矩阵的性质和收敛性。FrontISTR 可选择罚函数法和显式自由度消去法;迭代法默认采用显式自由度消去法,直接法默认采用罚函数法。处理方式的选择与指定方法参见线性求解器与预处理中的 MPC 处理方式。

相关内容