首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[python]openseespy安装后测试代码

[python]openseespy安装后测试代码

作者头像
云未归来
发布2025-07-30 08:51:55
发布2025-07-30 08:51:55
12400
代码可运行
举报
运行总次数:0
代码可运行

测试版本:

openseespy==3.5.1.3

测试代码:

代码语言:javascript
代码运行次数:0
运行
复制
import openseespy.opensees as ops

# 清除之前模型
ops.wipe()

# 创建2维模型 (每个节点有3个自由度: UX, UY, RZ)
ops.model('basic', '-ndm', 2, '-ndf', 3)

# 创建节点 - 将节点2移动到与节点1相同位置
ops.node(1, 0.0, 0.0)
ops.node(2, 0.0, 0.0)  # 与节点1相同位置

# 定义边界条件 (固定节点1的所有自由度)
ops.fix(1, 1, 1, 1)   # 固定UX, UY, RZ

# 节点2: 固定平动自由度,释放转动自由度
ops.fix(2, 1, 1, 0)   # 固定UX, UY, 释放RZ

# 定义材料 (转动弹簧)
ops.uniaxialMaterial('Elastic', 1, 100.0)  # 转动刚度100 kN·m/rad

# 创建零长度元素 (仅提供转动刚度)
ops.element('zeroLength', 1, 1, 2, 
           '-mat', 1, 
           '-dir', 3)  # 方向3对应转动自由度RZ

# 定义时间序列和荷载模式
ops.timeSeries('Linear', 1)
ops.pattern('Plain', 1, 1)

# 在节点2施加弯矩 (绕Z轴)
ops.load(2, 0.0, 0.0, -100.0)  # Fx, Fy, Mz

# 设置静态分析
ops.system('BandSPD')
ops.numberer('RCM')
ops.constraints('Plain')
ops.algorithm('Linear')
ops.integrator('LoadControl', 1.0)
ops.analysis('Static')

# 执行分析
if ops.analyze(1) == 0:
    # 获取节点2的位移和转角
    disp = ops.nodeDisp(2)
    print("节点2的位移和转角 (UX, UY, RZ):", disp)
    print("节点2的转角 (RZ):", disp[2], "rad")
else:
    print("分析失败!请检查模型约束条件")

测试截图:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-07-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档