how can i get the end of pushover curve?

Forum for OpenSees users to post questions, comments, etc. on the use of the OpenSees interpreter, OpenSees.exe

Moderators: silvia, selimgunay, Moderators

Post Reply
fgcfqh
Posts: 2
Joined: Tue Nov 21, 2006 4:50 am
Location: tongji university
Contact:

how can i get the end of pushover curve?

Post by fgcfqh »

hello everybody,
as a beginner user i am trying to perform a pushover analysis on a column, modeled with a fiber section, but i can't see the ultimate displacement point of the pile top. the program keeps pushing endlessly (in displacementscontrol) over the materials strength and puts out an horizontal line in the P-u graphic.
any suggestion?
pejman_opensees
Posts: 123
Joined: Tue Oct 31, 2006 10:40 am
Location: k.n.toosi University

Post by pejman_opensees »

it depends on the type of material you are using. as you migh know a stress-strain curve is defined for a single fiber and after integration over the cross section for all fibers we have section properties and intergration over certain points along the element, we will have element properties. so if we define a material with descending branch consequently, we will have descending property of the element and using displacement control, we can catch both pick point and descending branch.
Pejman
fgcfqh
Posts: 2
Joined: Tue Nov 21, 2006 4:50 am
Location: tongji university
Contact:

Post by fgcfqh »

thanks for you timely reply.
while,the material i have defined has the decent part,even if i give a very large displacement control,i cannot get the decent curve.
i use the conctete01 material and steel01 material.

and forgive me for my greed.could you give a very simple example to show how to perform it .
and give me some suggestion to choose material and element type.
thank you very much.

here i post the program:

#------------------------------------------------------------------------------------
puts "定义基本单位"
set m 1.0;
set sec 1.0;
set KN 1.0;
#set KPa [expr $KN/pow($m,2)];
#set MPa [expr 1000*$KPa];
set g 9.81; #其单位为m/s^2set PI [expr 2*asin(1.0)];
set U 1.0e10;
set u [expr 1/$U];
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "输出基本单位"
set units 1;
set fDir "information/"
file mkdir $fDir;
set outFileID [open $fDir/units($units).txt w];
puts $outFileID "unit($units)=$units;";
puts $outFileID "m=$m;";
puts $outFileID "sec=$sec;";
puts $outFileID "KN=$KN;";
#puts $outFileID "KPa=$KPa;";
#puts $outFileID "MPa=$MPa;";
puts $outFileID "g=$g;";
puts $outFileID "PI=$PI;";
puts $outFileID "U=$U;";
puts $outFileID "u=$u;";
close $outFileID
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "定义几何变量"
set pierhight 30.0; #the hight of pier
set pierdia 2.0; #the diameter of pier
set pierarea [expr $PI*pow($pierdia,2)/4.0]; #the area of pier
set piervol [expr $pierarea*$pierhight]; #the volumn of pier
set condens 2.6; #the density of concrete
set piermass [expr $condens*$piervol]; #the mass of pier
set pierweight [expr $g*$condens*$piervol]; #the weight of pier
set upweight 4000; #the weight of the up structure,the unit is KN.
set upmass [expr $upweight/$g]; #the mass of the up structure,the unit is T
set sumweight [expr $upweight+$pierweight]; #the total weight of the model.
set focmass [expr 0.24*$piermass+$upmass]; #the focus mass of the top point.
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "输出几何参数"
set geofactors 1;
set fDir "information/"
file mkdir $fDir;
set outFileID [open $fDir/geofactors($geofactors).txt w];
puts $outFileID "geofactors($geofactors)=$geofactors;";
puts $outFileID "墩高=$pierhight;";
puts $outFileID "直径=$pierdia;";
puts $outFileID "面积=$pierarea;";
puts $outFileID "体积=$piervol;";
puts $outFileID "砼密度=$condens;";
puts $outFileID "墩的质量=$piermass;";
puts $outFileID "上部结构自重=$upweight;";
puts $outFileID "上部结构质量=$upmass;";
puts $outFileID "墩和上部结构总重=$sumweight;";
puts $outFileID "集中质量=$focmass;";
close $outFileID
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "定义截面特性"
set G $U; #torsional stiffness modulus
set J 1.0; #torsional stiffness of section
set GJ [expr $G*$J]; #torsional stiffness
set Ec 3e7; #concrete stiffness(KN/m^2)
set EA [expr $Ec*$pierarea]; #axial stiffness
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "输出截面特性"
set characters 1;
set fDir "information/"
file mkdir $fDir;
set outFileID [open $fDir/characters($characters).txt w];
puts $outFileID "characters($characters)=$characters;";
puts $outFileID "G=$G;";
puts $outFileID "J=$J;";
puts $outFileID "GJ=$GJ;";
puts $outFileID "砼弹性模量=$Ec;";
puts $outFileID "轴向刚度=$EA;";
#puts $outFileID "g=$g;";
#puts $outFileID "PI=$PI;";
#puts $outFileID "U=$U;";
#puts $outFileID "u=$u;";
close $outFileID
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "定义配筋信息"
set numlongbar 40; #number of column longtitudinal-reinforcement bars
set longbardia 0.03; #the diameter of the longtitudinal-reinforcement bars
set longbararea [expr $PI*pow($longbardia,2)/4.0]; #the area of per longtitudinal-reinforcement bars
set sumarealongbar [expr $longbararea*$numlongbar]; #total steel area in column section
set longbarratio [expr $sumarealongbar/$pierarea]; #the ratio of longtitudinal-reinforcement bars
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "输出配筋信息"
set barinformations 1;
set fDir "information/"
file mkdir $fDir;
set outFileID [open $fDir/barinformations($barinformations).txt w];
puts $outFileID "barinformations($barinformations)=$barinformations;";
puts $outFileID "纵向钢筋的根数=$numlongbar;";
puts $outFileID "纵筋的直径=$longbardia;";
puts $outFileID "每根纵筋的面积=$longbararea;";
puts $outFileID "墩的截面纵筋的总面积=$longbarratio;";
#puts $outFileID "轴=$EA;";
#puts $outFileID "g=$g;";
#puts $outFileID "PI=$PI;";
#puts $outFileID "U=$U;";
#puts $outFileID "u=$u;";
close $outFileID
#------------------------------------------------------------------------------------



#------------------------------------------------------------------------------------
puts "定义求解器控制变量"
set Lcol 25;
set gamma 0.5; #gamma value for newmark integration
set beta 0.25; #beta value for newmark integration
set DtAnalysis [expr 0.005*$sec]; #time-step Dt for lateral analysis
#------------------------------------------------------------------------------------



#------------------------------------------------------------------------------------
puts "定义模型编辑器"
model basic -ndm 2 -ndf 3; #basic: modelbuilder type, ndm= number of dimensions, ndf= #dof/node
#------------------------------------------------------------------------------------



#------------------------------------------------------------------------------------
puts "定义节点坐标"
# tag X Y
node 1 0 0 #注意:编号从1开始,但坐标从0开始的.
node 2 0 1
node 3 0 2
node 4 0 3
node 5 0 4
node 6 0 5
node 7 0 6
node 8 0 7
node 9 0 8
node 10 0 9
node 11 0 10
node 12 0 11
node 13 0 12
node 14 0 13
node 15 0 14
node 16 0 15
node 17 0 16
node 18 0 17
node 19 0 18
node 20 0 19
node 21 0 20
node 22 0 21
node 23 0 22
node 24 0 23
node 25 0 24
node 26 0 25
node 27 0 26
node 28 0 27
node 29 0 28
node 30 0 29
node 31 0 30
node 32 0 30.01 #用来放集中质量
#------------------------------------------------------------------------------------



#------------------------------------------------------------------------------------
puts "定义边界条件"
fix 1 1 1 1; #fixed base
#------------------------------------------------------------------------------------



#------------------------------------------------------------------------------------
puts "定义节点质量"
# node xmass ymass Izzmass
mass 1 0 0 0
mass 2 0 0 0
mass 3 0 0 0
mass 4 0 0 0
mass 5 0 0 0
mass 6 0 0 0
mass 7 0 0 0
mass 8 0 0 0
mass 9 0 0 0
mass 10 0 0 0
mass 11 0 0 0
mass 12 0 0 0
mass 13 0 0 0
mass 14 0 0 0
mass 15 0 0 0
mass 16 0 0 0
mass 17 0 0 0
mass 18 0 0 0
mass 19 0 0 0
mass 20 0 0 0
mass 21 0 0 0
mass 22 0 0 0
mass 23 0 0 0
mass 24 0 0 0
mass 25 0 0 0
mass 26 0 0 0
mass 27 0 0 0
mass 28 0 0 0
mass 29 0 0 0
mass 30 0 0 0
mass 31 [expr $focmass] [expr $focmass] 0
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
# puts "定义滞回耗能材料/非线性材料的特性,适合定义截面的单轴材料特性,对于保持弹性的截面,不需此定义。"
# 核心混凝土 注:压为-,拉为+
# 仅需1行,幕后工作需要借助Ucfyber完成,最后汇总一个关于滞回耗能材料的报告书,以备核对!÷
##-----------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "定义扭转刚度"
set IDelasticT 4;
uniaxialMaterial Elastic $IDelasticT $GJ; # Define torsional stiffness
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "定义材料属性"
set ncore 1; #the number of core concrete
set ncover 2; #the number of cover concrete
set nsteel 3; #the number of steel
set corecfy -31520;
set corecdy -0.004457;
set corecfu -27720.0;
set corecdu -0.01215;
set covercfy -25500.0;
set covercdy -0.002;
set covercfu 0.0;
set covercdu -0.006;
uniaxialMaterial Concrete01 $ncore $corecfy $corecdy $corecfu $corecdu #core concrete
uniaxialMaterial Concrete01 $ncover $covercfy $covercdy $covercfu $covercdu # Cover concrete


set fy 340000.0; # Yield stress
set E 200000000.0; # Young's modulus
set hardratio 0.0012
# tag fy E0 b
uniaxialMaterial Steel01 $nsteel $fy $E $hardratio
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "定义有限元模型参数"
set coverdepth 0.05; #the depth of the cover concrete
set corecradius [expr $pierdia/2.0-$coverdepth]; #the radius of the core concrete
set covercradius [expr $pierdia/2.0]; #the radius of the cover concrete
set numcir 72; #the divide number around the circle
set numdir 19; #the divide number along the diameter
set theta [expr 360.0/$numlongbar];
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "定义墩的截面"
section Fiber 1 {
patch circ $ncore $numcir $numdir 0 0 0 $corecradius 0 360; #define the core patch
patch circ $ncover $numcir $numdir 0 0 $corecradius $covercradius 0 360; #define the cover patch
layer circ $nsteel $numlongbar $longbararea 0 0 $corecradius 0 360
}
#------------------------------------------------------------------------------------



#------------------------------------------------------------------------------------
#与将抗弯与抗扭合成在一起,是建立平衡方程的需要,相当于增加了促使计算稳定的约束条件。
#截面特性编号 扭转特性材料号 单轴截面特性编号
puts "组集单元合成"
section Aggregator 2 $IDelasticT T -section 1;
#------------------------------------------------------------------------------------



#------------------------------------------------------------------------------------
puts "定义坐标变换原则"
geomTransf Linear 1; # Linear: no second-order effects
set np 5; # Number of integration points
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "定义单元"
#非线性墩 tag ndI ndJ nsecs secID transfTag
element nonlinearBeamColumn 1 1 2 $np 2 1
element nonlinearBeamColumn 2 2 3 $np 2 1
element nonlinearBeamColumn 3 3 4 $np 2 1
element nonlinearBeamColumn 4 4 5 $np 2 1
element nonlinearBeamColumn 5 5 6 $np 2 1
element nonlinearBeamColumn 6 6 7 $np 2 1
element nonlinearBeamColumn 7 7 8 $np 2 1
element nonlinearBeamColumn 8 8 9 $np 2 1
element nonlinearBeamColumn 9 9 10 $np 2 1
element nonlinearBeamColumn 10 10 11 $np 2 1
element nonlinearBeamColumn 11 11 12 $np 2 1
element nonlinearBeamColumn 12 12 13 $np 2 1
element nonlinearBeamColumn 13 13 14 $np 2 1
element nonlinearBeamColumn 14 14 15 $np 2 1
element nonlinearBeamColumn 15 15 16 $np 2 1
element nonlinearBeamColumn 16 16 17 $np 2 1
element nonlinearBeamColumn 17 17 18 $np 2 1
element nonlinearBeamColumn 18 18 19 $np 2 1
element nonlinearBeamColumn 19 19 20 $np 2 1
element nonlinearBeamColumn 20 20 21 $np 2 1
element nonlinearBeamColumn 21 21 22 $np 2 1
element nonlinearBeamColumn 22 22 23 $np 2 1
element nonlinearBeamColumn 23 23 24 $np 2 1
element nonlinearBeamColumn 24 24 25 $np 2 1
element nonlinearBeamColumn 25 25 26 $np 2 1
element nonlinearBeamColumn 26 26 27 $np 2 1
element nonlinearBeamColumn 27 27 28 $np 2 1
element nonlinearBeamColumn 28 28 29 $np 2 1
element nonlinearBeamColumn 29 29 30 $np 2 1
element nonlinearBeamColumn 30 30 31 $np 2 1
element elasticBeamColumn 31 31 32 1000 3.0e7 1000 1
#------------------------------------------------------------------------------------



#------------------------------------------------------------------------------------
puts "计算模型的周期"
set lamiga [eigen 1]
#puts "lamiga=$lamiga"
set lamiga1 [lindex $lamiga 0]
#puts "lamiga1=$lamiga1"
#set lamiga2 [lindex $lamiga 1]
#puts "lamiga2=$lamiga2"
set omega1 [expr pow($lamiga1,0.5)]
#set omega2 [expr pow($lamiga2,0.5)]
set T1 [expr 2*$PI/$omega1]
#set T2 [expr 2*$PI/$omega2]
puts "模型的自振周期为:$T1"
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "定义重力分析控制变量"
set DxPush [expr 0.002];
set DmaxPush [expr 0.1*$Lcol];
set DtAnalysis [expr 0.005*$sec];
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "加载墩顶重力"
pattern Plain 1 Linear {
load 32 0.0 -$sumweight 0.0
}
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "定义求解器"
system UmfPack; # solution procedure, Super-LU, how it solves system of equations
constraints Plain; # how it handles boundary conditions, enforce constraints through the transformation
test NormDispIncr 1.0e-3 100 5; # tolerance, max no. of iterations, and print code , 1: every iteration
algorithm Newton; # use Newton's solution algorithm: updates tangent stiffness at every iteration
numberer RCM; # renumber dof's to minimize band-width (optimization)
integrator LoadControl 0.1 1 0.1 0.1; # variable load-stepping
analysis Static
initialize
recorder Node -file node32Gravity.txt -time -node 32 -dof 1 2 3 reaction
recorder Node -file node1Gravity.txt -time -node 1 -dof 1 2 3 reaction
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "运行重力分析"
analyze 10 #从0.1W加载到W
loadConst -time 0.0
puts "完成重力分析"
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "输入侧向力"
pattern Plain 2 Linear {
load 32 10.0 0.0 0.0
}
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "定义增量步长"
set dU 0.01; #Displacement increment
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
set pushnode 32
integrator DisplacementControl $pushnode 1 $dU 1 $dU $dU
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "定义输出文件选项"
#结束旧的记录命令——备选
remove recorders
recorder Node -file node32.xls -time -node 32 -dof 1 disp
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
# End of recorder generation
#------------------------------------------------------------------------------------


#------------------------------------------------------------------------------------
puts "进行推倒分析"
analysis Static
analyze 150
puts "推倒分析完成"
#------------------------------------------------------------------------------------
pejman_opensees
Posts: 123
Joined: Tue Oct 31, 2006 10:40 am
Location: k.n.toosi University

Post by pejman_opensees »

I tested your program (although I didnt have your font and made some corrections concerning definitions!:( :cry: )
I pushed your pile a little bit further and encounterd non-convergence!.it appears to me that you have numerical
instability problems.try on of these:
1. decresing displacement steps.
2. lineSearch method.
3. using steel02 material.( you will find the reason in the post I sent entitled 'the answer of my last question')
4. using concrete03 material.
these might help.
Pejman
pejman_opensees
Posts: 123
Joined: Tue Oct 31, 2006 10:40 am
Location: k.n.toosi University

Post by pejman_opensees »

By the way I dont think you should expect any descending branch in your problem not considering geometric nonlinearities. I recommand you having look at the following paper:
"INELASTIC ANALYSIS OF FAMED STRUCTURE USING THE FIBER APPROACH" by Iason Papaioannou et al.
BUT if you include geometric nonlinearities you can capture the peak as well as post peak branch.what you should do is change the transformation to Corotational and it will work but justification of the results is up to you.
do me a favor and let me know if this approach has justifiable results or not because I personaly doubt wether it is right to do so!
Pejman
Post Reply