QT实现有限元软件操作界面

本系列文章致力于实现"手搓有限元,干翻Ansys的目标",基本框架为前端显示使用QT实现交互,后端计算采用Visual Studio C++。

本篇将二维矩形截面梁单元(Rect_Beam2D2Node)组成的钢结构桥作为案例来展示软件功能。

也可以参考此视频查看软件功能(可点击此处跳转):

手搓有限元 干翻Ansys 梁单元创建

1、软件界面总览

软件总体可分为TreeView树状功能区、StackedWidget展示区、MenuBar菜单栏区三个板块,随着鼠标点击TreeView上的不同功能节点、StackedWidget会切换到不同的widget展示、这样简单的设计可以展示更丰富的信息。

2、前处理

在前处理中,完成有限元中的单元定义、材料定义、网格节点坐标、网格连接关系、模型创建、约束定义和外载定义。

2.1、单元定义

严格来说,这里表示的是节点定义,这里显示的是在模型中每个节点的ID、X坐标、Y坐标、Z方向转角信息,鼠标指针点击表格中数据可进行数据修改。

2.2、材料定义

这里展示的是单元的ID、起始节点编号、结束节点编号、杨氏模量、矩形截面梁的宽度、高度、高度方向上的网格节点、长度方向上的网格节点信息。

2.3、网格节点坐标

这里表示的是梁单元内部节点的ID、X坐标、Y坐标、Z转角信息。

2.4、网格连接关系

这里表示的是梁单元内部网格节点连接的ID、起始网格节点ID、中间网格节点ID、结束网格节点ID,因为在OpenGL中面的展示是用最基本的三角形拼接而成的,所以这里需要指定三个节点作为三角形的顶点。

2.5、模型创建

这里使用的是OpenGL进行展示模型的,并且可以通过鼠标的滚轮滚动实现模型的缩放、滚轮的拖动实现模型的平移、左键的拖动实现模型的旋转。(虽然这里看着简单,但是实现起来绝非易事,shader编辑、VAO、VBO、EBO的使用、相机系统Camera的实现、色阶ColorMap的设置都需要进行处理。)

2.6、约束定义

在桥梁的两侧施加全约束(位移约束和转角约束),表格中显示的信息为节点ID、X方向线位移是否约束标志位、X方向初始线位移、Y方向线位移是否约束标志位、Y方向初始线位移、Z方向转角是否约束标志位、Z方向初始转角位移。

2.7、外载定义

这里表格展示的信息是节点ID、X方向力、Y方向力、Z方向力矩。

3、求解器

用来求解矩阵,计算有限元位移场。

3.1、高斯列主消元法

点击"高斯列主消元法"之后,QT会调用后端计算程序,并且打印每个单元的全局刚度矩阵。

4、后处理

用来展示结算结果。

4.1、图像

目前只实现了变形云图的展示,应力应变图目前还未实现。右键"变形Image",可对展示效果进行调整:

滑动"比例缩放"可调整变形倍数;

切换"图像色阶"可调整图像展示颜色;

切换"图像样式"可进行面、线、点的切换。

4.2、列表

可查看具体到节点的支反力、网格节点位移信息。

相关推荐
我是唐青枫19 分钟前
C#.NET PInvoke 深入解析:封送、内存布局与原生互操作实战
开发语言·c#·.net
程序猿编码28 分钟前
纯C++轻量计算机视觉推理引擎:基于GGML的端侧CV模型部署技术全解析
开发语言·c++·计算机视觉·大模型·transformer
SEO_juper1 小时前
外贸多语言站最隐蔽的流量杀手:hreflang 错了,谷歌把德语页推给美国人(附审计脚本)
开发语言·前端·python·seo·独立站·谷歌优化
geovindu1 小时前
CSharp: Strategy Pattern
开发语言·后端·c#·.net·.netcore·策略模式·行为模式
Tairitsu_H1 小时前
[C++] C++11新增构造:列表初始化和std::initializer_list
开发语言·c++·c++11·构造
宣宣猪的小花园.2 小时前
【嵌入式】故障与降级:看门狗、保护机制和工程可靠性的底线
开发语言·人工智能·嵌入式硬件·机器学习
shmily麻瓜小菜鸡2 小时前
JS/TS 易踩坑知识点 — 自动分号插入(ASI)
开发语言·javascript·ecmascript
CoderYanger2 小时前
前端基础——JavaScript(WebAPI)代码案例
java·开发语言·前端·javascript·css·前端框架·html5
geovindu2 小时前
CSharp: Task Scheduler
开发语言·后端·c#·.net·.netcore
qq_401700412 小时前
Qt窗体大小控制从resize到自适应
开发语言·qt