A simple drawing test to simulate bond slip

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

Moderators: silvia, selimgunay, Moderators

Post Reply
SUMMERER
Posts: 16
Joined: Wed Jun 03, 2020 6:36 pm

A simple drawing test to simulate bond slip

Post by SUMMERER » Wed Jun 03, 2020 7:19 pm

Hi, I'm an Opensees beginner and I'm doing a simple pull-out test simulation: a pull-out test on an 810*810*180mm concrete center rebar (180mm) to get a bond slip curve,Bond SP01 is used for bond slip material。

My problem was that when I used Bond_SP01 the slip curve I got was the same shape as the steel bar, not the no drop section on the official website, while when I used Barslip material the calculation resulted in only one force and displacement.Have a great god to help me see!

My code is as follows:

#SET UP(考虑粘结滑移)----------------------------------------------------------------------
wipe; ;# 清除内存
puts "System"
source LibUnits.tcl
model BasicBuilder -ndm 3 -ndf 3; ;# 定义系统,结点维数为3,自由度数为3(单位制为N,mm)
#set dataDir bukaolvnianjiie; # set up name for data directory
#file mkdir $dataDir/; # create data directory

#define GEOMETRY--------------------------------------------------------------
#----定义混凝土参数-------
#--define material parameters for the model
#---bulk modulus
set k [expr 17400*$MPa];#27777.78
#---shear modulus
set G [expr 15300*$MPa];#9259.26
#---yield stress
set sigY 5.0
#---failure surface and associativity
set rho 0.398
set rhoBar 0.398
#---isotropic hardening
set Kinf 0.0
set Ko 0.0
set delta1 0.0
#---kinematic hardening
set H 0.0
set theta 1.0
#---tension softening
set delta2 0.0
#---mass density
set mDen 1.7

#--material models
# type tag k G sigY rho rhoBar Kinf Ko delta1 delta2 H theta density
nDMaterial DruckerPrager 2 $k $G $sigY $rho $rhoBar $Kinf $Ko $delta1 $delta2 $H $theta $mDen


set eleArgs "2"
set element bbarBrick
#set element stdBrick
set nx 2
set ny 2
set nz 2
set nn [expr ($nz+1)*($nx+1)*($ny+1)]
set eleN [expr $nz*$nx*$ny]

#mesh generation ;#使用block3D命令建立节点和单元数
block3D $nx $ny $nz 1 1 $element $eleArgs {
1 405 405 -90
2 -405 405 -90
3 -405 -405 -90
4 405 -405 -90
5 405 405 90
6 -405 405 90
7 -405 -405 90
8 405 -405 90
}
#taking nodes and elements information as output
for { set i 1 } { $i <= 27} { incr i } {
print output/nodes.txt -node $i
}
for { set i 1 } { $i <= 8} { incr i } {
print output/elements.txt -ele $i
}
print bukaolvnianjiie/nodeinfo.out -nodeRange 1 27
print bukaolvnianjiie/eleinfo.out -eleRange 1 8

puts "Conc ok"
#----定义钢筋几何----
node 100 0 0 -90; # 结点坐标 号码 X坐标 Y坐标 Z坐标
node 101 0 0 0;
node 102 0 0 90;
fix 100 1 1 1;
fix 101 1 1 0;
fix 102 1 1 0;


fixZ -90 1 1 1 ;
#fixZ 90 1 1 1 ;

#----定义HRB335Steel02钢筋参数----
set trussMatTag 10;#材料编号
set Fy2 [expr 365.2*$MPa];#屈服强度
set E2 [expr 200*$GPa];#弹性模量
set b2 0.02;#硬化系数
set R0_2 20;#弹性转变为塑性参数1,取10~20
set cR1_2 0.925;#弹性转变为塑性参数2,取0.925
set cR2_2 0.15;#弹性转变为塑性参数3,取0.15
set a1 0.3
set a2 1;#大于0
set a3 0
set a4 1
set trussA [expr 3.14*6*$mm*6*$mm]
#----定义ReinforcingSteel钢筋参数----
set trussMatTag 10;#材料编号
set matTag13 13;#材料编号
set fy3 [expr 400*$MPa];#屈服强度
set fu3 [expr 600*$MPa];#受拉极限强度
set Es3 [expr 198.*$GPa];#初始弹模
set Esh3Data 6.6;
set Esh3 [expr $Esh3Data*$GPa];#初始硬化模量
set esh3 0.0150;#初始硬化应变,需大于等于0.003不出错
set eult3 0.130;#峰值应变,大于等于0.05不出错
set Cf 0.14
set alpha 0.4
set Cd 0.379
#uniaxialMaterial Steel02 $trussMatTag $Fy2 $E2 $b2 $R0_2 $cR1_2 $cR2_2 $a1 $a2 $a3 $a4
uniaxialMaterial ReinforcingSteel $trussMatTag $fy3 $fu3 $Es3 $Esh3 $esh3 $eult3 -CMFatigue $Cf $alpha $Cd
#uniaxialMaterial ReinforcingSteel $trussMatTag 4.52E8 6.39E8 1.98E11 6.6E9 0.00164 0.01339 -CMFatigue 0.14 0.379 0.379

element Truss 100 100 101 $trussA $trussMatTag
element Truss 101 101 102 $trussA $trussMatTag

puts "RF ok"
#----定义零长度单元----
set db [expr 180*$mm] ;
set ld [expr 12*$mm] ;
set nb 1 ;
set dep [expr 810*$mm] ;
set hei [expr 810*$mm] ;

#uniaxialMaterial BarSlip $matTag $fc $fy $Es $fu $Eh $db $ld $nb $depth $height <$ancLratio> $bsFlag $type <$damage $unit>
#uniaxialMaterial BarSlip 400 [expr 34.5*$MPa] $fy3 $Es3 $fu3 $Esh3 $db $ld $nb $dep $hei strong column
uniaxialMaterial Bond_SP01 400 $fy3 0.391548 $fu3 13.70418 0.4 0.6

element zeroLength 200 5 100 -mat 400 -dir 3
element zeroLength 201 14 101 -mat 400 -dir 3
element zeroLength 202 23 102 -mat 400 -dir 3

puts "Bond ok"
#记录--------------------------------------------------------
recorder Node -file jd-102force_disp.txt -time -node 102 -dof 3 disp; # Displacements of node 102;#记录钢筋受力后的位移
recorder Node -file jd-101force_disp.txt -time -node 101 -dof 3 disp; # Displacements of node 102;#记录钢筋受力后的位移
recorder Node -file jd-100force_disp.txt -time -node 100 -dof 3 disp; # Displacements of node 102;#记录钢筋受力后的位移
#recorder Element -file dy-SPforce_disp.txt -time -element 200 201 202 -dof 3 disp;


puts "record ok"
puts "analyze start"
#分析---------------------------------------------------------
set nstep 1000;
set rdrifRatio 0.03; # the roof drift ratio

set iter 1000;
set Tol 1.0e-9;

set dU [expr 0.1*$mm]
set Hload [expr 1*$N]
pattern Plain 100 Linear {
load 102 0.0 0.0 $Hload;

}
# change the ratio of load will change the results of floor one.
# analysis parameter
#integrator DisplacementControl $node $dof $incr <$numIter $ΔUmin $ΔUmax>
# !!!for case 1 (1 element per column/beam), set $node 5; for case 2 (3 element per column/beam), set $node 7; case 3, set 11
integrator DisplacementControl 102 3 $dU;
#integrator LoadControl 0.1;
#test NormDispIncr $tol $iter <$pFlag> <$nType>
test NormDispIncr $Tol $iter
system BandGeneral
numberer Plain
constraints Plain
algorithm Newton
#algorithm NewtonLineSearch 0.5
analysis Static
analyze 100

set ok 0
set step 1
while {$ok == 0 & $step <= $nstep} {
set ok [analyze 1]
set step [expr $step+1]
puts "step $step"
}
wipe;


# spit out a SUCCESS or FAILURE MESSAGE
if {$ok == 0} {
puts "Pushover analysis completed SUCCESSFULLY";
} else {
puts "Pushover analysis FAILED";
}

Post Reply