abaqus計(jì)算速度.docx_第1頁(yè)
abaqus計(jì)算速度.docx_第2頁(yè)
abaqus計(jì)算速度.docx_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

當(dāng)問(wèn)題的自由度和復(fù)雜程度比較小的時(shí)候,計(jì)算速度也許不是什么太大的問(wèn)題,但當(dāng)自由度很多,比如幾百萬(wàn)個(gè)自由度,又有復(fù)雜的接觸搜索計(jì)算時(shí),計(jì)算速度就很重要了。我不精通計(jì)算機(jī)原理,但在Windows和Linux上安裝使用過(guò)32位和64位ABAQUS,也在64位工作站上用Linux并行計(jì)算過(guò),對(duì)計(jì)算速度有一點(diǎn)自己的心得,寫(xiě)出來(lái)和大家討論下,對(duì)計(jì)算機(jī)比較精通的,希望能解釋下原理和表達(dá)下自己的看法。我認(rèn)為影響計(jì)算速度的因素主要有3個(gè):1 計(jì)算模型的大小和復(fù)雜程度 2 ABAQUS中關(guān)于內(nèi)存和硬盤(pán)使用的設(shè)置 3 計(jì)算機(jī)的配置 在ABAQUS幫助文件中說(shuō),一個(gè)有限元模型在分析計(jì)算中,會(huì)生成兩種臨時(shí)文件,第一種臨時(shí)文件是必須放在內(nèi)存中,第二種臨時(shí)文件可以放在硬盤(pán)里也可以放在內(nèi)存中。由于內(nèi)存讀寫(xiě)速度比硬盤(pán)讀寫(xiě)速度快,所以如果計(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)存,一部分放入硬盤(pán)。如果允許內(nèi)存小于最小所需內(nèi)存,則無(wú)法計(jì)算。所以如果你的模型“全速計(jì)算”所需內(nèi)存量很小的時(shí)候,或者相對(duì)你的計(jì)算機(jī)物理內(nèi)存很小的時(shí)候,如果不改變計(jì)算機(jī)配置,速度就已經(jīng)達(dá)到最快了,再加大內(nèi)存或內(nèi)存上限也沒(méi)用。如果你的模型無(wú)法進(jìn)行“全速計(jì)算”,首先可以在可能的情況下,提高ABAQUS允許使用內(nèi)存上限值來(lái)提速,如果本身物理內(nèi)存的限制,那么加大物理內(nèi)存也能提速。下面說(shuō)說(shuō)CPU和內(nèi)存的使用問(wèn)題。首先CPU和內(nèi)存頻率越高計(jì)算速度就會(huì)越快。當(dāng)“全速計(jì)算”時(shí),我看到的是CPU在分析計(jì)算時(shí)能100使用(除了前處理,寫(xiě)入計(jì)算結(jié)果和兩迭代計(jì)算中間隙時(shí)),多CPU計(jì)算也是如此。不是“全速計(jì)算”時(shí),分析計(jì)算種CPU部分時(shí)間能100使用,和部分CPU能100使用,我想這應(yīng)該和硬盤(pán)讀寫(xiě)速度相對(duì)較慢導(dǎo)致的吧。如果有兩個(gè)模型在某計(jì)算機(jī)中都能“全速計(jì)算”,兩個(gè)“全速計(jì)算”的內(nèi)存之和也不超過(guò)允許使用內(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ì)大打折扣,這還沒(méi)考慮如果使用了虛擬內(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ì)算的問(wèn)題,一臺(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工作站。我的計(jì)算速度經(jīng)驗(yàn)是,同一個(gè)模型在“全速計(jì)算”情況下,用隱式計(jì)算,單機(jī)Linux計(jì)算時(shí)間是單機(jī)Windows計(jì)算時(shí)間的四分之三,兩個(gè)工作站Linux并行計(jì)算的時(shí)間是單機(jī)Windows計(jì)算的二分之一。這個(gè)問(wèn)題我也是研究過(guò):1 計(jì)算速度在不同的ABAQUS處理階段是不一樣的,所以不同時(shí)間CPU的使用率也是不同的2 CPU要和相應(yīng)的內(nèi)存相配套,例如64位的操作系統(tǒng)要和4G以上的電腦,我的是16G的內(nèi)存,8核CPU,CPU有時(shí)候可以全部達(dá)到50%以上3 CPU只有在顯式計(jì)算中能體會(huì)到最大的使用率,可以看到所有的CPU在運(yùn)行,很壯觀的。是的,前處理,寫(xiě)入計(jì)算結(jié)果和兩迭代計(jì)算中間隙時(shí),CPU使用率沒(méi)有真正計(jì)算時(shí)高。對(duì)于顯示計(jì)算,之所以CPU總能100利用,我覺(jué)得是因?yàn)橛捎陲@示計(jì)算時(shí),臨時(shí)文件只有第一種臨時(shí)文件,也就是臨時(shí)文件都只能放到內(nèi)存中,所以顯示計(jì)算就相當(dāng)于隱式計(jì)算的“全速計(jì)算”。隱式“全速計(jì)算”時(shí),CPU全部用滿的確很壯觀,我用兩個(gè)64位工作站進(jìn)行Linux并行計(jì)算時(shí),16個(gè)CPU的使用率都是100時(shí)很讓人興奮??!既然有人把老貼頂起來(lái)了, 我就再多啰嗦兩句, 望Robert_Su網(wǎng)開(kāi)一頁(yè).首先, I/O是指input/output,是指用于基本輸入輸出的交換文件大小, 如果內(nèi)存了不夠的話, 這個(gè)文件是放在硬盤(pán)上的, 如果內(nèi)存足夠大的話, 這個(gè)文件則會(huì)由ABAQUS進(jìn)行任務(wù)調(diào)度放入內(nèi)存以提高速度, 即設(shè)定內(nèi)存使用量的百分比. 這個(gè)不是指所需的內(nèi)存量, 而是作為一個(gè)控制磁盤(pán)剩余空間的參數(shù). 其次, 關(guān)于緩存大了是不是一定好的問(wèn)題, 緩存是一個(gè)磁盤(pán)文件的部分或全部鏡像, CPU要得到數(shù)據(jù)首先是通過(guò)查找其內(nèi)部的高速緩存, 或叫一級(jí)緩存, 如果沒(méi)有, 再查找二級(jí), 還沒(méi)有再查找內(nèi)存中的磁盤(pán)緩存, 還沒(méi)有就查找磁盤(pán)文件, 一部級(jí)數(shù)越高, 其緩存物理速度越快, 空間也越小, 價(jià)格也高, 所以系統(tǒng)分級(jí)緩存是一個(gè)金字塔形的, 假如CPU在前三次都沒(méi)找到, 第四次找磁盤(pán)空間才找到, 為什么不能直接找磁盤(pán)呢, 這樣不是更節(jié)約時(shí)間? 問(wèn)題就出在所有的緩存都是下一級(jí)緩存部分鏡像上, 而且查找緩存也要用到一定的時(shí)間, 這種情況下, 磁盤(pán)文件在內(nèi)存中的緩存就不是越大越好, 而是剛剛好最好, 小了會(huì)減小命中率, 大了會(huì)增加查找時(shí)間.再次, 關(guān)于多CPU的問(wèn)題, 操作系統(tǒng)在進(jìn)行任務(wù)調(diào)度的時(shí)候會(huì)盡量安排互相之間沒(méi)有資源沖突的線程分CPU進(jìn)行計(jì)算, 最后再進(jìn)行數(shù)據(jù)同步, 每個(gè)CPU和線程都占用獨(dú)立的運(yùn)行空間, 為了對(duì)公用的數(shù)據(jù)空間進(jìn)行管理, 防止幾個(gè)線程同時(shí)改變公共數(shù)據(jù), 同步技術(shù)在這里被使用了, 跑得快的必須在某個(gè)點(diǎn)停下來(lái)等跑得慢的, 這樣就造成了執(zhí)行效率的下降, 但是保證了數(shù)據(jù)安全, 沒(méi)有必錯(cuò)誤的修改, 所以不可能出現(xiàn)一個(gè)CPU在進(jìn)行每二步迭代了, 另一個(gè)CPU還是算第一步的情況, 特別是在std中很明顯, 我曾經(jīng)試過(guò)4CPU比2CPU計(jì)算會(huì)慢一點(diǎn)點(diǎn)的情況. 就是因?yàn)閿?shù)據(jù)同步的問(wèn)題.model change單元的鈍化和激活技術(shù)在對(duì)施工工序進(jìn)行模擬時(shí)是十分必要的。因此,探索ABAQUS中單元的鈍化和激活具有明顯的意義。在本論壇*Model change 的應(yīng)用技巧初步/viewthread.php?tid=842837&extra=page%3D1%26amp%3Bfilter%3Dtype%26amp%3Btypeid%3D2&page=1經(jīng)過(guò)網(wǎng)友們的熱烈討論,尤其是jsnjcivil的提醒后,才發(fā)現(xiàn)這個(gè)該帖內(nèi)容尤其是原帖的inp文件已經(jīng)跟后邊討論的內(nèi)容存在比較大的出入了,不便于對(duì)model change的正確把握。為了方便以后的網(wǎng)友更容易掌握該命令的應(yīng)用,特開(kāi)新貼并進(jìn)行修正。也一并感謝jsnjcivil?;驹恚菏紫葘⒔Y(jié)構(gòu)分成兩個(gè)獨(dú)立部分,一是需要在前期需要鈍化而隨后需要激活的部分,另一部分就是不需要做任何處理的剩余部分。在此將其分別命名為“需要鈍化”的部分和“不需要鈍化”的部分。由于ABA在激活單元時(shí)是在該單元的原始位置予以激活,而實(shí)際結(jié)構(gòu)分析中往往要求在變形后的位置上以無(wú)初始應(yīng)變的方式激活。故需要先確定變形后的相應(yīng)位置,并予以激活。為此特設(shè)置一種具有“追蹤功能”的單元。此單元實(shí)際上是“需要鈍化”單元的備份單元(通過(guò)elcopy命令實(shí)現(xiàn)),具體要求如下:1.該單元跟“需要鈍化”單元形狀完全一致,共享節(jié)點(diǎn),但具有不同的單元號(hào);2.該單元的剛度很小,它的存在不影響原有結(jié)構(gòu)的計(jì)算結(jié)果;3.該單元的自重?zé)o限小,不至于由于自重導(dǎo)致該單元產(chǎn)生過(guò)大應(yīng)力和變形;可見(jiàn),該“追蹤功能”的單元具有“完全彈性”性質(zhì)。因此,當(dāng)添加此單元后,實(shí)際結(jié)構(gòu)實(shí)際上由三部分組成,一是“需要鈍化”的單元,二是“不需要鈍化”的單元,三是賦予了完全彈性材料特性的 “追蹤單元”?,F(xiàn)在,如果將原來(lái) “需要鈍化”的單元鈍化掉(*model change, remove),則結(jié)構(gòu)中剩下的就是“不需要鈍化”的單元和“追蹤單元”兩部分。由于“追蹤單元”的剛度很小,所以,理論上是不影響原有結(jié)構(gòu)的受力的。但由于追蹤單元仍在結(jié)構(gòu)上,其變形位置是可以隨 “不需要鈍化”單元的變形而獲得的。當(dāng)此時(shí)激活先前已經(jīng)鈍化的單元時(shí),由于該單元與“追蹤單元”共享節(jié)點(diǎn),先前已經(jīng)鈍化的單元就自然而然的獲得變形后的位置了。這就是“追蹤”功能的基本原理。如果“追蹤單元”不采用完全彈性材料,則結(jié)構(gòu)的剛度就會(huì)因此增大很多,這是第一個(gè)需要注意的地方。如果“追蹤單元”的自重參數(shù)較大,則會(huì)因其彈性模量較小而產(chǎn)生很大的變形,這是第二個(gè)需要注意的地方。如果鈍化單元后結(jié)構(gòu)體系的約束設(shè)置不合理,則會(huì)出現(xiàn)結(jié)構(gòu)不穩(wěn)定的現(xiàn)象,這是第三個(gè)需要注意的地方。由于“追蹤單元”的“完全彈性”和小自重特性,理論上講,對(duì)結(jié)構(gòu)的任何一部分的計(jì)算都不會(huì)有很明顯的影響。基本步驟:建立part,結(jié)合施工順序的要求對(duì)相關(guān)part進(jìn)行partition,并將partition 后的各個(gè)獨(dú)立部分設(shè)置單元集(以便在elcopy的時(shí)候調(diào)用)。此時(shí)的結(jié)構(gòu)由兩部分組成,一是“需要鈍化”的單元集,二是剩余的“不需要鈍化”的單元集。這兩部分必須相互獨(dú)立,不能有交集。當(dāng)然,在同一個(gè)part里,允許有多個(gè)“需要鈍化”的單元集存在。在assembly階段,將涉及“需要鈍化”單元集的部分按part內(nèi)同樣的要求設(shè)置相應(yīng)的單元集,以便model change時(shí)方便調(diào)用。其它建模步驟先按一般方法完成。然后對(duì)形成的inp文件進(jìn)行修改。1.在涉及“需要鈍化”的單元集的instance里添加elcopy命令行*Elcopy, Element shift=XXXX, Old set=Original_Set, New set=Trace_Set,Shiftnodes=0此處的Element shift=XXXX是單元號(hào)的增加量,一般要求略大于該instance中原有單元數(shù)的最大值,否則會(huì)出現(xiàn)材料重復(fù)定義的錯(cuò)誤提示;也不宜設(shè)置過(guò)大。Old set=Original_Set此處的Original_Set是在該instance中 “需要鈍化”的單元集。New set=Trace_Set是新增的用于追蹤的單元集。Shiftnodes=0即表示新增追蹤單元集Trace_Set與“需要鈍化”的Original_Set單元集共享節(jié)點(diǎn)。2. 在assembly 中設(shè)置“需要鈍化”的單元集,以便在model change進(jìn)行相關(guān)操作。如果不在此處設(shè)置單元集,則在model change調(diào)用的時(shí)候需要指定part屬性。3.添加“完全彈性”材料要求完全彈性,即相對(duì)于非鈍化單元的彈性模量小,最好能小5個(gè)數(shù)量級(jí);要求質(zhì)輕,以避免自重引起變形過(guò)大,可近似取自重密度比其彈性模型模量小5個(gè)數(shù)量級(jí)。4.在適當(dāng)階段鈍化單元集* Remove all elements in element set Original_Set*MODEL CHANGE, REMOVEOriginal_Set需要注意的是鈍化掉的是原始單

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論