1. 引言
OpenSees初始使用的是Tcl【自己编译最新版的OpenSees (地震工程模拟开放系统)】,Tcl 是一种基于字符串的命令语言,语法相对较少,它是上世纪90年代流行的数值计算脚本语言,许多数值模拟软件使用了Tcl,典型的例子如Abaqus,Tcl的命令格式类似于Itasca软件的命令及其FISH语言。后来俄勒冈州立大学(Oregon State University)使用Python来操作OpenSees命令,发展出目前的OpenSeesPy。
2. Tcl试验
OpenSeesPy的最新版本为3.5.1.3 (2023年6月8日),不过由于预安装的Anaconda版本使用的Python版本为3.9,而最新的OpenSeesPy要求Python的最低版本为3.10,因此只能安装到V3.4.0.8,待以后升级。
pip install openseespy
由于Python安装在Anaconda的根目录下,因此使用根目录的Spyder编辑数据,例子文件仍使用前文的弹性Truss分析,数据准备步骤如下:
(1) 导入opensees模块
import openseespy.opensees as op
op.wipe()
op.model('basic', '-ndm', 2, '-ndf', 2)
op.node(1,0.,0.)
op.node(2,144.0,0.)
op.node(3,168.0,0.)
op.node(4,72.0,96.0)
op.fix(1,1,1)
op.fix(2,1,1)
op.fix(3,1,1)
op.uniaxialMaterial('Elastic', 1, 3000.0)
op.element('Truss', 1, 1, 4, 10.0, 1)
op.element('Truss', 2, 2, 4, 5.0, 1)
op.element('Truss', 3, 3, 4, 5.0, 1)
op.timeSeries('Linear', 1)
op.pattern('Plain', 1, 1)
op.load(4, 100.0, -50.0)
op.system('BandSPD')
op.numberer('RCM')
op.constraints('Plain')
op.integrator('LoadControl', 1.0)
op.algorithm('Linear')
op.analysis('Static')
op.analyze(1)
ux = op.nodeDisp(4,1)
uy = op.nodeDisp(4,2)