文档:OpenSeesPy
import openseespy as ops
1. Intro
1.1 如何正确地输入参数
下图是在官方文档中某函数的输入参数:
该函数可以表示为如下结构:
eleLoad(
'-ele', *eleTags,
'-range', eleTag1, eleTag2,
'-type',
'-beamUniform', Wy, <Wz>, Wx=0.0,
'-beamPoint', Py, <Pz>, xL, Px=0.0,
'-beamThermal', *tempPts
)
可知该函数的输入分为两层:
- 第一层:
'-ele', '-range', 'type'
- 第二层:
'-beamUniform', '-beamPoint', '-beamThermal'
以上每一层内的元素之间都是并列的,而第二层的所有元素均属于第一层中的 '-type'
,因此在输入第二层相关的参数时需要在前面加上 '-type'
具体参数:
*eleTags
:星号表示可以输入多个相关参数<Wz>
:尖括号表示该参数只在某些条件下才需要输入Wx=0.0
:默认赋0值,因此可以不输入
示例:
# 在1、3、4、5号杆的中间位置: xL=0.5
# 施加y方向(locally)、大小为-20的力: Py=-20
# 该模型为二维模型,而输入Pz的前提是三维模型,因此不输入
ops.eleLoad(
'-ele', 1,
'-range', 3, 5,
'-type',
'-beamPoint', -20, 0.5)
2. 常用函数
铰接 Hinge
# 通过两个重合的节点实现铰接
# 这两个节点需要满足位移一致、转动不一定一致
ops.node(3, 0.2, 0.2)
ops.node(4, 0.2, 0.2)
ops.equalDOF(3,4,1,2) # 关联3、4节点在第一、第二自由度上的运动(x,y轴)
节点荷载
ops.load(nodeTag, *loadValues)
ops.load(1, Fx, Fy, M) # 二维节点
杆荷载
# Point load
# 杆件的局部坐标系(local axis):以杆件中轴为x轴,垂直中轴方向为y轴
# Fy: 在局部坐标系上施加一个y方向的力
# xL: 施力位置,范围[0,1],例如xL=0.5表示在杆件中间施加荷载
ops.eleLoad(
'-ele', 1,
'-range', 3, 5,
'type',
'-beamPoint', Fy, xL
)
# Uniform distributed load
ops.eleLoad(
'-ele', 1,
'-range', 3, 5,
'type',
'-beamUniform', Wy
)
Document Information
- Author: Zeka Lee
- Link: https://zhekaili.github.io/wiki/python-libs/python-lib-openseespy/
- Copyright: 自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)