本文摘要:(由ai生成)
本文介绍了如何基于PyQt设计一款有限元分析APP。作者首先被Pyvista库的后处理功能吸引,随后决定开发一个有限元软件。推荐使用PyQt5作为界面设计工具,因为Pyside没有找到与Pyvista的接口。Python因其语法简单、库丰富,被选为有限元内核的编程语言。建议参考开源程序,理解数据结构后再进行修改。作者选择了GitHub上的pyfem库,并推荐参考相关书籍学习。Pyvista的有限元后处理方法在作者之前的推文中有详细讲解。程序的文件夹结构包括function、image、Style、ui等,PyMFEA的源程序和资料可在知识星球中获取。作者将根据读者的反馈决定是否详细介绍程序设计细节。
本次分享的是如何基于PyQt设计一款属于自己的有限元APP。
我是先接触的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知识足够,那我就不做程序细节上的介绍了,如果对程序的具体设计疑问较多的,我会收集一些代表性的问题,专门出推文进行解释。