几何边界条件的处理¶
Newton-Raphson 法在每次迭代中求解的线性方程 \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\) 尚未包含几何边界条件(位移约束)。本章说明,对于给定位移约束 \(\boldsymbol{u} = \bar{\boldsymbol{u}}\) 的自由度,应如何修改刚度矩阵 \(\boldsymbol{K}\) 和残差向量 \(\boldsymbol{R}\),使迭代后的位移达到约束值。多点约束(MPC)和接触引起的非线性约束采用另一套处理方式,分别参阅多点约束和接触。
将位移约束保留为未知变量的方针¶
施加几何边界条件的节点位移已不再是未知变量,而是固定为给定值 \(\bar{u}_i\)。也可以将这些自由度视为常数,从线性方程 \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\) 中消去;但 FrontISTR 仍将受约束自由度与其他自由度一样保留在修正量向量 \(d\boldsymbol{u}\) 中,并通过改写 \(\boldsymbol{K}\) 和 \(\boldsymbol{R}\) 来实现约束。
采用这种方式后,系数矩阵的维数和自由度排列不会因有无约束而改变,因此无需在消去变量后重新压缩空出的行和列。对于以稀疏矩阵形式保存系数矩阵的实现,这种重新压缩较为繁琐,因此 FrontISTR 采用后一种方式,仅通过更新系数矩阵和右端项来实现约束。
Newton-Raphson 修正量的替换目标¶
对于位移受约束的自由度 \(i\),Newton-Raphson 迭代中求得的修正量 \(du_i\) 应满足
为实现上述关系,对 \(\boldsymbol{K}\) 和 \(\boldsymbol{R}\) 进行修改。这样,在第1次迭代中位移增量达到约束值 \(\bar{u}_i\),从第2次迭代开始修正量变为 \(0\),从而保持约束值。
矩阵与残差向量的变换步骤¶
上一节的替换目标可在保持线性方程 \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\) 形式不变的情况下,通过以下两项变换实现。
- 第 \(i\) 行对角化:将 \(du_i\) 的系数即对角项 \(K_{ii}\) 替换为 \(1\),将其他所有系数 \(K_{ij}\ (j \not= i)\) 替换为 \(0\),并将右端项设为 \(R_i \to d\bar{u}_i\)。这样,第 \(i\) 行方程变为 \(du_i = d\bar{u}_i\)。
- 从第 \(j(\not= i)\) 行移项:对于第 \(j(\not= i)\) 行,如果 \(K_{ji} \not= 0\),则将 \(K_{ji} du_i = K_{ji} d\bar{u}_i\) 这一项移到右端。也就是说,从右端减去 \(K_{ji} d\bar{u}_i\),并将 \(du_i\) 的系数 \(K_{ji}\) 设为 \(0\)。
用分量形式表示时,变换前后的方程对应如下。
将变换后的系数矩阵和右端分别记为 \(\tilde{\boldsymbol{K}}, \tilde{\boldsymbol{R}}\),最终应求解的线性方程为
。当存在多个受约束自由度时,对每个受约束自由度 \(i\) 依次应用上述1、2两项变换。
稀疏矩阵实现中的处理范围¶
在实现中,系数矩阵 \(\boldsymbol{K}\) 以稀疏矩阵形式保存。上一节步骤2中对第 \(j(\not= i)\) 行的处理,仅对第 \(i\) 列具有非零分量的行执行,也就是仅对通过单元与受约束自由度 \(i\) 相连节点的自由度执行。对于没有连接关系的自由度,\(K_{ji} = 0\),移项不会改变右端项。通过这一限制,只需相对于全局节点数进行局部操作即可完成约束处理。
相关项目¶
- 外力虚功与全局方程的组装 — 修改前 \(\boldsymbol{K}, \boldsymbol{R}\) 的构成
- Newton-Raphson 法 — 与求取修正量 \(d\boldsymbol{u}\) 的迭代之间的关系
- 收敛判定 — 对约束处理后的残差 \(\tilde{\boldsymbol{R}}\) 进行范数评估