UEL子程序開發(fā)——梁單元
微信公眾號:[易木木響叮當(dāng)]
關(guān)注可了解更多的[有限元數(shù)值仿真技巧]。問題或建議,請公眾號留言;
如果你覺得木木同學(xué)對你有幫助,歡迎贊賞。
手撕梁單元UEL子程序
今天木木給大家?guī)淼氖?strong>梁單元的UEL子程序,作為桿系單元重要的組成成員,該部分是得好好講講了,而且要全面的講,盡木木的知識能力所及講的透徹,讓剛?cè)胧諹EL的小白們看的“起勁”!參考文檔和源文件可在公眾號后臺回復(fù):梁單元UEL即可。
今天分享的內(nèi)容主要有:梁單元介紹、等效節(jié)點(diǎn)荷載處理、狀態(tài)變量的自定義輸出、理論解對比等等,精彩超多,請進(jìn)一步往下翻閱
模型講解

梁單元的講解在前幾期的有限元基礎(chǔ)編程的推文中有詳細(xì)講述,感興趣的小伙伴可以跳轉(zhuǎn)相關(guān)頁面查閱。
案例簡介
我們今天講的案例如圖二所示,梁長,分布荷載為-10,將左端點(diǎn)的U1、U2、UR3自由度束縛,右端點(diǎn)的U2自由度束縛。

理論解
這里我們簡單講述一下變形協(xié)調(diào)條件,圖3 所示(圖2分解)為一承受均布荷載的懸臂梁,在B端點(diǎn)產(chǎn)生的位移在數(shù)值上可等價(jià)于由支反力產(chǎn)生的位移
,有:
由以上公式可得到右端點(diǎn)節(jié)點(diǎn)力、彎矩以及左端點(diǎn)節(jié)點(diǎn)力。

子程序講解
編制矩陣操作函數(shù)
為了程序的易讀性,我們可以將經(jīng)常使用的的計(jì)算部分編寫成一個(gè)子程序,使用時(shí)直接call
一下即可,比如在UMAT
中,我們會常常用到Mises應(yīng)力公式,所以我們可以將Mises的求解編寫為一個(gè)子程序,在UMAT中調(diào)用即可,大大減少了代碼量,更能提升易讀性。
本程序中,我編寫了矩陣置零函數(shù),用于數(shù)組的初始化,大家在自己的程序中編制矩陣相乘函數(shù)和矩陣求逆函數(shù),大大提升編寫代碼的效率。
等效荷載處理
在本次案例中,我們注意到,梁體受到向下的均布荷載,以往的UEL案例分析中,我們沒考慮過這種面力、體力的作用,可以參考一下勢能泛函:
具體含義可見附帶文檔。本案例的面力處理方式:將其轉(zhuǎn)化為單元節(jié)點(diǎn)荷載,轉(zhuǎn)化的原理可參考附帶文檔,也可查閱有限元相關(guān)教材,推薦曾攀老師的《有限元基礎(chǔ)教程》。
狀態(tài)變量輸出
為了與理論解析解做對比,可以以狀態(tài)變量的形式將右端點(diǎn)的節(jié)點(diǎn)力和彎矩以及左端點(diǎn)的節(jié)點(diǎn)力輸出到指定位置,這里輸出到指定文件中。涉及到Fortran語言中文件的使用,編制了計(jì)算節(jié)點(diǎn)力的子程序,如下所示。
狀態(tài)變量輸出
即可在'D:\TEMP'位置處創(chuàng)建STRESS.DAT文件,按照以上語句進(jìn)行寫出。
理論解析解對比


與解析解一致。最后來看一下位移云圖吧!

今天的分享就止于此了,下期我們再見啦~~喜歡本次案例的小伙伴可以點(diǎn)點(diǎn)小贊和在看哦,歡迎轉(zhuǎn)發(fā)至朋友圈,讓更多的對二次開發(fā)感興趣的伙伴看到。