設計仿真 | MSC Nastran高性能求解計算(一)
MSC Nastran是一款功能強大的有限元分析(FEA)軟件,是工程仿真的基礎。MSC Nastran已被結構分析專家使用和驗證了半個世紀,以其穩健性、準確性和能夠解決工程中的挑戰而聞名。
本期摘要內容
? 了解MSC Nastran如何利用高性能計算(HPC)策略提高您的仿真和分析性能。
? 探索適用于所有分析類型(包括靜力學、特征值、動力學和非線性)的可用求解器,以便您可以根據特定的仿真需求選擇最合適的求解器。
? 從其他MSC Nastran用戶和Hexagon專家的經驗中汲取見解,以實現最佳的并行性能,同時最大限度地降低讀取和寫入磁盤的成本。
? 將HPC專業知識與對MSC Nastran求解器的全面了解相結合,以顯著加快仿真速度、最大限度地降低成本并提高不同類型分析的效率。
01 求解器分類
MSC Nastran包含多種求解器。根據分析模型的特點來選擇最優的求解器。MSC Nastran 求解器可分為三大類:直接求解器、迭代求解器和特征值求解器。
例如,線性靜態分析計算位移和其他結果,其靜態仿真性能主要由兩步運算決定:求解矩陣方程和將請求的數據寫入到輸出文件中。為了求解矩陣方程,我們可以使用直接或迭代方法,其中輸入是剛度矩陣和載荷,輸出是位移。
直接求解器
直接求解器依賴于LDLT分解,該方法在結構分析中應用廣泛,這種方法對剛度矩陣的數值特性不敏感,因此適用性比較好,它們的運行過程包含兩步。首先,將對稱剛度矩陣分解為下三角陣;然后,執行前向消元和后向替換(FBS)來求解結果系統,這一步也稱為求解算法的FBS部分。
直接方法利用剛度矩陣中固有的稀疏性(圖1)。稀疏矩陣僅意味著有許多零項。多波前Multi-frontal算法利用矩陣稀疏性來減少計算時間和內存需求。
矩陣分解通常占總求解時間的80-90%,而FBS部分通常消耗剩余的10-20%。MSC Nastran 提供三種直接方法:
? MSC稀疏直接求解器(MSCLDL)
? Pardiso求解器(PRDLDL)
? MUMPS求解器(MUMPS 和MUMPSBLR)
圖 1:二維稀疏矩陣、非零項以黑色顯示(維基百科)
MSCLDL求解器是MSC Nastran的原始稀疏直接求解器,它被設計為在非常有限的內存中運行,但它的并行可擴展性有限。另一方面,Pardiso和MUMPS求解器消耗的內存是MSCLDL的5到12倍,具體取決于模型,但可以表現出更高的性能,尤其是在與共享內存并行(SMP)一起使用時。
迭代求解器
迭代求解器是求解線性方程的另一種選擇。迭代求解器的工作原理是使用迭代來減少近似解中的誤差,最終在可接受的容差范圍內收斂。
迭代方法通常依賴于共軛梯度法或 GMRES算法等技術。盡管這些方法比直接求解器要快得多,消耗的內存也少得多,但它們通常只在某些類型的問題上表現良好,例如載荷工況很少且以實體單元為主導的模型。
特征值求解器
在線性動力學分析中,需要多次動態剛度矩陣的分解。雖然可以基于物理坐標(即物理自由度,相對于模態自由度而言)進行求解,但是它求解效率低,計算時間很長。模態縮減通常用于將系統的物理坐標轉換為一組模態坐標,需要計算特征值來獲得系統的特征值(和固有頻率)和特征向量(振型)。系統的這些內在特性有助于工程師了解其行為,并有助于設計和評估系統在不同條件下的性能。多年來,MSC Nastran 中添加了多種求解特征值問題的方法,包括反冪法(inverse iteration)、Householder、Givens、ACMS和Lanczos 方法。目前,兩種最常見的方法是:
? Lanczos 方法
? ACMS(自動部件模態綜合法)
Lanczos 方法僅進行必要的計算以找到所需要的根。它使用Sturm序列邏輯來確保找到所有模態。在提取相對較少的特征值時,Lanczos 的大部分計算時間都用于執行對稱分解,因此在提高計算效率的策略方面與MSC Nastran中的線性靜態分析幾乎相同。
ACMS是一種多級模態縮減技術,用于得到正則模態分析結果的近似值。它特別適合于需要提取的模態階次較多的分析任務,也適用于需要相對較少模態階數、超大規模模型的求解。將ACMS與FastFR結合使用時,使用模態縮減的頻域動態響應甚至更快。FastFR是一種用于模態頻率響應運行的加速方法,適用于具有高模態階數或高激勵頻率的系統。
接下來,我們將深入研究有關內存、硬件和并行設置的更多細節,以確保求解器以最佳性能水平運行。
02 內存注意事項
使用MSC Nastran進行典型結構的仿真包括線性靜態、正態模態、動態響應和非線性分析。當可用內存足夠時,求解速度主要受內存帶寬的影響。當可用內存不足時,磁盤 (I/O)性能和可用內存成為計算性能的關鍵決定因素。
內存 (RAM)
大多數直接求解器都允許在In-core或Out-of-core中求解。
1) In-core計算
In-core計算意味著可以將整個數值問題放入到分配的內存(RAM)中。該解決方案速度很快,因為訪問內存中的數據比從其他存儲介質中檢索數據要快得多。
2) Out-of-core計算Out-of-core計算
意味著分配的內存只能進行部分數值方程的求解,因此計算的過程是分批進行的。當數值求解完成一部分時,必須將數據從內存中移出到某個存儲介質中,以便為數值求解的下一部分騰出空間。根據所選存儲介質的速度,數據的移動將花費一定的時間,而且它比直接在內存中訪問數據要慢很多。
在過去幾年中,對存儲介質的數據訪問速度顯著得提高。如果配置正確,可以在很大程度上緩解與寫入存儲介質相關的延遲,但分批解決out-of-core的問題始終會降低性能。無論以何種方式解決問題,求解過程都會生成臨時數據,這些數據僅用于管理求解過程。如果有足夠的內存可用,則此臨時數據也可以存儲在內存中的緩沖區中。如果內存不足,則必須將其寫入其他存儲介質。給任何大規模求解計算分配內存將始終影響求解性能。操作系統有自己的I/O緩沖邏輯,但最好使用通過MSC Nastran緩沖池提供的緩沖系統。
為了簡單地說明MSC Nastran如何使用內存,讓我們忽略MSC Nastran分配給其執行系統的少量內存。MSC Nastran在計算時基本上設置了兩個重要的內存區域:主要區域稱為open core,也稱為 HICORE;另一個重要區域分配給緩沖池,它的名稱為BPOOL。
圖2說明了MSC Nastran如何為各種任務分配內存。提交計算時,MSC Nastran會使用用戶指定的計算機上總物理可用RAM的一部分。如果在提交過程中使用“mem=max”命令,MSC Nastran 將使用計算上50%的可用物理內存。此內存大小,一部分分配給緩沖池系統 BPOOL,另一部分分配給求解器 HICORE。
? BPOOL使用內部緩存算法。增加BPOOL的大小會減少對磁盤型存儲介質的讀寫。這對于具有高I/O需求的大問題特別有用,在I/O配置較差的計算機上可以顯著的提高運行時間。另一方面,BPOOL分配的內存越大,HICORE就會越小。
? HICORE表示求解計算而分配的內存。
圖2:MSC Nastran求解的內存布局
圖3展示了一個200萬自由度(DOF)系統在三臺機器上進行靜態接觸分析計算(SOL 101)的示例。這些計算機具有相同的硬件配置,但安裝的RAM內存大小分別為16GB、64GB和128GB。
圖3:不同RAM的內存布局(條形圖)和性能(黃線)示例
對于此模型,將內存從16 GB增加到64 GB可使運行時間減少53%。將RAM增加到128 GB后,運行時間總體上減少了63%。請注意,分配給求解器(HICORE)的內存量保持不變(以藍色顯示),而BPOOL的大小會發生變化(以橙色顯示)。增加BPOOL的大小可以減少運行時間,因為關鍵數據緩存在BPOOL內存中,并且I/O運算顯著加快。
內存分配一般建議是在MSC Nastran提交計算命令行上使用 memory=max。這會將計算機的50%的物理內存分配給作業,并根據模型大小、特性和可用RAM將此數量分配給求解器和緩沖池。

提交
數控五軸模擬訓練機大顯身手,競賽數字孿生應用迎來新突破
浪尖上的創新 | ??怂箍狄钥萍贾厮軟_浪板的綠色未來
GD&T | 尺寸要素的位置度在MMC時零工差和可逆原則的應用
質量管理 | ??怂箍蒂|量管理平臺數字化糾正預防措施
生產制造 | 產品加工-EDGECAM 高效自動編程-自定義半自動編程篇