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

?

基于邊界元法的CAE軟件開發(fā)

2025-02-20 00:00:00任永真劉思凡李子昊
科技創(chuàng)新與應用 2025年5期
關鍵詞:軟件開發(fā)可視化

摘" 要:該文基于Python和Qt框架研發(fā)一款具有前后處理模塊的二維邊界元法CAE軟件,為用戶打造一個直觀的可視化操作界面,通過該界面可實現(xiàn)幾何模型構建、單元結點信息獲取、邊界條件加載和材料屬性施加等前處理功能,以及顯示位移、應力云圖的后處理功能,可直觀展現(xiàn)邊界元法計算結構獲得的物理參量。最后以含切口薄板結構受力分析為例,利用所開發(fā)的軟件進行計算,展現(xiàn)所開發(fā)軟件的功效。

關鍵詞:邊界元法;可視化;軟件開發(fā);Python;CAE軟件

中圖分類號:TP391.7" " " 文獻標志碼:A" " " " " 文章編號:2095-2945(2025)05-0054-04

Abstract: In this paper, a two-dimensional boundary element method CAE software with pre-and post-processing modules is developed based on Python and Qt framework, which creates an intuitive visual operation interface for users. Through this interface, pre-processing functions such as geometric model construction, element node information acquisition, and boundary conditions can be realized. Pre-processing functions such as loading and material property application, as well as post-processing functions to display displacement and stress nephograms, can intuitively display the physical parameters obtained by the boundary element method calculation structure. Finally, this paper takes the stress analysis of thin plate structures with notches as an example, and uses the developed software to calculate, which demonstrates the effectiveness of the developed software.

Keywords: boundary element method; visualization; software development; Python; CAE software

相對有限元法商業(yè)化程度高、軟件種類繁多而言,邊界元法的通用軟件較少[1]?,F(xiàn)有較多的是邊界元法應用程序,數據要靠手動輸入或文件導入,計算完成之后,結果也是以文件的形式給出,需要用戶在文件中尋找需要的信息。邊界元法程序計算得到的結果并不能直觀展示結構相應的物理參量,僅有的數值結果對于未經過培訓學習的工程技術人員和研究人員來說難以閱讀。因此邊界元法CAE軟件的開發(fā)還處于發(fā)展的起步階段。

高宇等[2]基于UG軟件開發(fā)了針對二維邊界元法的前處理模塊。邊煜凱[3]基于Qt開發(fā)了采用間接邊界元法的地震模擬分析軟件。衛(wèi)軍朝等[4]基于MATLAB環(huán)境介紹了一種CAE軟件的前置處理、解析計算及后置處理程序實現(xiàn)的方法和編程技巧。秦曉晨等[5]基于Python和Abaqus研發(fā)了一款應用于無加強U形波紋管的力學性能分析軟件。這些軟件多數是為了解決某一特定問題而編制,缺乏通用性。

本文基于Python開發(fā)了一款二維邊界元力學分析軟件,實現(xiàn)在UI界面輸入結構計算信息、展示力學分析結果。軟件開發(fā)完后使用PyInstaller庫將其打包為Python應用程序[6],方便用戶通過.exe文件運行,界面友好,操作方便。

1" 軟件概述

1.1" 軟件開發(fā)環(huán)境及應用工具

本軟件基于二維常規(guī)邊界元法,在Windows10系統(tǒng)下PyCharm環(huán)境中開發(fā),針對結構的彈性力學問題進行幾何建模、賦予材料屬性、施加邊界條件,再進行邊界元法計算,并將計算得到的位移和應力以云圖的形式展示。

在界面開發(fā)方面,采用Python語言,使用PyQt工具包創(chuàng)建桌面GUI應用程序,構建了前處理界面和后處理界面。前處理界面借助OpenGL技術,能夠流暢地渲染2D圖形,為用戶提供清晰的視覺展示。后處理界面則充分利用numpy庫進行高效的矩陣運算,確保數據處理的準確性和速度。此外軟件還集成matplotlib庫,并采用scipy庫中的griddata函數進行插值處理,用于繪制位移、應力云圖。

軟件的核心邊界元法使用Fortran語言編寫,使用Python的subprocess模塊以及os庫對數據和算法程序進行文件操作。

1.2" 軟件設計流程圖

2" 軟件設計

2.1" 軟件界面設計

軟件的界面先由QTDesigner工具進行布局設置,窗體、按鈕、文字框等界面元素的大小、位置設置均在工具中完成,然后通過PyUIC將QTDesigner生成的UI文件轉成Python源碼,之后將Python源碼添加在main文件中進行編輯,用以修改參數以及添加交互功能。

在main文件中創(chuàng)建Ui_MainWindow類,該類繼承自QMainWindow,負責構建主窗體,設計窗體布局及按鈕等元素,同時可以添加如setText方法(設置文本信息)、clicked方法(點擊交互)等參數和交互功能。

在窗體界面中使用OpenGL Widget控件來顯示繪圖過程以及后處理云圖。首先在openglwidgettest文件中創(chuàng)建MyGLWidget1類,該類繼承自QOpenGLWidget,以利用OpenGL功能進行圖形渲染。之后在Ui_MainWindow類中,實例化MyGLWidget1類的對象,以實現(xiàn)其圖形渲染函數的調用。

2.2" 前處理模塊設計

2.2.1" 幾何模型構建

該模塊用于生成結構的幾何模型。首先在Ui_MainWindow類中的lineEdit控件中獲取一條邊的參數,將這些參數信息保存至datasave.Py文件中。通過MyGLWidget1類的對象,調取該類中的繪圖函數drawfunc,函數讀取datasave文件以渲染二維圖形,并在主窗體的右側區(qū)域進行顯示。

用戶可通過左側文本框輸入結點編號,以逆時針方向繪制二維任意多邊形,系統(tǒng)會根據用戶輸入的2個坐標來定義一條邊,并將這條邊均勻劃分為N個單元,同時生成N+1個邊界結點。生成的邊界結點顯示如圖3所示。

2.2.2" 單元結點信息構建

該模塊針對前一個模塊輸入的幾何參數信息自動生成邊界結點信息和單元信息。Ui_MainWindow類中的pushButton控件被點擊后會調用datasave文件中的結點和單元信息保存函數,用以按照特定數據形式生成和保存單元結點信息。此外,lineEdit控件會獲取用戶輸入的內結點坐標和編號信息,并將其保存至datasave文件中,進行對內結點的繪制和存儲。

邊界結點信息和單元信息程序會按照邊界元法要求的數據格式自動生成并保存。邊界結點信息獲取如圖4所示。內點信息則需要用戶根據需要手動輸入并保存。

2.2.3" 邊界條件信息構建

該模塊用以獲取結構的位移和應力邊界條件。本軟件使用鼠標來選擇單元以施加邊界條件,在鼠標移動過程中,通過Ui_MainWindow類中mouseMoveEvent方法(鼠標移動事件)捕獲坐標信息。當mousePressEvent方法(鼠標按下事件)被觸發(fā)時,系統(tǒng)會獲取當前的坐標信息,并將其與datasave文件中的單元結點坐標進行對比,判定該單元是否被鼠標點擊,并對已點擊單元及其結點進行加粗顯示。當mouseReleaseEvent方法(鼠標釋放事件)發(fā)生,即鼠標抬起時,系統(tǒng)會進行加粗單元和結點的繪制,此時點擊保存按鈕即pushButton控件,相應函數會記錄這些加粗結點的坐標和編號等信息。此外,lineEdit控件會讀取用戶輸入的數據信息,并與鼠標選定的結點信息相結合,從而構成結構的完整邊界條件。位移邊界條件的施加如圖5所示。

2.2.4" 材料參數信息設置

該模塊用來獲取結構的基本參數信息,例如結構對稱性、彈性模量、泊松比等。選擇類數據在Ui_MainWindow類中的comboBox控件獲取,輸入類數據在lineEdit控件中獲取。點擊保存參數的pushButton控件會調用數據保存函數對用戶在前處理模塊輸入的數據信息進行保存,點擊輸出信息文檔按鈕則會調用datasave文件中的write函數,通過Python的文件操作根據相應格式生成.dat文件。材料參數信息設置如圖6所示。

2.3" 邊界元法計算模塊設計

邊界元法程序使用Fortran語言編寫完成,主要分為3個步驟:

1)根據格式要求將幾何模型前處理信息輸入到.dat文件中。

2)運行邊界元Fortran算法程序,經過編譯構建.exe文件,執(zhí)行.exe文件,生成結果.dat文件。

3)根據需求從結果.dat文件中提取數據。

本軟件針對邊界元法程序的計算執(zhí)行特點,先將用戶在前處理模塊的數據輸入板塊輸入的信息進行保存,并按照相應格式生成.dat文件。通過Python的subprocess模塊對邊界元法程序生成的.exe文件進行調用執(zhí)行,此時會生成結果.dat文件。

用戶可以查看當前生成的結果.dat文件,對感興趣的結果進行查閱,也可以在后處理模塊進行交互操作,軟件會在全局生成多個內點,之后調用.exe文件重新計算內點位移和應力并讀取結果.dat文件,將結果經過插值計算,呈現(xiàn)位移、應力云圖。

2.4" 后處理模塊設計

軟件的后處理部分主要以云圖的形式展示邊界元法計算后各邊界點和內點的位移或應力大小。

云圖繪制部分使用numpy庫,在10×10的矩形區(qū)域內生成500×500個點,并將這些點的X坐標和Y坐標通過numpy.meshgrid函數分別存儲起來。系統(tǒng)會對全局生成的所有點進行篩選,每隔20個點進行一次判斷。這里采用射線法[7]來確定點是否位于多邊形內部。如果點位于多邊形內,系統(tǒng)會記錄該點的編號和坐標信息,這些信息將用于后續(xù)的結點計算。借助scipy庫的griddata函數,能夠對結構其余邊界結點和生成的內點(這些點都具有位移和應力數據)進行插值處理,從而生成一個包含多邊形內部所有點數據的矩陣。最后,根據該矩陣和邊界元法計算結果,利用matplotlib在QOpenGLWidget中繪制出相應的云圖。

3" 應用舉例

使用本軟件對如圖7所示的含切口薄板結構進行力學分析。該模型下側邊界均為固定鉸支座約束,上側邊界為?滓=2.0 MPa。材料的彈性模量E=3.9 GPa、泊松比v=0.25。

4" 結束語

本文介紹了基于Python和Qt開發(fā)的二維邊界元法CAE軟件。該軟件的前處理模塊允許用戶通過直觀的可視化界面構建幾何模型、獲取單元結點信息、施加邊界條件和設置材料參數信息,并導出數據供邊界元法程序計算使用,經邊界元法計算后,結果可在后處理界面中以位移和應力云圖進行全局可視化展示,也可在.dat文件中對感興趣的數據進行讀取。文章還詳細描述了如何構建軟件界面和構建前后處理模塊。軟件界面友好,操作便捷,為用戶提供了一種直觀、高效的力學分析方法。

參考文獻:

[1] 姚振漢,段小華,尹欣,等.邊界元法軟件及其在工程與教學中的應用[J].重慶建筑大學學報,2000(6):84-87.

[2] 高宇,曹悅,劉彪,等.基于邊界元法的CAE軟件開發(fā)及應用[J].武漢大學學報(工學版),2023,56(9):1066-1072.

[3] 邊煜凱.三維復雜場地地震動放大效應并行邊界元模擬及軟件開發(fā)[D].天津:天津城建大學,2022.

[4] 衛(wèi)軍朝,張廣鵬,方英武,等.基于Matlab的CAE軟件實現(xiàn)方法[J].制造業(yè)自動化,2004(6):51-53.

[5] 秦曉晨,劉靜,何進,等.基于Python和Abaqus的波紋管力學性能分析軟件開發(fā)[J].重型機械,2023(5):77-84.

[6] 王瑞文,王圣輝,邊潤根,等.Python程序打包成exe可執(zhí)行文件的方法探究[J].無線互聯(lián)科技,2017(12):52-53.

[7] 章磊,何芬,李鴻赟.一種基于奇異射線法檢測點在多邊形內的方法[J].計算機應用研究,2020,37(S2):133-135.

猜你喜歡
軟件開發(fā)可視化
基于CiteSpace的足三里穴研究可視化分析
基于Power BI的油田注水運行動態(tài)分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
基于CGAL和OpenGL的海底地形三維可視化
“融評”:黨媒評論的可視化創(chuàng)新
傳媒評論(2019年4期)2019-07-13 05:49:14
信息安全環(huán)境下的計算機軟件開發(fā)研究
建模技術在軟件開發(fā)中的應用
核電廠定期試驗管理軟件開發(fā)
科技視界(2016年21期)2016-10-17 20:50:03
FPGA軟件開發(fā)過程中編碼規(guī)范的作用
科技視界(2016年20期)2016-09-29 13:35:10
隆安县| 邢台市| 鄂州市| 龙川县| 五河县| 图片| 江门市| 富宁县| 贵溪市| 基隆市| 娄底市| 宝坻区| 九龙县| 鄯善县| 抚顺市| 杭州市| 涡阳县| 河曲县| 长子县| 白银市| 南京市| 和林格尔县| 山西省| 大兴区| 镇远县| 沐川县| 扶绥县| 河津市| 湟源县| 龙门县| 定兴县| 东兰县| 临西县| 东至县| 灵寿县| 奉化市| 萍乡市| 青神县| 沐川县| 广州市| 南靖县|