国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于C++ 懸臂梁有限元程序設(shè)計(jì)及數(shù)值模擬結(jié)果的對(duì)比研究

2021-05-20 00:40王超
科學(xué)技術(shù)創(chuàng)新 2021年12期
關(guān)鍵詞:面向?qū)ο?/a>計(jì)算結(jié)果程序設(shè)計(jì)

王超

(重慶交通大學(xué) 土木工程學(xué)院,重慶400041)

有限元法全稱(chēng)有限單元法(Finite Element Method,F(xiàn)EM)[1]。有限元分析程序涉及力學(xué)、應(yīng)用數(shù)學(xué)和計(jì)算機(jī)科學(xué)三個(gè)不同學(xué)科的理論和方法,因而其編制工作十分復(fù)雜,且程序龐大易錯(cuò)[2]。面向?qū)ο蠓椒ㄊ且环N強(qiáng)有力的工具,采用面向?qū)ο蠓椒ㄩ_(kāi)發(fā)大型有限元分析軟件是一種非常有效的方法,與傳統(tǒng)的有限元程序相比,面向?qū)ο笥邢拊绦蚋子诰帉?xiě)、更易于維護(hù)和擴(kuò)充,程序代碼的可重用成分更大[3]。

本文將通過(guò)研究設(shè)計(jì)及編程實(shí)踐,討論應(yīng)用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法進(jìn)行有限元程序設(shè)計(jì)的基本思想及采用C++語(yǔ)言進(jìn)行有限元分析程序編制的基本方法。最后將程序計(jì)算結(jié)果與有限元軟件(Abaqus)的計(jì)算結(jié)果以及問(wèn)題的理論值進(jìn)行比較,從而驗(yàn)證程序以及問(wèn)題模型建立的正確性。

1 C++程序設(shè)計(jì)思想

在有限元分析過(guò)程中,主要應(yīng)用了結(jié)構(gòu)、載荷、節(jié)點(diǎn)、單元、自由度、矩陣、材料、高斯積分點(diǎn)、邊界條件、求解和輔助計(jì)算等物理概念。因此,根據(jù)面向?qū)ο蟪绦蛟O(shè)計(jì)方法可確定有限元分析過(guò)程的對(duì)象為:結(jié)構(gòu)對(duì)象、載荷對(duì)象、節(jié)點(diǎn)對(duì)象、單元對(duì)象、自由度對(duì)象、矩陣對(duì)象、材料對(duì)象、截面對(duì)象、邊界條件對(duì)象、求解對(duì)象和輔助計(jì)算對(duì)象等。根據(jù)確定的有限元分析過(guò)程的對(duì)象和所標(biāo)識(shí)的對(duì)象間的關(guān)聯(lián),便形成了一個(gè)由單元類(lèi)、節(jié)點(diǎn)類(lèi)、自由度類(lèi)、載荷類(lèi)、材料類(lèi)、邊界條件類(lèi)、結(jié)構(gòu)類(lèi)、求解類(lèi)以及矩陣類(lèi)和截面類(lèi)等組成的有限元分析類(lèi)庫(kù)。對(duì)整個(gè)結(jié)構(gòu)進(jìn)行處理,包括對(duì)節(jié)點(diǎn)自由度的劃分,單元?jiǎng)偠染仃嚭秃奢d向量的組裝,以及利用約束信息對(duì)總剛度矩陣進(jìn)行劃0 置1,最后利用整體結(jié)構(gòu)的平衡方程求出各個(gè)節(jié)點(diǎn)的位移解[4]。

本文的基本力學(xué)模型為端部受集中荷載的懸臂梁,在有限元計(jì)算原理的基礎(chǔ)上,利用Visual Studio 進(jìn)行程序設(shè)計(jì),以求解此離散化力學(xué)模型的各個(gè)節(jié)點(diǎn)的位移和轉(zhuǎn)角,本程序中包括節(jié)點(diǎn)類(lèi)、約束類(lèi)、力的類(lèi)、對(duì)象基類(lèi),其中截面和材料信息統(tǒng)一放到了單元類(lèi)中。因此,視單元類(lèi)為抽象基類(lèi),并添加對(duì)象基類(lèi),采用public 關(guān)鍵字以便其派生類(lèi)能夠存取有關(guān)數(shù)據(jù),采用virtual 關(guān)鍵字以實(shí)現(xiàn)多態(tài)性。這樣就構(gòu)筑了類(lèi)之間的層次和體系結(jié)構(gòu),形成了繼承關(guān)系。然后,結(jié)構(gòu)類(lèi)接受用戶(hù)輸入的節(jié)點(diǎn)位置、單元、載荷、邊界條件等信息后,讀取信息并構(gòu)造具體節(jié)點(diǎn)類(lèi)、單元類(lèi)、約束類(lèi)、荷載類(lèi)。最后由結(jié)構(gòu)類(lèi)、具體單元類(lèi)中的各個(gè)計(jì)算公式的函數(shù)體的實(shí)現(xiàn),從而完成一個(gè)結(jié)構(gòu)的有限元分析過(guò)程。

2 有限元計(jì)算原理及公式

2.1 對(duì)此懸臂梁進(jìn)行離散化如圖1 所示,得到兩個(gè)單元三個(gè)節(jié)點(diǎn)的離散結(jié)構(gòu)。

圖1 矩形懸臂鋼梁離散結(jié)構(gòu)圖

2.2 根據(jù)虛功原理,考慮到虛位移的任意性,可得到平面坐標(biāo)系下的單元平衡方程[4]:

2.3 根據(jù)單元的虛變形能,可得到單元?jiǎng)偠染仃嚍閇4]:

3 C++程序的實(shí)現(xiàn)

3.1 結(jié)構(gòu)類(lèi)的介紹

結(jié)構(gòu)類(lèi)接受用戶(hù)輸入的節(jié)點(diǎn)位置、單元、載荷、邊界條件等信息后,發(fā)送消息并構(gòu)造具體節(jié)點(diǎn)類(lèi)、單元類(lèi)、約束類(lèi)、荷載類(lèi),然后對(duì)整個(gè)結(jié)構(gòu)進(jìn)行處理,包括對(duì)節(jié)點(diǎn)自由度的初始化,單元?jiǎng)偠染仃嚭秃奢d向量的組裝,以及利用約束信息對(duì)總剛度矩陣進(jìn)行劃0 置1,最后利用整體結(jié)構(gòu)的平衡方程求出各個(gè)節(jié)點(diǎn)的位移解[4]。

表1 節(jié)點(diǎn)信息表

表2 單元信息表

表3 約束信息表

表4 力信息表

表5 程序計(jì)算節(jié)點(diǎn)位移

表6 Abaqus 計(jì)算節(jié)點(diǎn)位移

3.2 懸臂梁的離散化

在完成結(jié)構(gòu)離散化之后,建立輸入文本信息如表1、2、3、4所示。

3.3 程序計(jì)算結(jié)果

運(yùn)行該程序后,即得到該離散化力學(xué)模型各個(gè)節(jié)點(diǎn)的位移解計(jì)算結(jié)果,經(jīng)整理后制成如表5 所示。

3.4 ABAQUS 分析結(jié)果對(duì)比

經(jīng)過(guò)Abaqus 建模分析該算例,得到各個(gè)節(jié)點(diǎn)的位移解計(jì)算結(jié)果,經(jīng)整理后制成如表6 所示。

4 結(jié)論

通過(guò)對(duì)比有限元軟件與C++程序的分析計(jì)算結(jié)果,我們可以看出二者各節(jié)點(diǎn)轉(zhuǎn)角值相同,各節(jié)點(diǎn)x 與y 方向位移也幾乎接近,從而驗(yàn)證了本文有限元程序的正確性,并且通過(guò)本文更加直觀(guān)的了解了有限元法的一般思路和步驟,為進(jìn)一步開(kāi)發(fā)通用的面向?qū)ο蟮挠邢拊治鲕浖峁┝丝煽康膮⒖?。通過(guò)典型算例,更加深入的理解了計(jì)算力學(xué)程序設(shè)計(jì)的思想和方法。

猜你喜歡
面向?qū)ο?/a>計(jì)算結(jié)果程序設(shè)計(jì)
GEE平臺(tái)下利用物候特征進(jìn)行面向?qū)ο蟮乃痉N植分布提取
醫(yī)學(xué)專(zhuān)業(yè)“Python程序設(shè)計(jì)”課程教學(xué)改革總結(jié)與思考
基于Visual Studio Code的C語(yǔ)言程序設(shè)計(jì)實(shí)踐教學(xué)探索
從細(xì)節(jié)入手,談PLC程序設(shè)計(jì)技巧
面向?qū)ο蠓椒ㄔ谒罾銹LC編程中應(yīng)用分析
面向?qū)ο蟮慕M合軟件工程研究
趣味選路
扇面等式
求離散型隨機(jī)變量的分布列的幾種思維方式
高職高專(zhuān)院校C語(yǔ)言程序設(shè)計(jì)教學(xué)改革探索
即墨市| 读书| 颍上县| 资阳市| 仙游县| 玉屏| 民权县| 瑞金市| 万全县| 始兴县| 县级市| 保亭| 迁西县| 栾川县| 通山县| 长寿区| 大竹县| 沽源县| 鱼台县| 万载县| 太仆寺旗| 五寨县| 榆中县| 山东省| 南开区| 山丹县| 平远县| 和龙市| 洪洞县| 佛冈县| 棋牌| 延寿县| 岑巩县| 肥乡县| 肥西县| 资源县| 饶阳县| 郴州市| 玉山县| 盱眙县| 资溪县|