
發(fā)布
注冊
/
登錄abaqus求解算法的案例
有限元理論基礎(chǔ)及Abaqus內(nèi)部實(shí)現(xiàn)方式研究系列35: 接觸求解算法
從做一個(gè)自主的帶三維交互的CAE軟件的角度上來說,前面說的困難還不是最難的,更難的是前處理對幾何體的拓?fù)涞谋磉_(dá)組織和在整個(gè)接觸過程中不同時(shí)刻點(diǎn)的的兩個(gè)離散網(wǎng)格邊界情況的精確設(shè)置和判斷,譬如像Abaqus和Ansys一樣在一個(gè)整車的幾萬個(gè)零部件模型中自動(dòng)尋找接觸對,這些都需要精度較高的CAD內(nèi)核才能做到,好的商用CAE都是采用商用的Parasolid、Acis庫來處理的,但對一般的自主CAE開發(fā)者來說價(jià)格是難以承受的,這些都嚴(yán)重制約了自主CAE向邊界非線性方向發(fā)展。
本文我們不討論前處理的邊界非線性的處理,僅討論后臺(tái)求解器需要做的接觸求解算法,重點(diǎn)還是在如何將接觸后的約束關(guān)系加入到有限元基本方程中,為后面實(shí)現(xiàn)帶接觸問題的有限元求解打下基礎(chǔ)。有接觸不一定就是邊界非線性,譬如兩個(gè)物體用Tie連接在一起,材料依然是線彈性的,應(yīng)變也沒超過5%,那么我們可以認(rèn)為依然是線性問題,也就不存在邊界非線性了。我們認(rèn)為邊界非線性只是接觸的一種,邊界非線性屬于接觸的一種特殊情況,我們討論的接觸求解算法同樣適用于其它接觸問題。
1.1 整體求解算法
Abaqus Standard的接觸求解的整體流程如下,外層按增量法執(zhí)行,內(nèi)層按迭代法執(zhí)行,其實(shí)依然是牛頓迭代的范疇,只不過第二步:Form and solve system of equations與只有幾何非線性的方程不同,此時(shí)需要加入接觸的方程的形成和求解。
1.2 包括接觸的有限元方程的組成和求解
無論是否存在接觸,有限元方程的建立都是實(shí)際問題的等效。
(1) 在沒有接觸力時(shí)
如下圖情況,物體在體外力和面外力作用下變化。
展開 【JY】淺析各動(dòng)力求解算法及其算法數(shù)值阻尼(人工阻尼)
【中心差分法】由于中心差分法所需要的時(shí)間步長比較短,實(shí)質(zhì)上會(huì)讓該算法的譜半徑的模長等于1,也就是該算法并不能調(diào)整數(shù)值阻尼。
【數(shù)值算法】系數(shù)矩陣非對稱時(shí),線性方程組如何求解?-穩(wěn)定雙共軛梯度法(Bicgstab)求解線性方程組
在前面的文章和中表明共軛梯度法是求解對稱正定線性方程組的一種有效方法,當(dāng)針對不同的系數(shù)矩陣采用不同的預(yù)處理方式時(shí),其可以以較少的迭代次數(shù)獲得較高精度的解。然而,該方法的一個(gè)缺點(diǎn)就是其只能適用于對稱正定系數(shù)矩陣,當(dāng)系數(shù)矩陣不再是對稱正定時(shí),此方法可能失效。
以下舉例:
上面矩陣A為非對稱矩陣,采用共軛梯度法求解過程如下:
該方程組采用共軛梯度法迭代4862次依然未收斂。因此,對于該非對稱方程,可以認(rèn)為,共軛梯度法幾乎是失效的。
在實(shí)際工程中,有限元方法形成的剛度系數(shù)以對稱正定居多,但是實(shí)際上也存在非對稱的可能,例如,當(dāng)材料本構(gòu)采用摩爾-庫倫本構(gòu)時(shí),其形成的剛度矩陣就有可能會(huì)是非對稱的,此時(shí)如果是使用商業(yè)軟件,應(yīng)當(dāng)在軟件中選擇非對稱求解器。如果是自主編程且采用迭代法求解線性方程組,則需要找到一種適用于非對稱矩陣的求解方法。
常見的非對稱系數(shù)矩陣求解方法主要有:廣義最小殘差法(GMRES),雙共軛梯度法(Bicg)穩(wěn)定雙共軛梯度法(BiCGStab),穩(wěn)定混合雙共軛梯度法(BiCGStab(l)),這些方法相對于常規(guī)的共軛梯度法在推導(dǎo)上均增加了一些難度,實(shí)際推導(dǎo)往往較為復(fù)雜。本文不展開推導(dǎo),僅對穩(wěn)定雙共軛梯度法(BiCGStab)的偽代碼作簡要粘貼。
展開 幾種常用的矩陣迭代求解算法
,這里還介紹一種處理CFD這種會(huì)遇到的三對角或者五對角矩陣的迭代求解算法,三對角算法,也算迭代算法只不過這種矩陣剛好容易出現(xiàn)在網(wǎng)格離散之后的方程組里面。

【數(shù)值算法】共軛梯度法求解線性方程組
在有限元程序開發(fā)中,線性方程組的求解是一個(gè)重要組成部分。在百萬自由度大規(guī)模計(jì)算的情況下,線性方程組的高效快速求解對整個(gè)求解器的計(jì)算效率有著至關(guān)重要的作用。無論實(shí)際上計(jì)算的是線性問題,還是各種非線性問題,最終都需要落實(shí)到線性方程組的求解上去。非線性方程組的求解實(shí)際上往往就是多次求解線性方程組。
目前,線性方程組的求解主要分為直接法和迭代法兩種。
在之前的文章[數(shù)值算法與編程]高斯消去法中,我們討論的高斯消去法就是直接法的一種。而本文即將討論的共軛梯度法,是迭代法的一種,并且,其屬于目前求解對稱線性方程組的主要迭代方法。各大商業(yè)有限元軟件,在面臨對稱線性方程組的求解時(shí)幾乎都會(huì)選用各種變化形式的共軛梯度法進(jìn)行求解。
共軛梯度法的具體原理和算法如下:
假定要求解的對稱線性方程組是:
其中,A是對稱正定的系數(shù)矩陣。
則實(shí)際上待求的解也是方程
取得最小值的時(shí)候的解。
求該方程的最小值的常見方法是最速下降法,該方法算法偽代碼如下:
該方法實(shí)際上是沿著負(fù)梯度方向進(jìn)行搜索,直至殘量接近0,較為簡便,但是在條件數(shù)很大時(shí),該方法收斂很慢。
展開 基于Matlab的協(xié)同進(jìn)化遺傳算法求解旅行商問題
旅行商問題(Traveling Salesman Problem,簡稱TSP問題),即為求解最優(yōu)化的城市線路組合,要求每個(gè)城市都要走且只走一遍,終點(diǎn)城市同出發(fā)城市為同一個(gè),最終所走路程需最短。本文在傳統(tǒng)遺傳算法基礎(chǔ)上,對其進(jìn)行改進(jìn)優(yōu)化,提出了精英保留的協(xié)同進(jìn)化遺傳算法,并分別以30、50和75個(gè)城市為例,對二者進(jìn)行對比。該算法的運(yùn)行流程如圖1所示。
圖1 協(xié)同進(jìn)化遺傳算法運(yùn)行流程
產(chǎn)生初始種群后(設(shè)種群數(shù)量為POP),便按照適應(yīng)度值(即總路程倒數(shù))高低將其分為三個(gè)子種群,其中,子種群1的適應(yīng)度值最大,子種群3的適應(yīng)度值最小。接著,在各個(gè)子種群內(nèi)部進(jìn)行交叉變異操作,依次產(chǎn)生新子種群1、新子種群2、新子種群3。同時(shí),三個(gè)子種群兩兩之間,也進(jìn)行交叉變異操作,依次產(chǎn)生新子種群4、新子種群5、新子種群6。最后便將這6個(gè)新子種群進(jìn)行組合,然后從中隨機(jī)挑選出POP-1個(gè)個(gè)體,并根據(jù)精英保留策略,將其與父代最優(yōu)個(gè)體相合并,從而得到新種群、開始下一代的操作。
以30、50、75個(gè)城市為例,分別進(jìn)行10次重復(fù)試驗(yàn),取各次試驗(yàn)兩種算法最優(yōu)解的平均值進(jìn)行對比,結(jié)果如圖2所示。
圖2 兩種算法的尋優(yōu)結(jié)果對比
顯然,同傳統(tǒng)遺傳算法相比,協(xié)同進(jìn)化遺傳算法具備更強(qiáng)大的最優(yōu)解搜索能力,尤其當(dāng)城市數(shù)量較多時(shí)(如此例中的75),其能更有效地避免陷入局部最優(yōu),從而找到全局最優(yōu)的解、使得總路程更小。以75個(gè)城市數(shù)量為例,兩種算法所確定的最優(yōu)路徑分別如圖3(a)與3(b)所示。
(a) 傳統(tǒng)遺傳算法
(b) 協(xié)同進(jìn)化遺傳算法
圖3 兩種算法所確定的最優(yōu)路徑對比
圖3中,橫軸縱軸分別為每個(gè)城市的橫縱坐標(biāo),圖中的數(shù)字即為每個(gè)城市的編號。顯然,協(xié)同進(jìn)化遺傳算法所確定的最優(yōu)路徑更為規(guī)整,這表明其同傳統(tǒng)遺傳算法相比,具有更強(qiáng)的全局尋優(yōu)能力,且具備更好的魯棒性。
展開 FLUENT中的求解器、算法和離散方法
FLUENT中的求解器、算法和離散方法作為一個(gè)非科班出身的CFD工程師,一開始常常被CFD軟件里各種概念搞的暈頭轉(zhuǎn)向。最近終于靜下心來看了看CFD理論的書,理清了一些概念。就此寫一遍博文,順便整理一下所學(xué)內(nèi)容。I 求解器:FLUENT中求解器的選擇在如下圖所示界面中設(shè)置:
FLUENT中的求解器主要是按照是否聯(lián)立求解各控制方程來區(qū)分的,詳見下圖:
II 算法:算法是求解時(shí)的策略,即按照什么樣的方式和步驟進(jìn)行求解。FLUENT中算法的選擇在如下圖所示的界面中設(shè)置:
這里簡單介紹一下SIMPLE、SIMPLEC、PISO等算法的基本思想和適用范圍。SIMPLE算法:基本思想如前面講求解器的那張圖中解釋分離式求解器的例子所示的一樣,這里再貼一遍:1.假設(shè)初始壓力場分布。2.利用壓力場求解動(dòng)量方程,得到速度場。3.利用速度場求解連續(xù)性方程,使壓力場得到修正。4.根據(jù)需要,求解湍流方程及其他方程5.判斷但前計(jì)算是否收斂。若不收斂,返回第二步。簡單說來,SIMPLE算法就是分兩步走:第一步預(yù)測,第二步修正,即預(yù)測-修正。SIMPLC算法:是對SIMPLE算法的一種改進(jìn),其計(jì)算步驟與SIMPLE算法相同,只是壓力修正項(xiàng)中的一些系數(shù)不同,可以加快迭代過程的收斂。PISO算法:比SIMPLE算法增加了一個(gè)修正步,即分三步:第一步預(yù)測,第二步修正得到一個(gè)修正的場分布,第三步在第二步基礎(chǔ)上在進(jìn)行一側(cè)修正。即預(yù)測-修正-修正。PISO算法在求解瞬態(tài)問題時(shí)有明顯優(yōu)勢。對于穩(wěn)態(tài)問題可能SIMPLE或SIMPLEC更合適。如果你實(shí)在不知道該如何選擇,就保持FLUENT的默認(rèn)選項(xiàng)好了。因?yàn)槟J(rèn)選項(xiàng)可以很好解決70%以上的問題,而且對于大部分出了問題的計(jì)算來說,也很少是因?yàn)?em>算法選擇不恰當(dāng)所致。
展開 基于pytorch的蟻群算法求解TSP(旅行商問題) ¥49.9
基于pytorch的蟻群算法求解TSP(旅行商問題),訪問一座城市并回到最初位置的最佳路徑,解決組合中的NP問題。程序已調(diào)通,替換自己的數(shù)據(jù)可以直接運(yùn)行。標(biāo)價(jià)為程序價(jià)格,不包含售后。程序保證可直接運(yùn)行。
[問題討論]FLUENT中的求解器、算法和離散方法簡介
I 求解器:FLUENT中求解器的選擇在如下圖所示界面中設(shè)置:
FLUENT中的求解器主要是按照是否聯(lián)立求解各控制方程來區(qū)分的,詳見下圖:
II 算法:算法是求解時(shí)的策略,即按照什么樣的方式和步驟進(jìn)行求解。FLUENT中算法的選擇在如下圖所示的界面中設(shè)置:
這里簡單介紹一下SIMPLE、SIMPLEC、PISO等算法的基本思想和適用范圍。SIMPLE算法:基本思想如前面講求解器的那張圖中解釋分離式求解器的例子所示的一樣,這里再貼一遍:1.假設(shè)初始壓力場分布。2.利用壓力場求解動(dòng)量方程,得到速度場。3.利用速度場求解連續(xù)性方程,使壓力場得到修正。4.根據(jù)需要,求解湍流方程及其他方程5.判斷但前計(jì)算是否收斂。若不收斂,返回第二步。簡單說來,SIMPLE算法就是分兩步走:第一步預(yù)測,第二步修正,即預(yù)測-修正。SIMPLC算法:是對SIMPLE算法的一種改進(jìn),其計(jì)算步驟與SIMPLE算法相同,只是壓力修正項(xiàng)中的一些系數(shù)不同,可以加快迭代過程的收斂。PISO算法:比SIMPLE算法增加了一個(gè)修正步,即分三步:第一步預(yù)測,第二步修正得到一個(gè)修正的場分布,第三步在第二步基礎(chǔ)上在進(jìn)行一側(cè)修正。即預(yù)測-修正-修正。PISO算法在求解瞬態(tài)問題時(shí)有明顯優(yōu)勢。對于穩(wěn)態(tài)問題可能SIMPLE或SIMPLEC更合適。如果你實(shí)在不知道該如何選擇,就保持FLUENT的默認(rèn)選項(xiàng)好了。因?yàn)槟J(rèn)選項(xiàng)可以很好解決70%以上的問題,而且對于大部分出了問題的計(jì)算來說,也很少是因?yàn)?em>算法選擇不恰當(dāng)所致。
III 離散方法:離散方法是指按照什么樣的方式將控制方程在網(wǎng)格節(jié)點(diǎn)離散,即將偏微分格式的控制方程轉(zhuǎn)化為各節(jié)點(diǎn)上的代數(shù)方程組。
展開 運(yùn)用S-ALE(SALE)算法求解帶隔板的破甲戰(zhàn)斗部侵徹靶板(三維建模軟件+Hypermesh+Lspp) ¥100
二 S-ALE算法與ALE算法相比的優(yōu)勢
(1)徹底解決流體滲漏,大幅提升物理保真度
(2) 計(jì)算效率顯著提升,耗時(shí)更短
(3)建模更清晰、易用,降低出錯(cuò)率
三 計(jì)算模型
破甲戰(zhàn)斗部裝藥直徑為φ40mm,裝藥高度60mm,藥型罩錐角為60°,壁厚為1mm,炸高為30mm,靶板直徑φ40mm,靶板厚度為50mm,隔板直徑為φ30mm,使用*ALE_STRUCTURED_MESH關(guān)鍵字生成S-ALE網(wǎng)格,使用*ALE_STRUCTURED_MESH_VOLUME_FILLING關(guān)鍵字進(jìn)行填充。
四 計(jì)算結(jié)果
炸藥起爆之后,爆轟波經(jīng)過隔板之后產(chǎn)生繞射,形成喇叭形爆轟波,然后壓垮藥型罩形成射流對靶板進(jìn)行侵徹。
五 附件
模型K文件,導(dǎo)入Hypermesh的STP文件以及一步一步進(jìn)行講解的視頻文件見付費(fèi)內(nèi)容,碼案例不易,感謝各位的支持,謝謝!
展開 一文叫你理解如何用優(yōu)化算法求解實(shí)際工程問題及optistruct優(yōu)化仿真對比 ¥49
優(yōu)化就是利用各種優(yōu)化算法求解實(shí)際問題的過程。新手在剛開始接觸優(yōu)化問題的時(shí)候往往很疑惑,不知道該怎么利用算法解決實(shí)際工程問題。今天就結(jié)合經(jīng)典的最速下降法(梯度法)來介紹如何用純算法進(jìn)行優(yōu)化,并將之與optistruct的優(yōu)化結(jié)果進(jìn)行對比。采用的例子見圖1,一個(gè)簡單的懸臂梁一段被約束,另一端受到垂向力100N,梁尺寸:長1000mm,截面尺寸40X40mm。現(xiàn)在考慮在不增加重量、甚至減重的情況下如何進(jìn)行優(yōu)化。
圖1 懸臂梁實(shí)例
1.最速下降法優(yōu)化
1.1 最速下降法介紹
最速下降法是一種經(jīng)典的優(yōu)化算法,該算法利用迭代點(diǎn)處的一階導(dǎo)數(shù)和二階偏導(dǎo)數(shù),使得每步搜索方向都沿著函數(shù)值下降最快的方向(即負(fù)梯度方向),因此最速下降法又被稱為梯度法。梯度法的優(yōu)點(diǎn)是開始時(shí)步長很大,有利于加快計(jì)算速度,迭代過程簡單易懂,方法和程序都較為簡單,容易實(shí)現(xiàn);但是梯度法每次迭代都是沿迭代點(diǎn)的負(fù)梯度方向搜索,相鄰兩代的搜索方向正交,因此目標(biāo)函數(shù)的性質(zhì)對收斂速度有極大影響,假設(shè)目標(biāo)函數(shù)的等值線與坐標(biāo)軸正交,兩步即可完成收斂,若是斜交,則搜索路徑十分曲折,且越是靠近極值點(diǎn),收斂越慢,因此各大優(yōu)化軟件往往在優(yōu)化開始時(shí)使用最速下降法,達(dá)到邊界約束時(shí),改用其它算法,如可行方向法,綜合各個(gè)算法的優(yōu)點(diǎn),加快優(yōu)化進(jìn)程。
1.2最速下降法的迭代公式
首先求解出n維目標(biāo)函數(shù)f在初始點(diǎn)X0的梯度向量:
它是該點(diǎn)函數(shù)值增加最快的方向,它的負(fù)方向則是函數(shù)值下降最快的方向。
展開 
技術(shù)分享|并行代數(shù)多重網(wǎng)格算法:如何用黑盒求解器攻克復(fù)雜工程計(jì)算的效率瓶頸?
該代數(shù)求解支持億級階矩陣的百萬核并行求解,包含Krylov子空間方法(CG、BiCGStab、GMRES...)及預(yù)條件子(Jacobi、ILU、MG...)、代數(shù)多重網(wǎng)格方法、并行直接解法等,軟件支持神威、x86、Windows平臺(tái)。
UNAP使用聚合型的AMG方法,以兩點(diǎn)聚合(pairwise-aggregation)為主,相較于經(jīng)典類型的AMG,聚合類型的AMG具有算法和實(shí)現(xiàn)簡潔的特征,在Setup、單步solve等方面具有一定速度優(yōu)勢。
(一)使用方法
1.
76基于matlab的免疫算法求解配送中心選址問題,根據(jù)配送地址確定最佳配送中心地址位置 ¥35.9
基于matlab的免疫算法求解配送中心選址問題,根據(jù)配送地址確定最佳配送中心地址位置。數(shù)據(jù)可更換自己的,程序已調(diào)通,可直接運(yùn)行。
26基于MATLAB的蟻群算法求解TSP(旅行商問題),訪問一座城市并回到最初位置的最佳路徑 ¥20.9
基于MATLAB的蟻群算法求解TSP(旅行商問題),訪問一座城市并回到最初位置的最佳路徑,解決組合中的NP問題。程序已調(diào)通,替換自己的數(shù)據(jù)可以直接運(yùn)行。標(biāo)價(jià)為程序價(jià)格,不包含售后。程序保證可直接運(yùn)行。
26基于MATLAB的蟻群算法求解TSP(旅行商問題),訪問一座城市并回到最初位置的最佳路徑 ¥20
基于MATLAB的蟻群算法求解TSP(旅行商問題),訪問一座城市并回到最初位置的最佳路徑,解決組合中的NP問題。程序已調(diào)通,替換自己的數(shù)據(jù)可以直接運(yùn)行。標(biāo)價(jià)為程序價(jià)格,不包含售后。程序保證可直接運(yùn)行。