different results in symmetry modeling

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

Moderators: silvia, selimgunay, Moderators

Post Reply
mijin
Posts: 8
Joined: Tue Sep 15, 2015 5:16 am
Location: PNU

different results in symmetry modeling

Post by mijin »

Hi all,
I'm trying to analysis of cycle loading and my model is related to the selfcentering connection which means there's no residual deformation by using the elastic force of strands across the beam and energy dissipator installed between beam flange and column flange.
First, I'm done exterior connection successfully. It was fitted with experiment results and there were no problems in analysis.
Second, I'm modeling interior connection which is perfect symmetry model of exterior connection.

However, I faced with significant problem.
In doing interior connection, Analysis results of left beam and strands based on center column are unbelievably different from that of right beam and strands.
one side fairly matches up experimental results. I don't know what happened. I used exactly same material, element and constraints both of them.
At first, I thought that this problem has directly connected to analysis parameter such as test or solver. However, if so, results of both side would be different from experiment outcome!! Why the results are dissimilar each other?

if you don't mind, I wanna send you email including script file and some explanation of model ( picture)
Here is my script below.. I know you are very busy but, I appreciate you if you check my script code..
-------------------------------------------------------------------------------------------------------------------------------------------------------------
#nodal coordinates: unit kN,mm

#initial conditions

set h 3658.0;
set l 3048.0;
set bh 602.0;
set ch 434.0;
set t 30;

# create nodes for column

node 11 0.0 [expr -$h/2] ;
node 12 0.0 [expr $h/2] ;
node 13 0.0 [expr $bh/2] ;
node 14 0.0 [expr -$bh/2] ;
#node 15 0.0 [expr $bh/2] ;
#node 16 0.0 [expr -$bh/2] ;
#node 17 0.0 [expr $bh/2-$t] ;
#node 18 0.0 [expr -$bh/2+$t] ;


# nodes for beam

node 21 -$l 0.0 ;
node 22 $l 0.0;
node 23 0.0 0.0;


# nodes for panel zone

node 31 [expr -$ch/2] 0.0;
node 32 [expr -$ch/2] [expr $bh/2];
node 33 [expr -$ch/2] [expr -$bh/2];

node 41 [expr $ch/2] 0.0;
node 42 [expr $ch/2] [expr $bh/2];
node 43 [expr $ch/2] [expr -$bh/2];

# nodes for gap opening

node 51 [expr -$ch/2] 0.0;
node 52 [expr -$ch/2] [expr $bh/2];
node 53 [expr -$ch/2] [expr -$bh/2];

node 61 [expr $ch/2] 0.0;
node 62 [expr $ch/2] [expr $bh/2];
node 63 [expr $ch/2] [expr -$bh/2];

# assign boundary condidtions
# command: fix nodeID dxFixity dyFixity rzFixity
# fixity values: 1 = constrained; 0 = unconstrained

fix 11 1 1 0; # column
fix 21 0 1 0; # beam
fix 22 0 1 0; # beam

# constrain slave node to master node
# command: equalDOF $rNodeTag $cNodeTag $dof1 $dof2 ..

equalDOF 51 31 2;
equalDOF 61 41 2;
#equalDOF 13 15 1 2 ;
#equalDOF 14 16 1 2 ;


rigidLink beam 13 32;
rigidLink beam 13 42;
rigidLink beam 14 33;
rigidLink beam 14 43;
rigidLink beam 61 62;
rigidLink beam 61 63;
rigidLink beam 51 52;
rigidLink beam 51 53;
#rigidLink beam 23 15;
#rigidLink beam 23 16;
rigidLink beam 23 31;
rigidLink beam 23 41;


puts "Geometry done!!"

###################################################################################################
# Define Section Properties and Elements
###################################################################################################

geomTransf Linear 1;


# Beam and Column ########################################

# Material parameters

set Es 205;
set Fy_bf 0.230;
set Fy_bw 0.266;
set b 0.015 ;

set mat_f 1;
set mat_w 2;
uniaxialMaterial Steel01 $mat_f $Fy_bf $Es $b ;
uniaxialMaterial Steel01 $mat_w $Fy_bw $Es $b ;

# Structure -Steel H section properties

set SecTag_b 1 ;
set SecTag_c 2 ;

#Steel H Section size

# H[mm] B[mm] tw[mm] tf[mm] Area[mm2] Ixx[mm4] Iyy[mm4]
# 602 179 10.9 15.0 11700 645000000 14400000 [Beam]
# 434 411 35.8 57.4 1800000000 670000000 [Column]

# Beam input data

set H_b 612 ; # nominal depth
set B_b 179 ; # flange width
set tw_b 10.9 ; # web thickness
set tf_b 15.0 ; # flange thickness
set nfdw_b 4 ; # number of fibers along web depth
set nftw_b 1 ; # number of fibers along web thickness
set nfbf_b 4 ; # number of fibers along flange width
set nftf_b 1 ; # number of fibers along flange thickness

set dw_b [expr $H_b-2*$tf_b] ;
set y1_b [expr -$H_b/2] ;
set y2_b [expr -$dw_b/2] ;
set y3_b [expr $dw_b/2] ;
set y4_b [expr $H_b/2] ;

set z1_b [expr -$B_b/2] ;
set z2_b [expr -$tw_b/2] ;
set z3_b [expr $tw_b/2] ;
set z4_b [expr $B_b/2] ;



section fiberSec $SecTag_b {
# nfIJ nfJK yI zI yJ zJ yK zK yL zL
patch quadr $mat_f $nfbf_b $nftf_b $y1_b $z4_b $y1_b $z1_b $y2_b $z1_b $y2_b $z4_b ;
patch quadr $mat_w $nftw_b $nfdw_b $y2_b $z3_b $y2_b $z2_b $y3_b $z2_b $y3_b $z3_b ;
patch quadr $mat_f $nfbf_b $nftf_b $y3_b $z4_b $y3_b $z1_b $y4_b $z1_b $y4_b $z4_b ;
}

# Column input data

set H_c 434 ; # nominal depth
set B_c 411 ; # flange width
set tw_c 35.8 ; # web thickness
set tf_c 57.4 ; # flange thickness
set nfdw_c 4 ; # number of fibers along web depth
set nftw_c 1 ; # number of fibers along web thickness
set nfbf_c 4 ; # number of fibers along flange width
set nftf_c 1 ; # number of fibers along flange thickness

set dw_c [expr $H_c-2*$tf_c] ;
set y1_c [expr -$H_c/2] ;
set y2_c [expr -$dw_c/2] ;
set y3_c [expr $dw_c/2] ;
set y4_c [expr $H_c/2] ;

set z1_c [expr -$B_c/2] ;
set z2_c [expr -$tw_c/2] ;
set z3_c [expr $tw_c/2] ;
set z4_c [expr $B_c/2] ;


section fiberSec $SecTag_c {
# nfIJ nfJK yI zI yJ zJ yK zK yL zL
patch quadr $mat_f $nfbf_c $nftf_c $y1_c $z4_c $y1_c $z1_c $y2_c $z1_c $y2_c $z4_c ;
patch quadr $mat_w $nftw_c $nfdw_c $y2_c $z3_c $y2_c $z2_c $y3_c $z2_c $y3_c $z3_c ;
patch quadr $mat_f $nfbf_c $nftf_c $y3_c $z4_c $y3_c $z1_c $y4_c $z1_c $y4_c $z4_c ;
}

# Angle ########################################

#material parameters

set e1p 0.58 ;
set e2p 1.43 ;
set e3p 31.15 ;
set s1p 105.91 ;
set s2p 241.26;
set s3p 580.80;
set e1n [expr -$e1p] ;
set e2n [expr -$e2p] ;
set e3n [expr -$e3p] ;
set s1n [expr -$s1p] ;
set s2n [expr -$s2p] ;
set s3n [expr -$s3p] ;
set pinchX 1;
set pinchY 1;
set damage1 0.0;
set damage2 0.0;

set mat_a 3 ;

uniaxialMaterial Hysteretic $mat_a $s1p $e1p $s2p $e2p $s3p $e3p $s1n $e1n $s2n $e2n $s3n $e3n $pinchX $pinchY $damage1 $damage2 ;

# Pt_bar ########################################

# PT_bar parameters

set mat_pt1 4 ;
set E_pt 199 ;
set epsyP_pt 0.00656 ;
set mat_pt2 5 ;
set initstress 0.634
set A_pt 1120;
set mat_gap 6;
set mat_ang 7;
set sec_a 3;

uniaxialMaterial Elastic $mat_pt1 $E_pt $epsyP_pt;
uniaxialMaterial InitStressMaterial $mat_pt2 $mat_pt1 $initstress ;
uniaxialMaterial ENT $mat_gap 1.e10 ;
uniaxialMaterial Parallel $mat_ang $mat_a $mat_gap;

section Uniaxial $sec_a $mat_a P;
puts "Material Done!!"

# Define Elements

#Column

element dispBeamColumn 11 11 14 5 $SecTag_c 1 ;
element dispBeamColumn 12 12 13 5 $SecTag_c 1 ;

element dispBeamColumn 13 13 23 5 $SecTag_c 1 ;
element dispBeamColumn 14 14 23 5 $SecTag_c 1 ;

#Beam

element dispBeamColumn 21 21 51 5 $SecTag_b 1 ;
element dispBeamColumn 22 22 61 5 $SecTag_b 1 ;

#Gap opening Spring & Angle

element zeroLength 31 32 52 -mat $mat_ang -dir 1;
element zeroLength 32 42 62 -mat $mat_ang -dir 1;
element zeroLength 33 33 53 -mat $mat_ang -dir 1;
element zeroLength 34 43 63 -mat $mat_ang -dir 1;

# strands

element truss 51 21 31 $A_pt $mat_pt2 ;
element truss 52 22 41 $A_pt $mat_pt2 ;

puts "Element connection done!!"

puts "Element connection done!!"

# Define RECORDERS -------------------------------------------------------------

recorder Node -file $dataDir/Pdelta(reliability).out -time -node 12 32 33 52 53 42 43 -dof 1 disp;
recorder Element -file $dataDir/PT(reliability).out -time -ele 51 52 axialForce;
recorder Element -file $dataDir/beam(reliability).out -time -ele 21 22 globalForce;
recorder Element -file $dataDir/angle(reliability).out -ele 31 32 force;

puts "Modeling Done!!"


# we need to set up parameters that are particular to the model.
set IDctrlNode 12; # node where displacement is read for displacement control
set IDctrlDOF 1; # degree of freedom of displacement read for displacement control
set LCol 1; #inflectionpoints
# characteristics of cyclic analysis
set iDmax "3.7 7.32 11.0 14.6 18.3 25.6 36.58 54.87 73.2 91.5 109.7 128"; # vector of displacement-cycle peaks, in terms of storey drift ratio
set Dincr [expr 0.1*$LCol]; # displacement increment for pushover. you want this to be very small, but not too small to slow down the analysis
set Fact $LCol; # scale drift ratio by storey height for displacement cycles
set CycleType Full; # you can do Full / Push / Half cycles with the proc
set Ncycles 1; # specify the number of cycles at each peak

# create load pattern for lateral pushover load
set Hload 1; # define the lateral load as a proportion of the weight so that the pseudo time equals the lateral-load coefficient when using linear load pattern
set iPushNode 12;
# define nodes where lateral load is applied in static lateral analysis
pattern Plain 200 Linear {; # define load pattern -- generalized
foreach PushNode $iPushNode {
load $PushNode $Hload 0.0 0.0;
}
}


# ----------- set up analysis parameters
source LibAnalysisStaticParameters.tcl; # constraintsHandler,DOFnumberer,system-ofequations,convergenceTest,solutionAlgorithm,integrator

# --------------------------------- perform Static Cyclic Displacements Analysis
source LibGeneratePeaks.tcl
set fmt1 "%s Cyclic analysis: CtrlNode %.3i, dof %.1i, Disp=%.4f %s"; # format for screen/file output of DONE/PROBLEM analysis
foreach Dmax $iDmax {
set iDstep [GeneratePeaks $Dmax $Dincr $CycleType $Fact]; # this proc is defined above
for {set i 1} {$i <= $Ncycles} {incr i 1} {
set zeroD 0
set D0 0.0
foreach Dstep $iDstep {
set D1 $Dstep
set Dincr [expr $D1 - $D0]
integrator DisplacementControl $IDctrlNode $IDctrlDOF $Dincr
analysis Static
# ----------------------------------------------first analyze command------------------------
set ok [analyze 1]
# ----------------------------------------------if convergence failure-------------------------
if {$ok != 0} {
# if analysis fails, we try some other stuff
# performance is slower inside this loop global maxNumIterStatic; # max no. of iterations performed before "failure to converge" is ret'd
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 2000 0
algorithm Newton -initial
set ok [analyze 1]
test $testTypeStatic $TolStatic $maxNumIterStatic 0
algorithm $algorithmTypeStatic
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 ]
algorithm $algorithmTypeStatic
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch 0.8
set ok [analyze 1]
algorithm $algorithmTypeStatic
}
if {$ok != 0} {
set putout [format $fmt1 "PROBLEM" $IDctrlNode $IDctrlDOF [nodeDisp $IDctrlNode $IDctrlDOF] $LunitTXT]
puts $putout
return -1
}; # end if
}; # end if
# -----------------------------------------------------------------------------------------------------
set D0 $D1; # move to next step
}; # end Dstep
}; # end i
}; # end of iDmaxCycl
# -----------------------------------------------------------------------------------------------------
if {$ok != 0 } {
puts [format $fmt1 "PROBLEM" $IDctrlNode $IDctrlDOF [nodeDisp $IDctrlNode $IDctrlDOF] "mm" ]
} else {
puts [format $fmt1 "DONE" $IDctrlNode $IDctrlDOF [nodeDisp $IDctrlNode $IDctrlDOF] "mm" ]
}
Post Reply