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

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