引言

不管是静力或是动力分析,OpenSees基本都遵循:系统设置——节点——支座——质量——材料——截面——单元——荷载——分析,这一流程。本文将根据OpenSees官方的例子Example 1a介绍对一个柱构件进行Pushover分析,在此之前会介绍需要用到的命令及其用法。

命令

TCL命令

file mkdir

创建目录。

file mkdir Data;  # 创建目录Data

puts

输出字符串,注意要用双引号。

OpenSees > puts "hello world!"
hello world!

set

定义变量,注意在tcl中调用变量要加$号。

OpenSees > set a 1
1
OpenSees > puts $a
1

OpenSees命令

wipe

该命令用于销毁所有构建的对象,即模型的所有组件、分析的和记录器。

model

该命令用于定义模型的空间维度和节点的自由度数量。

model basic -ndm 2 -ndf 3;  # 二维三自由度

node

该命令用于构造一个节点对象。

node 1 0.0 0.0;  # 坐标为(0,0)的节点1
node 2 0.0 120.; # 坐标为(0,120)的节点2

fix

该命令用于构建单点齐次边界约束。

fix 1 1 1 1;  # 节点 1: 全部固定
fix 2 0 1 0;  # 节点 2: 只固定Y方向

mass

该命令用于设置一个节点的质量。

mass 2 2.5 0.0 0.0;  # 节点2在X方向的质量为2.5

geomTransf Linear

该命令用于构造线性坐标变换对象,该对象执行梁柱单元刚度和抗力从局部坐标系到全局坐标系的线性几何变换。假设有两个单元分别为element1和element2,其模型如图所示,两个单元对应不同的坐标变换。

geomTransf Linear 1 0 0 -1;  # 编号为1的坐标转换,局部Z轴 = - 全局Z轴
geomTransf Linear 2 0 1 0;  # 编号为2的坐标转换,局部Z轴 = 全局Y轴

坐标转换1用于element1,坐标转换2用于element2。

element elasticBeamColumn

该命令用于构造弹性梁柱单元对象。构建弹性梁柱单元的参数取决于问题的维度。

对于二维问题:

element elasticBeamColumn $eleTag $iNode $jNode $A $E $Iz $transfTag

下述命令构造了编号为1的单元,两端节点分别为节点2和节点4,横截面积为5.5,弹性模量为100,惯性矩1e6,使用编号为1的坐标转换。

element elasticBeamColumn 1 2 4 5.5 100.0 1e6 1;

recorder Node

节点记录器可以记录在每次收敛后节点的响应。

recorder Node -file nodesD.out -time -node 1 2 -dof 1 2 disp;  # 记录节点1、2在X、Y方向的位移到nodesD.out

nodesD.out文件中第1列是时间,第2列是节点1在X方向的位移,第3列是节点1在Y方向的位移,以此类推。

disp可更换为下列选项:

disp 位移
vel 速度
accel 加速度
incrDisp 位移增量
eigen i 模态i的特征向量
rayleighForces 阻尼力

pattern Plain

构建静力荷载工况。每个静力荷载工况都与一个时间序列相关联,可以包含多个节点荷载、单元荷载和单点约束。在该命令后面的{}中包含了生成该工况所需的所有荷载和单点约束。

pattern Plain 1 Linear {load 2 0. -2000. 0.;eleLoad -ele 1 -type -beamUniform 2000.;eleLoad -ele 2 -type -beamUniform 0 2000.;eleLoad -ele 3 -type -beamUniform 0 0 -2000.;
};

上述命令创建了编号为1的静力荷载工况,时间序列为线性的时间序列,该工况包含了一个节点荷载(节点2在Y方向上的荷载为-2000),3个单元荷载(单元1在局部Y方向上的均匀荷载为2000,后面两个分别是单元2、3在局部Z、X方向的荷载)。

constraints

该命令用于构造约束处理器对象。约束处理器对象决定了在分析中如何强制执行约束方程。

constraints Plain;

Plain可更换为下列选项:

Plain
Lagrange
Penalty
Transformation

numberer

该命令用于构造一个自由度编号对象,以提供节点上的自由度和方程编号之间的映射。

numberer Plain;

Plain可更换为下列选项:

Plain
RCM
AMD

system

该命令用于构造系统的线性方程组和线性求解器对象,以存储和求解分析中的方程组。

system BandGeneral;

BandGeneral可更换为下列选项:

BandGeneral
BandSPD
ProfileSPD
SparseGEN
UmfPack
FullGeneral

test NormDispIncr

该命令用于构建收敛测试,当分析的位移增量与应用于模型的位移增量相差小于设定值时,认为分析模型收敛。

test NormDispIncr 1.0e-8 6;

algorithm

该命令用于构造一个求解算法对象,它决定了求解非线性方程的步骤顺序。

algorithm Newton;

Newton可更换为下列选项:

Linear
Newton
NewtonLineSearch
ModifiedNewton
KrylovNewton
SecantNewton
BFGS
Broyden

integrator LoadControl

该命令用于构造一个位移控制器,根据设定值在一步分析中施加位移增量。

integrator LoadControl 0.1;

analysis Static

该命令用于构建一个静力分析对象。

analyze

该命令用于执行分析,可以设定执行多少步。每一步中通过integrator命令施加增量,用algorithm命令定义的算法求解新的非线性方程,通过test命令定义的收敛测试判断求解是否收敛,如果收敛则执行下一步。

analyze 10;  # 执行10步

loadConst

该命令用于设置当前分析的时间。

loadConst -time 0.0;  # 重置分析时间

例子

对下图所示的柱构件进行建模并执行Pushover分析。

wipe;
model basic -ndm 2 -ndf 3;
file mkdir Data;# 建模
set LCol 400;
node 1 0 0;
node 2 0 $LCol;
fix 1 1 1 1;
mass 2 5. 0. 0.;geomTransf Linear 1;
element elasticBeamColumn 1 1 2 3600000000 4227 1080000 1;# 设置记录器
recorder Node -file Data/DFree.out -time -node 2 -dof 1 2 3 disp;
recorder Node -file Data/DBase.out -time -node 1 -dof 1 2 3 disp;
recorder Node -file Data/RBase.out -time -node 1 -dof 1 2 3 reaction;# 重力分析
pattern Plain 1 Linear {load 2 0. -2000. 0.;
};
constraints Plain;
numberer Plain;
system BandGeneral;
test NormDispIncr 1.0e-8 6;
algorithm Newton;
integrator LoadControl 0.1;
analysis Static;
analyze 10;
loadConst -time 0.0;# Pushover分析
pattern Plain 2 Linear {load 2 2000. 0.0 0.0;
}
integrator DisplacementControl 2 1 0.1;
analyze 1000;puts "Done!"

参考资料

[OpenSEES]超简单易懂的入门第一课

Command Manual

OpenSees从零开始

欢迎关注作者

@zouxlin3

OpenSees学习记录【二】:柱构件的Pushover分析相关推荐

  1. MySQL学习记录 (二) ----- SQL数据查询语句(DQL)

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  2. Android动画学习记录二(属性动画、估值器和插值器)

    Android动画学习记录二(属性动画.估值期和插值器) Android动画学习记录二(属性动画.估值期和插值器) Android动画学习记录二(属性动画.估值期和插值器) 一.补间动画缺陷 二.属性 ...

  3. HTML学习记录二:html标签(五):超链接标签

    HTML学习记录二:html标签(五):超链接标签 一.超链接标签写法 二.超链接标签的属性 三.超链接的锚点用法 四.链接分类 一.超链接标签写法 在 HTML 标签中, 标签用于定义超链接,作用是 ...

  4. 大数据之spark学习记录二: Spark的安装与上手

    大数据之spark学习记录二: Spark的安装与上手 文章目录 大数据之spark学习记录二: Spark的安装与上手 Spark安装 本地模式 Standalone 模式 基本配置 步骤1: 复制 ...

  5. [大数据技术与应用省赛学习记录二]——模块一(HADOOP完全分布式集群搭建)

    **在操作前,先梳理一下HADOOP完全分布式需要做些什么,不然像无头的苍蝇一样,永远不知道做什么.因为我本人比赛是一台服务器Centos 7,与三台客户端Ubuntu 18.04,所以以物理机的角度 ...

  6. Openzeppelin学习记录二:utils模块(SafeMath.sol+SafeCast.sol)

    Openzeppelin学习记录一:access模块(AccessControl.sol+Ownable.sol) Openzeppelin学习记录 2.Utils 2.1 Math 2.2 Safe ...

  7. UE4 学习记录二 给角色添加骨架,皮肤,及运动动画

    这只是用来记录我学习UE4过程的,可能帮不到你,先说声抱歉.为了防止误导他人,请勿转载,请勿转载,请勿转载. 本文的主题是给角色添加骨架.皮肤.运动动动画.总章目录(https://blog.csdn ...

  8. OpenSees学习记录【一】:安装与用法

    写在前面 近期因为课题要求,作者开始学习并使用OpenSees进行有限元时程分析.OpenSees已经被非常多研究人员和工程师使用了,网上有相当多这类教程,如董瀚林.DinoChen,他们的博客对我的 ...

  9. 项目管理概述学习记录(二)

    1.      为什么需要项目管理 项目管理可以带来下面的优势,也确保了项目可以按时按需完成: ⑴合理安排项目的进度,有效使用项目资源,确保项目能够按期完成,并降低项目成本.通过项目管理中的工作分解结 ...

最新文章

  1. 自学编程的朋友,我想给你们这 5 个建议
  2. Entity Framework的事务提交
  3. 【LeetCode】0830.较大分组的位置
  4. java 如何去掉http debug日志_你居然还去服务器上捞日志,搭个日志收集系统难道不香吗?...
  5. 前端学习(3145):react-hello-react之getStateFromProps
  6. Win32项目生成的程序exe图标显示异常的问题
  7. java游戏运行_用jar包运行带GUI的java游戏
  8. 初级Java程序员如何快速提升自己的能力?
  9. DM6437 720P调试问题记录
  10. html设置div大小位置不变,div大小 div固定大小设置
  11. 安装VTN协调器操作步骤
  12. 苏宁即时通信系统改造实践
  13. 架构即未来--AKF 可扩展立方体
  14. 商品条码三大编码原则,您知道吗?
  15. 哪些食物会使皮肤变黑?
  16. 再寄小读者之一:关于读书
  17. ROS系统SLAM基础学习:gazebo仿真机器人自主导航
  18. 数据结构(数组)的特点以及优缺点
  19. 十六进制(二进制)编辑器
  20. 2023-01-18 ClickHouse之聚合功能源码分析

热门文章

  1. linux--网络配置
  2. 宽网多媒体发布系统产品简介
  3. Graphics2D.drawString中文乱码
  4. [jQuery]选择框(select),多选取值(multiple)
  5. SPOJ - COT Count on a tree [LCA+主席树]【数据结构】
  6. 【等爱的女孩win7热门主题】
  7. 键盘监听木马病毒原理
  8. 实现微信小程序和手机app远程控制51单片机控制L298N电机驱动器控制马达(ESP8266 AT89S52 http请求转串口通信系统 mqtt )
  9. 瑞芯微RK3188开发板,RK3188平板芯片设计手册资料
  10. 练手写的python 淘宝购物车秒杀器 源码,成品链接,效果图