幾何邊界條件的處理¶
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}}\) 的範數評估