OpenSeesPy - 从此Python工程计算不再难
OpenSees目前已经是地震工程研究的基本工具,因其开放、高效、计算精准广受地震工程研究人员欢迎。但其由于没有可视化界面、建模需要编写Tcl命令等原因,学习门槛也较高,这可能是为什么更多人(尤其在当前的博士大军中)愿意使用ABAQUS来解决自己研究问题的原因吧。Tcl很古老了,本人很早就尝试使用过OpenSees,但一直没有深入,一是工作中用到的机会少,另一方面更重要的原因是Tcl这门语言学起来总觉得不那么友好。最近好了,OpenSees官方也提供了目前最火的语言Python支持了,它就是:OpenSeesPy。
今天先分享一下其安装过程和OpenSeesPy作者大神近期的公开讲座,供爱Python的小伙伴把玩。
安装
安装Python
这里推荐直接安装Anaconda,这个东东有点大,不过是Python的使用超级工具,几乎包括了科学计算常用的所有库,关键是其可以对本机上不同的Python环境进行高效管理。大家根据官网上的地址和自己系统下载一个安装包一路Next即可。安装后,打开命令行按下列命令创建一个新的Python虚拟环境:
conda create -n py38 python=3.8
以上命令创建的python版本为3.8(OpenSeesPy最新版当前需要python3.8),名字为py38的虚拟环境,用户可根据自己习惯自行修改。
安装OpenSeesPy
切换到py38环境,在命令行执行以下命令:
activate py38
使用Pip安装OpenSeesPy:
pip install openseespy
如果命令行没有报错,你的Python就应该已经具有OpenSees的功能了。(着实较以前简单!!!!)
测试一下
打开顺手的Python编辑器,输入以下代码:
# import OpenSeesPy import openseespy.opensees as ops # import OpenSeesPy plotting commands import openseespy.postprocessing.Get_Rendering as opsplt # wipe model ops.wipe() # create model ops.model('basic', '-ndm', 2, '-ndf', 3) ops.node(1,0,100,100) ops.node(2,100,100,100) # Geometry of column elements # tag ops.geomTransf('Linear', 2) # Create the beam element # tag, ndI, ndJ, A, E, Iz, transfTag ops.element('elasticBeamColumn', 1, 1, 2, 360.0, 4030.0, 8640.0, 2) # plot model opsplt.plot_model()
运行以上代码,将建立一个具有2个节点的梁单元,并用matplotlib显示出来,看到下图就说明你成功啦:))
大神介绍视频
关于OpenSeesPy更多的背景,可参考学习原作大神Minjie Zhu的最新讲座视频(点击以下链接移步至新浪微薄,本人还贴心地添加了油管的自动字幕奥):
Minjie Zhu & OpenSeesPy Development