首页/文章/ 详情

木木教你如何基于PyQt设计一款属于自己的有限元APP(附PyMFEA整套源程序+参考资料)

7月前浏览4650

本文摘要:(由ai生成)

本文介绍了如何基于PyQt设计一款有限元分析APP。作者首先被Pyvista库的后处理功能吸引,随后决定开发一个有限元软件。推荐使用PyQt5作为界面设计工具,因为Pyside没有找到与Pyvista的接口。Python因其语法简单、库丰富,被选为有限元内核的编程语言。建议参考开源程序,理解数据结构后再进行修改。作者选择了GitHub上的pyfem库,并推荐参考相关书籍学习。Pyvista的有限元后处理方法在作者之前的推文中有详细讲解。程序的文件夹结构包括function、image、Style、ui等,PyMFEA的源程序和资料可在知识星球中获取。作者将根据读者的反馈决定是否详细介绍程序设计细节。

本次分享的是如何基于PyQt设计一款属于自己的有限元APP

 

设计工具

  1. PyQt做界面
  2. Python面向对象编程思想设计有限元内核求解程序
  3. Pyvista做后处理

第一条解释

我是先接触的Pyvista这个Python-vtk库,使用之后就迷上了这个后处理处理方式,然后才想着做一个界面,通过鼠标交互的方式做一个有限元小软件,大家在设计界面时可选用其他工具,这个无所谓,但要想结合pyviata进行显示,推荐使用pyqt5,前两天想用pyside进行设计,但是没找到与pyvista的相应接口。

第二条解释

设计整套程序时肯定要选用“面向对象语言”,C++是主流的国内外有限元程序设计语言,但其门槛颇高,初次设计就用C++,很大程度上会打击初学者的学习热情。

Python语法简单,程序看起来很容易看懂,上手快,库也非常丰富,可作为首选。当然Matlab也可作为首选,用于学习之用。

在设计整套程序时,建议浏览一些开源的程序,先看懂,明白数据结构,然后再加上自己的想法,能够进行修改,收为己用,不建议自己闭门造车,一点一点写,时间成本很大。

本次我选用的是github上一个开源的python有限元库:https://github.com/sunwhale/pyfem,与下面这本书的风格很像,大家如果想用这套代码,除了看程序结构也可以参考这本书进行学习。

我也是正在学,刚了解了他的一些数据结构,里面还有很丰富的非线性相关的,我还没仔细看,欢迎大家和木木一起探讨。

第三条解释

有关Pyvista如何进行有限元后处理的,我之前有推文详细的讲过,可参考往期推送:VTK库学习 | 百万级自由度有限元模型云图绘制只需0.02秒!

界面结构

 

文件夹function存放有限元求解程序和信号函数;文件夹image存放图标文件;文件夹Style存放界面渲染qss文件,用户可以自定义也可以使用现成的库:qdarkstyle等优秀的渲染方式,文件夹ui存放界面ui文件,main函数进行程序运行调用,我又存放了一个test脚本,可作为用户在试探某些语句的功能性的时候在这个test脚本中进行运行。

PyMFEA的源程序及参考资料存放至木木的知识星球中,感兴趣的小伙伴可加入星球,在星球内的PyMFEA的专栏下进行互动交流,该套程序也会实时更新,欢迎下载使用。

本期先做一大致介绍,如果大家的qt知识足够,那我就不做程序细节上的介绍了,如果对程序的具体设计疑问较多的,我会收集一些代表性的问题,专门出推文进行解释。




来源:易木木响叮当
非线性MATLABpython渲染
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-05-26
最近编辑:7月前
易木木响叮当
硕士 有限元爱好者
获赞 224粉丝 284文章 355课程 2
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈