opensees中,总是觉得在前面建模,比较简单,但是一到第二部分,计算分析以及写加载方式的时候,就会出一堆的错误,决定,今天自己好好的研究一下这个部分。
首先,在建模之初,就应该写定好你的文档放置的位置,自己比较喜欢将所有的文档都放在一个一个文件夹里,所以,我就会先命名一个文件夹:代码如下:
if { [ file exists output] == 0 } {
file mkdir output;
}
这几行的意思是如果存在输出文件,建立输出文件的保存路径,即结果保存在名为output的文件夹里。
(file mkdir 创建一个新目录,file delete,删除文件,file copy 复制文件,file exists 如果文件存在返回1,否则返回0)
file mkdir OUTPUT ; # 创建OUTPUT文件夹 (需要注意的是,如果你想在这一行中的后面添加你的注释,一定要加‘;’,否则在opensees中会报错)
建立好文件夹后,写你建的模,此处省略一万字,
开始写输出部分的时候,需要注意的是,opensees 并不保存和输出所有节点,单元,材料等信息,所以只能输出用户只能信息:
如果是需要node信息文件:
写node比较简单, 就用几个例子来解释:
recorder Node - file output/reaction_1.out - time -node 1 -dof 1 2 reaction
recorder 后Node表示的是节点信息,此外还有Elementhe 和 Graphics两大记录方式,(element后面有介绍)
time表示每计算时步都记录
node 1 1号节点
dof 1 2 表示xy方向
reaction 指的是反力
recorder Node - file output/disp_1.out - time -node 4 -dof 1 2disp
time表示每计算时步都记录
node 4 4号节点
dof 1 2 表示xy方向
disp 指的是位移
如果是需要element信息文件:
recorder Element <-file $fileName> <-time> <-ele ($ele1 $ele2 ...)> <-eleRange $startEle $endEle> <-region $regTag> <-ele all> ($arg1 $arg2 ...)
$ele1 $ele2 ...先前定义的element number
$startEle $endEle 这是对于eleRange 来说
$regTag 这个是对于eleRange 来说,这个域中元素你需要哪些被记录(可选)
$arg1 $arg2 ...传递给setResponse()元素方法的参数
setResponse() 的方法主要取决于元素的类型。例如:
Beam-Column Elements (Beam With Hinges Element, Displacement-Based Beam-Column Element, Elastic Beam Column Element, Nonlinear Beam Column Element) : (opensees中大家最常用的元素)
globalForce – 坐标中元素的抵抗力element resisting force in global coordinates
比如:
recorder Element -file ele1global.out -time -ele 1 globalForce
localForce – 局部坐标中元素的抵抗力element resisting force in local coordinates
比如:
recorder Element -file ele1local.out -time -ele 1 localForce
这个意思就是,记录元素1的在局部坐标中的抵抗力,输出文件为:ele1local.out
Sections:
section $secNum –沿着元素长度方向的特定的截面需要相应的数量
$secNum 指一个整合点关于谁的数据需要被输出
force – 截面的力
比如:
recorder Element -file ele1sec1Force.out –time -ele 1 section 1 force
deformation – 截面的变形
比如: recorder Element -file ele1sec1Defo.out –time -ele 1 section 1 deformation
stiffness – 截面的刚度
比如: recorder Element -file ele1sec1Stiff.out –time -ele 1 section 1 stiffness
stressStrain – 记录截面的应力应变响应
example: recorder Element -file ele1sec1StressStrain.out –time -ele 1 section 1 fiber $y $z <$matID> stressStrain
其中: $y:指的是 (fiber截面的局部y坐标)
local y coordinate of fiber to be monitored
$z:指的是 (fiber截面的局部z坐标)
local z coordinate of fiber to be monitored*
$matID:前面定义的材料标签
ZeroLength section element
只有一个截面,所以不需要在recorder命令中去定义截面;
例如:
recorder Element -file Element1.out -time -ele 1 section 1 fiber 0.10 0.10 stressStrain