
發(fā)布
注冊(cè)
/
登錄提高abaqus計(jì)算速度的案例
如何提高ABAQUS計(jì)算速度
如何提高ABAQUS計(jì)算速度
當(dāng)問題的自由度和復(fù)雜程度比較小的時(shí)候,計(jì)算速度也許不是什么太大的問題,但當(dāng)自由度很多,比如幾百萬個(gè)自由度,又有復(fù)雜的接觸搜索計(jì)算時(shí),計(jì)算速度就很重要了。我不精通計(jì)算機(jī)原理,但在Windows和Linux上安裝使用過32位和64位ABAQUS,也在64位工作站上用Linux并行計(jì)算過,對(duì)計(jì)算速度有一點(diǎn)自己的心得,寫出來和大家討論下,對(duì)計(jì)算機(jī)比較精通的,希望能解釋下原理和表達(dá)下自己的看法。
我認(rèn)為影響計(jì)算速度的因素主要有3個(gè):
1.計(jì)算模型的大小和復(fù)雜程度;
2.ABAQUS中關(guān)于內(nèi)存和硬盤使用的設(shè)置;
3.計(jì)算機(jī)的配置。
在ABAQUS幫助文件中說,一個(gè)有限元模型在分析計(jì)算中,會(huì)生成兩種臨時(shí)文件,第一種臨時(shí)文件是必須放在內(nèi)存中,第二種臨時(shí)文件可以放在硬盤里也可以放在內(nèi)存中。由于內(nèi)存讀寫速度比硬盤讀寫速度快,所以如果計(jì)算機(jī)配置不變的情況下,要達(dá)到最快計(jì)算速度,就要在計(jì)算時(shí)讓兩種臨時(shí)文件都放在內(nèi)存中。在計(jì)算前進(jìn)行datacheck,然后在dat文件中會(huì)告訴你能使模型計(jì)算所需最小的內(nèi)存量,也就是在計(jì)算中所生成的第一種文件的大小,還會(huì)告訴你最小I/O交換情況所需的內(nèi)存量,也就是兩種文件都放在內(nèi)存中時(shí)所需要的內(nèi)存量,我稱這叫“全速計(jì)算”所需內(nèi)存量。在ABAQUS中,有個(gè)內(nèi)存使用上限設(shè)置參數(shù),也就是你允許你的計(jì)算機(jī)中有多少內(nèi)存讓ABAQUS使用,如果你允許ABAQUS使用的內(nèi)存上限大于“全速計(jì)算”所需內(nèi)存,則ABAQUS會(huì)將兩種臨時(shí)文件放入內(nèi)存使用。如果允許內(nèi)存大于最小所需內(nèi)存,小于“全速計(jì)算”計(jì)算內(nèi)存,則ABAQUS會(huì)把第二種文件一部分放入內(nèi)存,一部分放入硬盤。如果允許內(nèi)存小于最小所需內(nèi)存,則無法計(jì)算。
展開 ABAQUS提高計(jì)算速度的經(jīng)驗(yàn)總結(jié)
所以如果你的模型“全速計(jì)算”所需內(nèi)存量很小的時(shí)候,或者相對(duì)你的計(jì)算機(jī)物理內(nèi)存很小的時(shí)候,如果不改變計(jì)算機(jī)配置,速度就已經(jīng)達(dá)到最快了,再加大內(nèi)存或內(nèi)存上限也沒用。如果你的模型無法進(jìn)行“全速計(jì)算”,首先可以在可能的情況下,提高ABAQUS允許使用內(nèi)存上限值來提速,如果本身物理內(nèi)存的限制,那么加大物理內(nèi)存也能提速。
下面說說CPU和內(nèi)存的使用問題。首先CPU和內(nèi)存頻率越高計(jì)算速度就會(huì)越快。當(dāng)“全速計(jì)算”時(shí),我看到的是CPU在分析計(jì)算時(shí)能100%使用(除了前處理,寫入計(jì)算結(jié)果和兩迭代計(jì)算中間隙時(shí)),多CPU計(jì)算也是如此。不是“全速計(jì)算”時(shí),分析計(jì)算種CPU部分時(shí)間能100%使用,和部分CPU能100%使用,我想這應(yīng)該和硬盤讀寫速度相對(duì)較慢導(dǎo)致的吧。如果有兩個(gè)模型在某計(jì)算機(jī)中都能“全速計(jì)算”,兩個(gè)“全速計(jì)算”的內(nèi)存之和也不超過允許使用內(nèi)存大小,如果同時(shí)計(jì)算,計(jì)算速度應(yīng)該都小于分別單獨(dú)計(jì)算時(shí)的速度,因?yàn)镃PU要分配給兩個(gè)模型用。如果兩個(gè)“全速計(jì)算”的內(nèi)存之和大于允許使用內(nèi)存,則同時(shí)計(jì)算時(shí)就會(huì)“搶內(nèi)存”,計(jì)算速度就會(huì)大打折扣,這還沒考慮如果使用了虛擬內(nèi)存的情況。
如果你設(shè)置的ABAQUS使用的內(nèi)存上限大于你實(shí)際的物理內(nèi)存,這個(gè)時(shí)候好像就會(huì)用到虛擬內(nèi)存,計(jì)算速度也會(huì)大打折扣。如果你用ABAQUS時(shí)還有其它程序也在大量使用內(nèi)存和CPU,也會(huì)很影響速度。所以務(wù)必保證你設(shè)置的允許使用內(nèi)存上限,必須是計(jì)算機(jī)物理內(nèi)存實(shí)際能空閑提供給ABAQUS使用的內(nèi)存。
然后再是Linux和并行計(jì)算的問題,一臺(tái)計(jì)算機(jī)使用多個(gè)CPU進(jìn)行計(jì)算也算是一種并行計(jì)算,在“全速計(jì)算”情況下參與計(jì)算的CPU越多,計(jì)算速度越快。我用的是ABAQUS6.8,Linux用的是opensuse10.3,計(jì)算機(jī)用的是兩臺(tái)64位8CPU工作站。
展開 ABAQUS提高計(jì)算速度的經(jīng)驗(yàn)總結(jié)(轉(zhuǎn))
在ABAQUS幫助文件中說,一個(gè)有限元模型在分析計(jì)算中,會(huì)生成兩種臨時(shí)文件,第一種臨時(shí)文件是必須放在內(nèi)存中,第二種臨時(shí)文件可以放在硬盤里也可以放在內(nèi)存中。由于內(nèi)存讀寫速度比硬盤讀寫速度快,所以如果計(jì)算機(jī)配置不變的情況下,要達(dá)到最快計(jì)算速度,就要在計(jì)算時(shí)讓兩種臨時(shí)文件都放在內(nèi)存中。在計(jì)算前進(jìn)行datacheck,然后在dat文件中會(huì)告訴你能使模型計(jì)算所需最小的內(nèi)存量,也就是在計(jì)算中所生成的第一種文件的大小,還會(huì)告訴你最小I/O交換情況所需的內(nèi)存量,也就是兩種文件都放在內(nèi)存中時(shí)所需要的內(nèi)存量,我稱這叫“全速計(jì)算”所需內(nèi)存量。在ABAQUS6.8中,有個(gè)內(nèi)存使用上限設(shè)置參數(shù),也就是你允許你的計(jì)算機(jī)中有多少內(nèi)存讓ABAQUS使用,如果你允許ABAQUS使用的內(nèi)存上限大于“全速計(jì)算”所需內(nèi)存,則ABAQUS會(huì)將兩種臨時(shí)文件放入內(nèi)存使用。如果允許內(nèi)存大于最小所需內(nèi)存,小于“全速計(jì)算”計(jì)算內(nèi)存,則ABAQUS會(huì)把第二種文件一部分放入內(nèi)存,一部分放入硬盤。如果允許內(nèi)存小于最小所需內(nèi)存,則無法計(jì)算。
所以如果你的模型“全速計(jì)算”所需內(nèi)存量很小的時(shí)候,或者相對(duì)你的計(jì)算機(jī)物理內(nèi)存很小的時(shí)候,如果不改變計(jì)算機(jī)配置,速度就已經(jīng)達(dá)到最快了,再加大內(nèi)存或內(nèi)存上限也沒用。如果你的模型無法進(jìn)行“全速計(jì)算”,首先可以在可能的情況下,提高ABAQUS允許使用內(nèi)存上限值來提速,如果本身物理內(nèi)存的限制,那么加大物理內(nèi)存也能提速。
下面說說CPU和內(nèi)存的使用問題。首先CPU和內(nèi)存頻率越高計(jì)算速度就會(huì)越快。當(dāng)“全速計(jì)算”時(shí),我看到的是CPU在分析計(jì)算時(shí)能100%使用(除了前處理,寫入計(jì)算結(jié)果和兩迭代計(jì)算中間隙時(shí)),多CPU計(jì)算也是如此。不是“全速計(jì)算”時(shí),分析計(jì)算種CPU部分時(shí)間能100%使用,和部分CPU能100%使用,我想這應(yīng)該和硬盤讀寫速度相對(duì)較慢導(dǎo)致的吧。
展開 云解決方案 | Ansys Gateway顯著提高仿真計(jì)算能力和求解速度
由AWS亞馬遜云提供支持的Ansys Gateway:為仿真而打造
這款云解決方案,即由AWS亞馬遜云提供支持的Ansys Gateway,顯著提高了仿真的計(jì)算能力和求解速度,專用于解決當(dāng)今仿真所具有的海量數(shù)據(jù)、復(fù)雜工作流程和跨職能協(xié)作。
該解決方案可在AWS Marketplace上獲取,其巧妙結(jié)合了全球最全面、最廣泛采用的云平臺(tái),與Ansys在通過HPC解決高級(jí)工程問題方面的深厚專業(yè)知識(shí)。Ansys專家深知如何將特定的Ansys解決方案與問題類型以及最佳HPC配置相匹配,因此,可提供優(yōu)異的“即插即用”性能,其默認(rèn)的虛擬桌面架構(gòu)(VDI)和HPC設(shè)置已經(jīng)針對(duì)工程仿真進(jìn)行了優(yōu)化。
由AWS亞馬遜云提供支持的Ansys Gateway還可為更高級(jí)的用戶提供對(duì)云環(huán)境的完全控制。用戶可以通過用戶門戶配置自己獨(dú)特的VDI或HPC集群,這些集群可根據(jù)用戶自己的仿真需求進(jìn)行定制。用戶可從AWS云部署模板提供的豐富選項(xiàng)中進(jìn)行選擇,其中包含CPU、內(nèi)存、存儲(chǔ)和網(wǎng)絡(luò)容量的各種組合。由AWS亞馬遜云提供支持的Ansys Gateway還為每個(gè)求解器提供推薦的模板類型。
云定制化功能使Ansys Fluent用戶能夠在求解速度和計(jì)算成本之間進(jìn)行平衡,以滿足他們自己的特定需求。有些用戶可能面臨緊迫的期限,需要選擇最快的運(yùn)行時(shí)間,而不考慮成本;而另一些用戶可能不需要快速獲得CFD仿真結(jié)果,并選擇較慢的解決方案運(yùn)行時(shí)間,從而最大限度地降低硬件成本。由AWS亞馬遜云提供支持的Ansys Gateway使仿真用戶能夠自己做出明智的選擇。
展開 
ANSYS模型的Model Order Reduction(提高瞬態(tài)計(jì)算速度數(shù)百倍)
(Solver_Option = 0 是使用external 的 MOR_MUMPS.exe程序做matrix factorization,速度可提高數(shù)倍。MOR_MUMPS.exe是自己寫的C語言程序,用到了GNU MUMPS linear solver library和BLAS library, 需用GNU fortran 和 gcc 編譯).
ANSYS模型的MOR步驟:
Model Order Reduction using Ansys & Matlab.rar
(1): 在ANSYS里建模,mesh,以及加載 (不必求解)。
(2): 用HBMAT命令輸出system matrice文件(Example.mac里有對(duì)應(yīng)的code).
(3): 在Matlab里讀入system matrice文件進(jìn)行MOR(code在MOR_ODE.m里).
(4): 在Matlab里用ODE solver求解并project solution back 得到原模型上的解。
限制: 模型必需是linear system response model.
ansys.dat 中包含了用ANSYS得到的MX和MN點(diǎn)的溫度變化曲線, 用來和MOR結(jié)果做比較。
下圖顯示了用matlab/MOR求解ANSYS模型結(jié)果和直接用ANSYS simulation的結(jié)果的比較,可以看出結(jié)果完全一樣,求解速度提高400倍!
展開 【經(jīng)驗(yàn)貼】關(guān)于影響帶UMAT的ABAQUS模型計(jì)算速度的若干因素的探討
聲明:貼主目前正在學(xué)習(xí)ABAQUS,對(duì)UMAT有一點(diǎn)淺淺的了解,若有不對(duì)的地方,請(qǐng)理性留言討論。
貼主的ABAQUS模型即使使用工作站,一運(yùn)行也好幾天,苦惱不已,因此萌生了探討影響計(jì)算速度的相關(guān)因素的想法。
首先影響ABAQUS運(yùn)行速度的最主要因素是模型的復(fù)雜程度,但往往模型是不易更改的,因此本文不做討論,而著重討論容易更改的部分,進(jìn)而提高ABAQUS的運(yùn)行效率。以下對(duì)計(jì)算效率的討論均使用了使用TEXGEN生成的2D編織模型,模型文件也會(huì)放在參考里。
1、載荷大小是否影響運(yùn)算效率?
會(huì)。對(duì)模型的位移拉伸0.5,計(jì)算時(shí)間為1:45.12; 對(duì)模型的位移拉伸1,所需時(shí)間為2:53.65。可見,位移大小對(duì)計(jì)算時(shí)間是有影響的,位移越大,所需的時(shí)間越多,但單位位移所需的時(shí)間是遞減的。
2、約束是否會(huì)影響運(yùn)算效率?
不會(huì)。我分別進(jìn)行了模型一端tie到RP點(diǎn)上,然后施加靜止約束的運(yùn)算,以及模型一端直接施加靜止約束的運(yùn)算,所需時(shí)間差別不大。
3、調(diào)用核心數(shù)對(duì)運(yùn)行效率影響多大?
貼主電腦CPU為I5-11400,共6個(gè)核心,做了以下試驗(yàn):
核心數(shù) 位移U 時(shí)間 CPU利用率
8 0.5 1:40 100%
7 0.5 1:43 100%
6 0.5 1:51 80%
2 0.5 3:29 35%
由此可發(fā)現(xiàn),即使電腦內(nèi)核只有6個(gè),調(diào)用6個(gè)內(nèi)核CPU是跑不滿的,建議調(diào)用CPU時(shí)候多調(diào)用兩個(gè)。
展開 巧用單元提高Abaqus計(jì)算效率:帶扭曲的軸對(duì)稱單元-橡膠阻尼器內(nèi)摩擦生熱分析 ¥49.99
Abaqus有非常豐富的單元庫,其中就有軸對(duì)稱單元,比如CAX4(I/R/H/T),當(dāng)一個(gè)回轉(zhuǎn)結(jié)構(gòu)具有某種載荷對(duì)稱性時(shí),可以用它將三維模型縮減為軸對(duì)稱模型來分析,能減少大量的內(nèi)存和分析時(shí)間,而同樣的模型規(guī)模,3D實(shí)體單元要更耗費(fèi)計(jì)算資源。
那么,回轉(zhuǎn)結(jié)構(gòu)受到側(cè)向彎曲或軸向扭轉(zhuǎn)的載荷時(shí),有沒有類似的單元可以用呢?
橡膠阻尼器的內(nèi)摩擦生熱分析-節(jié)點(diǎn)溫度云圖
比如,假設(shè)上圖中的阻尼器不再是長方體,而是回轉(zhuǎn)體,且發(fā)生軸向扭曲變形,那么能不能用軸對(duì)稱單元來建模呢?
答案是可以的,在Abaqus的軸對(duì)稱單元系里還有一種可考慮Twist的單元,即帶字母G標(biāo)識(shí)的那種類型,能夠在分析時(shí)充分考慮回轉(zhuǎn)體的整體扭轉(zhuǎn)變形。
首先,我們可以在part模塊使用Axisymmetric建立環(huán)形塊狀阻尼器的回轉(zhuǎn)截面;然后在mesh模塊劃分好四邊形網(wǎng)格;最后,定義單元類型為CGAX4T,即帶扭曲的4節(jié)點(diǎn)軸對(duì)稱位移-溫度耦合單元。
這里的橡膠阻尼器材料本構(gòu)采用的是超彈性模型,應(yīng)變能描述形式為Neo Hooke,再結(jié)合時(shí)域黏彈性Prony參數(shù)與非彈性變形能耗散比,來計(jì)算阻尼器周期性扭轉(zhuǎn)過程中的材料內(nèi)摩擦生熱。
阻尼器上、下兩個(gè)端面的節(jié)點(diǎn)分別使用位于回轉(zhuǎn)軸上的兩個(gè)參考點(diǎn)來耦合,固定下端面參考點(diǎn),并在上端面參考點(diǎn)施加軸向的周期性扭角位移。
阻尼器的回轉(zhuǎn)結(jié)構(gòu)與網(wǎng)格-單元
雖然建模時(shí)只考慮了回轉(zhuǎn)截面,但是帶扭曲的軸對(duì)稱單元可以將回轉(zhuǎn)體發(fā)生扭轉(zhuǎn)時(shí)的整體結(jié)構(gòu)響應(yīng)考慮在內(nèi),這是因?yàn)檫@種單元多了一個(gè)扭轉(zhuǎn)自由度5,拿本例中的位移-溫度耦合單元CGAX4T來說,該單元的節(jié)點(diǎn)具有1、2、5和11四個(gè)自由度。
展開