
發(fā)布
注冊
/
登錄求解算法的案例
有限元理論基礎(chǔ)及Abaqus內(nèi)部實現(xiàn)方式研究系列35: 接觸求解算法
本文我們不討論前處理的邊界非線性的處理,僅討論后臺求解器需要做的接觸求解算法,重點還是在如何將接觸后的約束關(guān)系加入到有限元基本方程中,為后面實現(xiàn)帶接觸問題的有限元求解打下基礎(chǔ)。有接觸不一定就是邊界非線性,譬如兩個物體用Tie連接在一起,材料依然是線彈性的,應(yīng)變也沒超過5%,那么我們可以認(rèn)為依然是線性問題,也就不存在邊界非線性了。我們認(rèn)為邊界非線性只是接觸的一種,邊界非線性屬于接觸的一種特殊情況,我們討論的接觸求解算法同樣適用于其它接觸問題。
1.1 整體求解算法
Abaqus Standard的接觸求解的整體流程如下,外層按增量法執(zhí)行,內(nèi)層按迭代法執(zhí)行,其實依然是牛頓迭代的范疇,只不過第二步:Form and solve system of equations與只有幾何非線性的方程不同,此時需要加入接觸的方程的形成和求解。
1.2 包括接觸的有限元方程的組成和求解
無論是否存在接觸,有限元方程的建立都是實際問題的等效。
(1) 在沒有接觸力時
如下圖情況,物體在體外力和面外力作用下變化。
有限元方程按照虛功原理求解,在物理上可解釋能量守恒原理,即在某一個時刻點,假定在外力作用下有個虛擬的位移,那么外力在虛擬位移下做的虛功=內(nèi)部應(yīng)變能的變化相同。
(2) 當(dāng)存在接觸時
當(dāng)存在接觸時,體積域V和表面積的域包括多個空間獨立的物體。譬如下圖,兩個體的外表面S1,S2發(fā)生接觸。
1.2.1 正向接觸
接觸分法向壓力和切向摩擦力,在Abaqus中,如果是法向接觸力,在設(shè)置Constraint enforce method時就是選擇接觸算法
可以選擇Direct、Penalty、Augmented Lagrange三種。
展開 幾種常用的矩陣迭代求解算法
,這里還介紹一種處理CFD這種會遇到的三對角或者五對角矩陣的迭代求解算法,三對角算法,也算迭代算法只不過這種矩陣剛好容易出現(xiàn)在網(wǎng)格離散之后的方程組里面。
FLUENT中的求解器、算法和離散方法
FLUENT中的求解器、算法和離散方法作為一個非科班出身的CFD工程師,一開始常常被CFD軟件里各種概念搞的暈頭轉(zhuǎn)向。最近終于靜下心來看了看CFD理論的書,理清了一些概念。就此寫一遍博文,順便整理一下所學(xué)內(nèi)容。I 求解器:FLUENT中求解器的選擇在如下圖所示界面中設(shè)置:
FLUENT中的求解器主要是按照是否聯(lián)立求解各控制方程來區(qū)分的,詳見下圖:
II 算法:算法是求解時的策略,即按照什么樣的方式和步驟進(jìn)行求解。FLUENT中算法的選擇在如下圖所示的界面中設(shè)置:
這里簡單介紹一下SIMPLE、SIMPLEC、PISO等算法的基本思想和適用范圍。SIMPLE算法:基本思想如前面講求解器的那張圖中解釋分離式求解器的例子所示的一樣,這里再貼一遍:1.假設(shè)初始壓力場分布。2.利用壓力場求解動量方程,得到速度場。3.利用速度場求解連續(xù)性方程,使壓力場得到修正。4.根據(jù)需要,求解湍流方程及其他方程5.判斷但前計算是否收斂。若不收斂,返回第二步。簡單說來,SIMPLE算法就是分兩步走:第一步預(yù)測,第二步修正,即預(yù)測-修正。SIMPLC算法:是對SIMPLE算法的一種改進(jìn),其計算步驟與SIMPLE算法相同,只是壓力修正項中的一些系數(shù)不同,可以加快迭代過程的收斂。PISO算法:比SIMPLE算法增加了一個修正步,即分三步:第一步預(yù)測,第二步修正得到一個修正的場分布,第三步在第二步基礎(chǔ)上在進(jìn)行一側(cè)修正。即預(yù)測-修正-修正。PISO算法在求解瞬態(tài)問題時有明顯優(yōu)勢。對于穩(wěn)態(tài)問題可能SIMPLE或SIMPLEC更合適。如果你實在不知道該如何選擇,就保持FLUENT的默認(rèn)選項好了。因為默認(rèn)選項可以很好解決70%以上的問題,而且對于大部分出了問題的計算來說,也很少是因為算法選擇不恰當(dāng)所致。
展開 [問題討論]FLUENT中的求解器、算法和離散方法簡介
I 求解器:FLUENT中求解器的選擇在如下圖所示界面中設(shè)置:
FLUENT中的求解器主要是按照是否聯(lián)立求解各控制方程來區(qū)分的,詳見下圖:
II 算法:算法是求解時的策略,即按照什么樣的方式和步驟進(jìn)行求解。FLUENT中算法的選擇在如下圖所示的界面中設(shè)置:
這里簡單介紹一下SIMPLE、SIMPLEC、PISO等算法的基本思想和適用范圍。SIMPLE算法:基本思想如前面講求解器的那張圖中解釋分離式求解器的例子所示的一樣,這里再貼一遍:1.假設(shè)初始壓力場分布。2.利用壓力場求解動量方程,得到速度場。3.利用速度場求解連續(xù)性方程,使壓力場得到修正。4.根據(jù)需要,求解湍流方程及其他方程5.判斷但前計算是否收斂。若不收斂,返回第二步。簡單說來,SIMPLE算法就是分兩步走:第一步預(yù)測,第二步修正,即預(yù)測-修正。SIMPLC算法:是對SIMPLE算法的一種改進(jìn),其計算步驟與SIMPLE算法相同,只是壓力修正項中的一些系數(shù)不同,可以加快迭代過程的收斂。PISO算法:比SIMPLE算法增加了一個修正步,即分三步:第一步預(yù)測,第二步修正得到一個修正的場分布,第三步在第二步基礎(chǔ)上在進(jìn)行一側(cè)修正。即預(yù)測-修正-修正。PISO算法在求解瞬態(tài)問題時有明顯優(yōu)勢。對于穩(wěn)態(tài)問題可能SIMPLE或SIMPLEC更合適。如果你實在不知道該如何選擇,就保持FLUENT的默認(rèn)選項好了。因為默認(rèn)選項可以很好解決70%以上的問題,而且對于大部分出了問題的計算來說,也很少是因為算法選擇不恰當(dāng)所致。
III 離散方法:離散方法是指按照什么樣的方式將控制方程在網(wǎng)格節(jié)點離散,即將偏微分格式的控制方程轉(zhuǎn)化為各節(jié)點上的代數(shù)方程組。
展開 
基于pytorch的蟻群算法求解TSP(旅行商問題) ¥49.9
基于pytorch的蟻群算法求解TSP(旅行商問題),訪問一座城市并回到最初位置的最佳路徑,解決組合中的NP問題。程序已調(diào)通,替換自己的數(shù)據(jù)可以直接運行。標(biāo)價為程序價格,不包含售后。程序保證可直接運行。
一文叫你理解如何用優(yōu)化算法求解實際工程問題及optistruct優(yōu)化仿真對比 ¥49
優(yōu)化就是利用各種優(yōu)化算法求解實際問題的過程。新手在剛開始接觸優(yōu)化問題的時候往往很疑惑,不知道該怎么利用算法解決實際工程問題。今天就結(jié)合經(jīng)典的最速下降法(梯度法)來介紹如何用純算法進(jìn)行優(yōu)化,并將之與optistruct的優(yōu)化結(jié)果進(jìn)行對比。采用的例子見圖1,一個簡單的懸臂梁一段被約束,另一端受到垂向力100N,梁尺寸:長1000mm,截面尺寸40X40mm。現(xiàn)在考慮在不增加重量、甚至減重的情況下如何進(jìn)行優(yōu)化。
圖1 懸臂梁實例
1.最速下降法優(yōu)化
1.1 最速下降法介紹
最速下降法是一種經(jīng)典的優(yōu)化算法,該算法利用迭代點處的一階導(dǎo)數(shù)和二階偏導(dǎo)數(shù),使得每步搜索方向都沿著函數(shù)值下降最快的方向(即負(fù)梯度方向),因此最速下降法又被稱為梯度法。梯度法的優(yōu)點是開始時步長很大,有利于加快計算速度,迭代過程簡單易懂,方法和程序都較為簡單,容易實現(xiàn);但是梯度法每次迭代都是沿迭代點的負(fù)梯度方向搜索,相鄰兩代的搜索方向正交,因此目標(biāo)函數(shù)的性質(zhì)對收斂速度有極大影響,假設(shè)目標(biāo)函數(shù)的等值線與坐標(biāo)軸正交,兩步即可完成收斂,若是斜交,則搜索路徑十分曲折,且越是靠近極值點,收斂越慢,因此各大優(yōu)化軟件往往在優(yōu)化開始時使用最速下降法,達(dá)到邊界約束時,改用其它算法,如可行方向法,綜合各個算法的優(yōu)點,加快優(yōu)化進(jìn)程。
1.2最速下降法的迭代公式
首先求解出n維目標(biāo)函數(shù)f在初始點X0的梯度向量:
它是該點函數(shù)值增加最快的方向,它的負(fù)方向則是函數(shù)值下降最快的方向。
展開 76基于matlab的免疫算法求解配送中心選址問題,根據(jù)配送地址確定最佳配送中心地址位置 ¥35.9
基于matlab的免疫算法求解配送中心選址問題,根據(jù)配送地址確定最佳配送中心地址位置。數(shù)據(jù)可更換自己的,程序已調(diào)通,可直接運行。
26基于MATLAB的蟻群算法求解TSP(旅行商問題),訪問一座城市并回到最初位置的最佳路徑 ¥20.9
基于MATLAB的蟻群算法求解TSP(旅行商問題),訪問一座城市并回到最初位置的最佳路徑,解決組合中的NP問題。程序已調(diào)通,替換自己的數(shù)據(jù)可以直接運行。標(biāo)價為程序價格,不包含售后。程序保證可直接運行。
26基于MATLAB的蟻群算法求解TSP(旅行商問題),訪問一座城市并回到最初位置的最佳路徑 ¥20
基于MATLAB的蟻群算法求解TSP(旅行商問題),訪問一座城市并回到最初位置的最佳路徑,解決組合中的NP問題。程序已調(diào)通,替換自己的數(shù)據(jù)可以直接運行。標(biāo)價為程序價格,不包含售后。程序保證可直接運行。
【JY】淺析各動力求解算法及其算法數(shù)值阻尼(人工阻尼)
【中心差分法】由于中心差分法所需要的時間步長比較短,實質(zhì)上會讓該算法的譜半徑的模長等于1,也就是該算法并不能調(diào)整數(shù)值阻尼。
硬實力!神工坊團(tuán)隊在首屆開放原子開源大賽中斬獲一二等獎
日前,首屆開放原子開源大賽蘇州站在蘇州工業(yè)園區(qū)順利開賽,神工坊團(tuán)隊在“大規(guī)模非對稱不定帶寬線性代數(shù)方程組求解算法賽”中表現(xiàn)非凡,斬獲一二等獎!
“大規(guī)模非對稱不定帶寬線性代數(shù)方程組求解算法賽”是“開放原子開源大賽”工業(yè)軟件領(lǐng)域的重要賽題之一,由中國船舶科學(xué)研究中心組織協(xié)辦。本賽題致力于實現(xiàn)適用于船舶流體CFD軟件的底層迭代算法,以船舶流體力學(xué)CFD軟件NaViiX軟件針對某一船模生成的線性代數(shù)方程組系數(shù)矩陣及右端項作為本次比賽的輸入。“大規(guī)模非對稱不定帶寬線性代數(shù)方程組求解算法賽”吸引了來自清華大學(xué)、中國科學(xué)院計算機網(wǎng)絡(luò)信息中心、南京大學(xué)等高校和科研院所共47支隊伍參賽。
賽事歷時八個月 ,分為初賽及決賽兩個階段 。初賽階段參賽選手需提供兩種網(wǎng)格規(guī)模3個速度分量(u、v、w)的共計6個方程組矩陣及右端項,決賽階段需提供兩種網(wǎng)格7種不同物理量(湍流相關(guān)量、自由面體積分?jǐn)?shù)、速度分量、壓強等)的共計14個方程組矩陣及右端項。
經(jīng)過深入研究與討論,神工坊團(tuán)隊發(fā)揮自身優(yōu)勢,根據(jù)線性代數(shù)方程組系數(shù)矩陣的特點設(shè)計精準(zhǔn)、高效、穩(wěn)定的求解算法,攻克了大規(guī)模計算方面的技術(shù)難題。最終,神工坊首席專家薛巍帶領(lǐng)的團(tuán)隊“快速解法”獲得一等獎 、“神工坊SIMFORGE”獲得二等獎 。
展開 
【數(shù)值算法】系數(shù)矩陣非對稱時,線性方程組如何求解?-穩(wěn)定雙共軛梯度法(Bicgstab)求解線性方程組
在前面的文章和中表明共軛梯度法是求解對稱正定線性方程組的一種有效方法,當(dāng)針對不同的系數(shù)矩陣采用不同的預(yù)處理方式時,其可以以較少的迭代次數(shù)獲得較高精度的解。然而,該方法的一個缺點就是其只能適用于對稱正定系數(shù)矩陣,當(dāng)系數(shù)矩陣不再是對稱正定時,此方法可能失效。
以下舉例:
上面矩陣A為非對稱矩陣,采用共軛梯度法求解過程如下:
該方程組采用共軛梯度法迭代4862次依然未收斂。因此,對于該非對稱方程,可以認(rèn)為,共軛梯度法幾乎是失效的。
在實際工程中,有限元方法形成的剛度系數(shù)以對稱正定居多,但是實際上也存在非對稱的可能,例如,當(dāng)材料本構(gòu)采用摩爾-庫倫本構(gòu)時,其形成的剛度矩陣就有可能會是非對稱的,此時如果是使用商業(yè)軟件,應(yīng)當(dāng)在軟件中選擇非對稱求解器。如果是自主編程且采用迭代法求解線性方程組,則需要找到一種適用于非對稱矩陣的求解方法。
常見的非對稱系數(shù)矩陣求解方法主要有:廣義最小殘差法(GMRES),雙共軛梯度法(Bicg)穩(wěn)定雙共軛梯度法(BiCGStab),穩(wěn)定混合雙共軛梯度法(BiCGStab(l)),這些方法相對于常規(guī)的共軛梯度法在推導(dǎo)上均增加了一些難度,實際推導(dǎo)往往較為復(fù)雜。本文不展開推導(dǎo),僅對穩(wěn)定雙共軛梯度法(BiCGStab)的偽代碼作簡要粘貼。
展開 ANSYS與ABAQUS比較之實例3---矩形截面簡支梁的彈塑性分析--第2篇
(8)保持默認(rèn)的求解算法設(shè)置,進(jìn)行求解。
這時,我們發(fā)現(xiàn)求解并不收斂,查看求解信息,我們可以看到,由于47號節(jié)點在UY的位移值為4033815.42m,該值大于軟件設(shè)置的最大位移上限值,提示我們檢查約束設(shè)置,可能是產(chǎn)生了剛性位移。然而對于這個問題來說,并不是約束不足而產(chǎn)生的剛性位移,而最大可能就是材料非線性的求解算法問題,但是在ANSYS中修改其他算法,皆無法求解收斂。下面將修改壓力值看看是否收斂。
(9)減少均布壓力值為6MPa,再次進(jìn)行求解,這時我們發(fā)現(xiàn),這次是可以求解收斂。
查看等效應(yīng)力,最大值為410.47MPa。
查看等效應(yīng)變。
2.結(jié)論
(1)在理想的彈塑性材料模型下,當(dāng)施加的載荷過大時,ANSYS求解很難收斂,而ABAQUS求解容易收斂。
(2)在查看米塞斯應(yīng)力時,ANSYS中最大的米塞斯應(yīng)力值大于設(shè)置的屈服強度值,而在ABAQUS中最大的米塞斯應(yīng)力值剛好等于設(shè)置屈服強度值,這說明二者在危險點所采用應(yīng)力準(zhǔn)則可能是不一樣的,就是說,ANSYS是否是用危險點的最大正應(yīng)力在與屈服應(yīng)力比較,而ABAQUS則是用危險點的米塞斯應(yīng)力與屈服應(yīng)力在比較。
從這個實例看出,ANSYS在材料非線性求解算法方面確實沒有ABAQUS算法好,當(dāng)然,有可能是本人(宋老師學(xué)生)水平有限,并沒有在ANSYS中找到合適的方法來求解收斂,這里歡迎各位CAE朋友多多指教,謝謝!
來源:宋博士的博客,版權(quán)歸作者所有。
展開 【數(shù)值算法】共軛梯度法求解線性方程組
在有限元程序開發(fā)中,線性方程組的求解是一個重要組成部分。在百萬自由度大規(guī)模計算的情況下,線性方程組的高效快速求解對整個求解器的計算效率有著至關(guān)重要的作用。無論實際上計算的是線性問題,還是各種非線性問題,最終都需要落實到線性方程組的求解上去。非線性方程組的求解實際上往往就是多次求解線性方程組。
目前,線性方程組的求解主要分為直接法和迭代法兩種。
在之前的文章[數(shù)值算法與編程]高斯消去法中,我們討論的高斯消去法就是直接法的一種。而本文即將討論的共軛梯度法,是迭代法的一種,并且,其屬于目前求解對稱線性方程組的主要迭代方法。各大商業(yè)有限元軟件,在面臨對稱線性方程組的求解時幾乎都會選用各種變化形式的共軛梯度法進(jìn)行求解。
共軛梯度法的具體原理和算法如下:
假定要求解的對稱線性方程組是:
其中,A是對稱正定的系數(shù)矩陣。
則實際上待求的解也是方程
取得最小值的時候的解。
求該方程的最小值的常見方法是最速下降法,該方法算法偽代碼如下:
該方法實際上是沿著負(fù)梯度方向進(jìn)行搜索,直至殘量接近0,較為簡便,但是在條件數(shù)很大時,該方法收斂很慢。
展開 電氣原理快速設(shè)計系統(tǒng)ERDS
3
鏈路仿真
鏈路仿真是系統(tǒng)的核心功能,基于集成特定的求解算法完成設(shè)計鏈路的指標(biāo)評估和可視化展示。鏈路仿真可通過獨立線程應(yīng)用模式,實時分析獲取模型的電特性屬性,根據(jù)特定指標(biāo)參數(shù)的工程求解算法,實時求解并反饋性能結(jié)果,提升設(shè)計迭代效率。同時,為保證設(shè)計質(zhì)量和性能評估準(zhǔn)確性,軟件后臺集成有多種求解引擎,供用戶選擇性調(diào)用,提供更高精度、更多維度的性能分析結(jié)果。
4
標(biāo)準(zhǔn)化輸出
標(biāo)準(zhǔn)化輸出功能作為設(shè)計建模的擴(kuò)展功能,主要用于輸出其他EDA設(shè)計工具或系統(tǒng)仿真工具所能識別的原理模型,實現(xiàn)多工具共模型的協(xié)同應(yīng)用,集合各大設(shè)計工具的專業(yè)優(yōu)勢,可適應(yīng)不同場景的電路級/系統(tǒng)級設(shè)計仿真應(yīng)用。
02
項目案例:
射頻前端二級變頻鏈路性能指標(biāo)
快速評估軟件
通過對電氣原理快速設(shè)計軟件進(jìn)行模型及參數(shù)定制化實施,解決了用戶在射頻鏈路方案評估階段的仿真難、速度慢的痛點。設(shè)計師無需較高的專業(yè)設(shè)計分析水平,無需具備EDA專業(yè)軟件應(yīng)用技術(shù)能力,只需要基于軟件封裝的定制化模板,進(jìn)行器件選型、參數(shù)控制,即可實時獲取設(shè)計結(jié)果輸出,完成性能指標(biāo)評估及設(shè)計優(yōu)化。
展開