没有合适的资源?快使用搜索试试~ 我知道了~
OpenSeesPyView:基于Python的地震工程有限元求解可视化和后处理工具
软件X 21(2023)101278原始软件出版物OpenSeesPyView:基于Python编程的OpenSeesPy可视化和后处理工具郭军军,叶爱军,王晓伟,关忠国同济大学桥梁工程系,上海,200092ar t i cl e i nf o文章历史记录:收到2022年收到修订版2022年11月4日接受2022年保留字:Python编程模型可视化后处理OpenSeesPya b st ra ct本文提出了一种新开发的可视化框架称为OpenSeesPyView,基于Python编程的图形用户界面(GUI)的 OpenSeesPy , 在 地 震 工 程 中 流 行 的 有 限 元 求 解 器 。 为 了 给 用 户 提 供 更 多 的 编 码 自 由 ,OpenSeesPyView通过模型数据库与OpenSeesPy弱连接。用户在OpenSeesPy中通过包装器方法准备相关数据构建数值模型,将模型信息和地震响应保存到模型数据库中。然后运行开发的工具从数据库中读取数据,并可视化模型,振型,时程响应等。此外,它是方便的修改和添加代码的可视化框架。版权所有©2022作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本0.1.0用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-22-00281可复制胶囊的永久链接https://github.com/Junjun1guo/OpenSeesPyView法律代码许可证GPL-2.0license使用git的代码版本控制系统使用Python的软件代码语言、工具和服务编译要求,运行环境和依赖Python3.8,records==0.5.3,SQLAlchemy==1.3.20,PyQt5==5.15.2,PyVista==0.34.1,pyvistaqt==0.7.0,ezdxf==0.17.2,openseespy==3.3.0,numpy==1.21.5,matplotlib==3.5.1如果可用,请链接到开发人员文档/手册无问题支持电子邮件guojj@tongji.edu.cn1. 动机和意义OpenSees [1](地震工程模拟开放系统)是一个通用的开源有限元求解器,用于模拟结构和土壤的地震反应。OpenSees的特点是计算效率、灵活性和可扩展性[2]。OpenSees主要使用面向对象的编程语言C++ [3]编写,允许开发人员或用户添加/修改材料、元素、算法等。为了便于在实践中使用OpenSees,其源代码被编译*通讯作者。电子邮件地址:guojj@tongji.edu.cn(郭军军),yeaijun@tongji.edu.cn(叶爱军),xiaoweiwang@tongji.edu.cn(王晓伟),guanzhongguo@tongji.edu.cn(关忠国)。https://doi.org/10.1016/j.softx.2022.101278并使用工具命令语言(TCL)进行包装[4],即,用户使用TCL脚本准备他们的代码,TCL解释器负责与OpenSees求解器交互。由于基于Python的机器学习算法的快速发展,Python语言[5]在研究社区中越来越受欢迎[6与TCL相比,Python易于使用,并且有很多强大的第三方模块。 因此,OpenSees的维护者开发了一个名为OpenSeesPy的Python解释器[9]。然而,OpenSeesPy缺乏一个强大的可视化和后处理工具,以方便用户构建和检查他们的模型。图形用户界面(GUI)对于OpenSeesPy用户来说非常重要,本文开发了一个基于Python编程的可视化框架OpenSeesPyView,为模型可视化和后处理提供了灵活、可扩展的模块。2352-7110/©2022作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx郭军军,叶爱军,王晓伟等。软件X 21(2023)1012782Fig. 1.OpenSeesPyView的工作流程一些免费的和商业上使用的GUI已经为OpenSees求解器开发。MDOF [10]是一个研究参数化建筑物地震反应的多自由度应用程序,用户可以快速捕获建筑物时程反应的参数PileGroupTool [10]是一个使用OpenSees的教育应用程序,用于研究分层土壤剖面中桩或桩组的响应。MDOF和PileGroupTool是教育应用程序,不能用于一般的GUI。Build-X [11]是一个预测三维建筑物地震响应的专家系统。OpenSees Navigator [12]是一个基于Matlab [13]的OpenSees GUI , 它 使 用 图 形 输 入 来 可 视 化 建 模 。BuildingTclViewer [14]是一个程序,它提供了一个GUI来创建BuildingTcl(一个库使用Tcl命令构建建筑框架数值分析数据库)数据库,使用OpenSees进行有限元AuTh [15]为OpenSees开发了一个GUI,将OpenSees求解器与通用前/后处理器GiD无缝连接[16]。该界面嵌入在GiD图形环境中,可以有效地构建模型并方便地可视化结果。STKO [17]是OpenSees的高级GUI工具,用户也可以使用Python脚本与它交互目前,STKO可以对三维实体结构进行网格划分和可视化,并且可以方便地显示复杂模型的应力应变分布。 应该注意的是,只有购买的许可证才能访问STKO的全 部 功 能 。 FeView [10] 是 OpenSees 求 解 器 的 基 于 Python 的GUI,该软件在提供TCL输入文件后可视化有限元模型和相关响应。需要注意的是,上面提到的通用GUI是针对OpenSees(TCL解释器)的,而不是针对OpenSeesPy(Python解释器)的。因此,为OpenSeesPy开发一个通用的可视化框架更重要的是,与上面提到的OpenSees GUI相比,OpenSeesPyView是一个基于脚本的GUI,旨在同时利用脚本工具和GUI可视化的优势。此外,用户可以更自由地将代码添加到建议的框架中,并且OpenSeesPy中的一些命令被包装,这使得用户可以快速准确地构建模型。在本文中,开发了一个基于Python编程的OpenSeesPy通用GUI框架,命名为OpenSeesPyView。OpenSeesPyView是灵活的,可扩展的,与OpenSeesPy弱连接。更重要的是,利用Python中的SQLite数据库恢复模型可视化信息和计算结果,如节点坐标、单元连通性、几何变换信息和结构响应等。在第2节中详细阐述了拟议的可视化框架的细节和功能。2. 软件描述2.1. 软件构架建议的可视化框架由三个组件组成:OpenSeesPy命令包装类,SQLite数据库[18]操作类和可视化组件,如图所示。1.一、开发OpenSeesPy命令包装类(OpenSeesPyClass.py)是为了方便将模型信息和计算结果写入数据库,并使使用OpenSeesPy进行地震反应分析变得简单快捷。例如,静态、模态和瞬态分析命令被包装,并且在包装器类中构造关联命令只需要几个参数。编写SQLite数据库操作类(SqliteDB.py),用于保存和查询模型信息和计算结果。此外,SqliteDB.py文件提供了处理模型组件和窗口背景的默认颜色设置的函数。颜色的默认值将恢复到名为defaultSettingDB.db的数据库文件中。PyPI(Python包索引)中的records模块(用于对大多数关系数据库进行原始SQL查询的库)被用来操作数据库。可视化组件(mainGUI.py)从模型数据库读取数据并显示相关结果。 通过一个添加元素的例子来说明OpenSeesPyView的工作过程。首先,使用命令 ops.node ( ) 在 OpenSeesPy 中 构 造 元 素 节 点 。 其 次 , 从OpenSeesPy域中提取节点信息(节点标签和坐标),并将其写入模型数据库在SqliteDB.py中使用saveNodes()命令。第三,以类似的过程构造并保存元素信息,如元素标记、连接节点标记、元素属性等到同一模型数据库中。 最后,当单击显示元素按钮时,响应函数(pyvista PlotClass类中名为elesPlot()的方法)从数据库中提取元素和节点信息,并使用pyvista模块在OpenSeesPyView的主窗口中绘制它们。可视化组件使用PyQt5 [19](Qt v5的一组Python绑定)构建OpenSeesPyView的GUI框架,采用Pyvista [20](VTK的高级API [21])在3D空间中可视化模型信息,并使用matplotlib [22]( 2D 图形 环境) 显示 地震响 应。 OpenSeesPyView 使用 不同的Python类组织,使其易于管理和扩展。OpenSeesPyView的设计理念并不是为OpenSeesPy提供一个完整的GUI,而是提供一个辅助模块,使其更容易可视化和检查模型。OpenSeesPy的脚本编程为用户提 供 了 一 个 灵 活 的 工 具 来 方 便 地 进 行 编 程 , 辅 助 可 视 化 工 具(OpenSeesPyView)帮助用户检查所构建的模型并显示相应的结果。郭军军,叶爱军,王晓伟等。软件X 21(2023)10127832.2. 软件功能图二、建 议 的GUI框架的类图。2.3.2. OpenSeesPy命令包装操作为了方便保存模型信息和计算,OpenSeesPyView支持节点、节点标签、1D元素和元素标签的可视化。此外,OpenSeesPyView提供了静态和动态模式形状此外,模型和振型的矢量图形可以使用ezdxf模块导出为AutoCAD格式文件(ezdxf是一个Python包,用于读取和写入现有的DXF文件,https://ezdxf.mozman.at/docs/)。地震反应结果保存在模型数据库中,可快速查询。此外,时间历程结果可通过matplotlib模块进行可视化。应该注意的是,存储在数据库中的响应取决于指定输出的响应。目前,大部分的反应(如节点位移,速度,加速度,等等)的三维桁架,梁,零长度元素的支持。用户还可以通过编写一个简单的Python脚本来有效地查询存储在数据库中的数据。框架中包含的类如图所示。二、为了方便用户将他们的代码添加到建议的框架中,以下部分详细描述了几个示例代码片段2.3. 示例代码段分析2.3.1. SQLite数据库操作与记录模块SQLite数据库操作通过使用records模块来简化。数据库的主要功能是永久保存和获取数据,清单1和清单2说明了这两个目标。为了简化将数据保存到数据库中的过程,保存内容用字符串表示,如清单1所示。还应该注意的是,节点是批量插入的,这避免了频繁地操作数据库。查询节点时,只需提供查询节点对应的表名即可。为简洁起见,其他模型信息的保存和查询操作未列出,更多细节可参考在python文件(SqliteDB.py)中。用户很容易扩展数据库的功能。结 果 , OpenSeesPy 的 一 些 必 要 命 令 被 包 装 在 一 个 名 为OpenSeesPyClass 的 类 中 。 例 如 , 非 线 性 元 素 希 望 在OpenSeesPyView中保存和可视化,其原生命令包装在清单3中的ele_nonlinearBeamColumn 方 法 中 。 包 装 的 方 法 不 仅 在OpenSeesPy中实现本机命令,而且还将关联的数据保存到模型数据 库 。 需 要 注 意 的 是 , 包 装 器 类 将 有 限 元 分 析 ( 使 用OpenSeesPy)及其可视化(使用OpenSeesPyView)分离,它们与模型数据库的连接较弱。这种设计为用户提供了更多的自由来准备他们的代码,他们只需要在OpenSeesPy中包装命令一些常用的命令已经包装在类中,包括节点、1D元素、分析命令等。包装类使用户能够轻松地构建有限元模型并保存相关数据。2.3.3. Pyvista可视化模型采用Pyvista对OpenSeesPy构建的模型进行静态和动态可视化。清单4给出了在建议的框架中显示模型元素的方法。首先从模型数据库中获取关联的节点和单元;然后将数据转换为Pyvista PolyData对象;最后在屏幕上绘制网格。用pyvista动态显示数据很简单。可以使用pyvista中的update_coordinates()方法来更新模型的位置。此外,方法update_scalars()可用于绘制结果的云图。当前研究的目的不是提供所有特征而是提供一个用户可以自定义和扩展的框架。郭军军,叶爱军,王晓伟等。软件X 21(2023)10127843. 说明性实例OpenSeesPyView的当前版本可以处理1D元素结构的预处理和后处理,以及其他类型元素可以很容易地添加到建议的框架中,如第2节所述。 最后以一座斜拉桥为例说明OpenSeesPyView的应用。 根据桥梁结构形式和材料特性,郭军军,叶爱军,王晓伟等。软件X 21(2023)1012785图三. OpenSeesPyView的节点和元素显示使用OpenSeesPy(AnExampleBridgeOpenSeesPyModel.py)建立有限元模型。应该注意的是,节点、元件、模态分析和地震分析是使用OpenSeesPyClass.py中的包装方法构建的。模型信息(包括节点、元素和局部坐标系)保存在模型数据库(resultsDB_1_1.db)中。在运行www.example.com之后mainGUI.py,OpenSeesPyView的主窗口显示为图。3 .第三章。然后,单击带有“Load-ResultDB”标签的按钮将显示在窗口中。如图1所示,检查模型元素的局部坐标系是很方便的。 四、此功能可以帮助用户识别1D元素的局部Z轴,并验证模型是否按预期构建应该注意的是,红色、绿色和蓝色箭头分别表示局部1、2和3轴图5显示了桥梁的振型。模态振型有助于用户了解结构的动力特性,验证有限元模型的正确性以促进郭军军,叶爱军,王晓伟等。软件X 21(2023)1012786见图4。 OpenSeesPyView中元素的局部坐标系。(For为了解释该图图例中对颜色的引用,读者可以参考这篇文章的WEB版本图五、斜 拉桥的二阶振型。OpenSeesPyView在科研中的使用,可以生成有限元模型的矢量图像和dxf格式的振型。桥梁在地震作用下的时程响应如图6所示。便于绘制桥梁的时程和滞回响应。此外,用户可以在求解器运行时检查响应,这是分离OpenSeesPy和OpenSeesPyView的好处。虽然示例桥梁仅使用1D元素,但基本步骤与其他结构相同。鼓励用户扩展OpenSeesPyView的功能以解决他们的特定问题。4. 影响OpenSeesPyView的当前表单支持OpenSeesPy 3.3.0。这是一个纯Python程序,但它的功能-OpenSeesPy有限元求解器的完整的前处理和后处理框架。与TCL解释器版本的OpenSees相比,Python解释器版本(OpenSeesPy)更容易构建数值模型并进行相关结果分析。OpenSeesPy广泛应用于地震工程界,用于模拟郭军军,叶爱军,王晓伟等。软件X 21(2023)1012787图六、 时间历史结果图窗口。结构和岩土系统。然而,OpenSeesPy缺乏简单但功能强大的可视化工具,限制了OpenSeesPy的发展。拟议的框架可以填补这一空白。与OpenSees的其他现有可视化工具相比,OpenSeesPyView旨在为OpenSeesPy提供灵活且可扩展的可视化框架。OpenSeesPyView通过模型数据库与OpenSeesPy弱连接,这使用户可以更自由地准备OpenSeesPy模型。此外,用户可以方便地修改和添加新的代码用于特定用途。5. 结论在这项研究中,开发了一个开源的前处理和后处理框架的OpenSeesPy。OpenSeesPyView通过模型数据库与OpenSeesPy进行交互,这使得求解器和可视化工具每周耦合。OpenSeesPy用户可以使用OpenSeesPyView检查所建有限元模型的正确性,了解结构的动力特性,方便地查看地震反应。虽然OpenSeesPyView的当前版本仅支持具有1D元素的可视化结构,但可以轻松地将其他元素添加到框架中,如第2节所述。OpenSeesPyView的未来版本将包括二维平面和三维实体单元的可视化、应力和应变云图、一般截面特性分析、自动生成模型节点和单元等。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作数据可用性数据将根据要求提供。资金本研究得到了上海市博士后优秀项目的资助。2021333,国家自 然 科 学 基 金 项 目 ( 资 助 号 : 51878491 、 52008155 、52178155),上海市杨浦区博士后创新实践基地项目。引用[1]McKenna F,Scott MH,FenvesGL.非线性有限元分析的,分析的使用对象组合SIS软件体系结构。J Comput Civ Eng2010;24(1):95-107.[2]麦 肯 纳 湾 OpenSees : 一 个 地 震 工 程 模 拟 框 架 。 Comput Sci Eng2011;13(4):58-66.[3]Stroustrup B编辑C++的基础在:欧洲规划研讨会。Springer;2012.[4]OusterhoutJK.Tcl:一种可嵌入的命令语言:Citeseer。一九八九年[5]VanRossum G,Drake FL.Python 3参考手册:Python Space。2009年[6]Hao J,Ho TK.机器学习变得简单:Python编程语言中的scikit-learn包的回顾。J Educ Behav Stat2019;44(3):348-61.[7]Bas EE,Moustafa MA.基于Python的实时混合仿真机器学习模型的通信开发和验证。前建环境2020;6:574965。[8]王X,Mazumder RK,Salarieh B,Salman AM,Shafieezadeh A,Li Y.结构工程中风险和弹性评估的机器学习:进展和未来趋势. J Struct Eng2022;148(8):03122003.[9]Zhu M , McKenna F , Scott MH. OpenSeesPy : OpenSees 有 限 元 框 架 的Python库。SoftwareX2018;7:6-11.[10]放大图片作者:Rahman MM,Nahar TT,Kim D. FeView:有限元件模型OpenSees的有限元(FEM)可视化和后处理工具。SoftwareX2021;15:100751.[11]Pingerras NK,Sextos AG.Build-x:专家系统为地震分析的,分析的使用OpenSees对三维建筑物进行SIS和评估。Adv Eng Softw2018;116:23-35.[12]放大图片作者:Yang T,Schellenberg A,Kohama E. OpenSees导航器。美国加利福尼亚州伯克利:太平洋地震工程研究中心,参见http。. . ; 2017年。[13]我的错。Matlab软件MathWorks Inc.一九九三年[14]EOTN.最近的发展在BuildingTcl。2011年。[15]考尼斯GiD+ OpenSees接口:非线性有限元分析的主要扩展。塞萨洛尼基亚里士多德大学;2017年。[16][10]李文,李文. GiD参考手册。CIMNE。巴塞罗那1998;27:25.[17]Petracca M,Candeloro F,Camata G,editors. STKO:OpenSees革命性的可视化工具包。在:Opensees天欧洲,第一次欧洲会议上Opensees。2017年。[18]Bhosale S,Patil T,Patil P. Sqlite:Light数据库系统。Int J Comput SciMobComput2015;44(4):882-5.郭军军,叶爱军,王晓伟等。软件X 21(2023)1012788[19]威尔曼Pyqt5的概述在:Modern PyQt.Springer; 2021,p.1-42[20]放大图片作者:A. PyVista:3D绘图和网格分析可 视 化 工具包(VTK)的简化界面。J Open SourceSoftw2019;4(37):1450.[21]放大图片作者:Schroeder W.使用VTK可视化:教程。IEEEComput GraphAppl 2000;20(5):20-7.[22]亨特JD。Matplotlib:2D图形环境。计算机科学与工程2007;9(03):90-5.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功