Problem with results in a cantilever RC column

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

Moderators: silvia, selimgunay, Moderators

Post Reply
rezabahonar
Posts: 1
Joined: Fri Sep 21, 2012 12:10 am
Location: Kerman, Iran

Problem with results in a cantilever RC column

Post by rezabahonar » Mon Nov 05, 2018 10:00 pm

Hello everyone,
I am trying to model a simple cantilever reinforced concrete column using OpenSees, I performed a nonlinear static analysis (pushover).
When I check the outputs (Force-Displacement), the results do not make sense. The maximum force is very close to what I calculated, but It fails very fast in very small displacement, and it does not have the ductile behavior that I expect. I really appreciate it if anyone can help me and tell me where I did wrong.

----------------------------------------------------------------------------------------------------------------------------------------------------
# units: kip, in, sec
wipe; # clear memory of all past model definitions

logFile "RCCantileverBeam.log"
set systemTime [clock seconds]

puts "==============================================================================="
puts "OpenSees Navigator: Version 2.5.8"
puts "Starting OpenSees analysis: [clock format $systemTime -format "%d-%b-%Y %H:%M:%S"]"
puts "==============================================================================="

# Start timing of this analysis sequence
# --------------------------------------
set tStart [clock clicks -milliseconds]

# Start of model generation
# =========================

# Create ModelBuilder
# -------------------
model BasicBuilder -ndm 2 -ndf 3

# Define geometry
# ---------------
set Width 1.2000000000E+01; # inch
set Hight 1.8000000000E+01; # inch
set Length 6.0000000000E+01; # inch
set CoverBT 7.5000000000E-01; # inch
set CoverLR 1.2500000000E+00; # inch

# Unconfined Concrete

set fc -6.0000000000E+00; # ksi
set Ec [expr 5.7000000000E+01*sqrt(-$fc*1000)]; # ksi
set Epsilonc0 [expr 2.0000000000E+00*$fc/$Ec];
set fcu 0.0000000000E+00; # ksi
set Epsiloncu -5.0000000000E-03;
set ft [expr -4.0000000000E-02*$fc]; # ksi
set Et [expr -$ft/$Epsilonc0];

# Confined Concrete
set fcc -6.0000000000E+00; # ksi
set Epsiloncc0 [expr 2.0000000000E+00*$fc/$Ec];
set fccu 0.0000000000E+00; # ksi
set Epsilonccu -5.0000000000E-03;
set fct [expr -4.0000000000E-02*$fcc]; # ksi
set Ect [expr -$fct/$Epsiloncc0];

set fy 7.0000000000E+01; # ksi
set fu 9.0000000000E+01; # ksi
set Es 2.9000000000E+04; # ksi

set MRD 7.5000000000E-01
set LRD 3.7500000000E-01
set TRD 3.7500000000E-01

set numfiber 20
set numEle 10;
set numNodes [expr $numEle+1];


# source NodeCoord.tcl
for { set i 1 } { $i <= $numNodes } { incr i } {
# Node tag xCrd yCrd ndf <-mass>
node $i 0.000000E+00 [expr ($i-1)*$Length/$numEle] -ndf 3
puts "node $i 0.000000E+00 [expr ($i-1)*$Length/$numEle] -ndf 3"
}

# Define single point constraints
# -------------------------------
# source SPConstraint.tcl

# SPC tag Dx Dy Rz
fix 1 1 1 1

# Define material(s)
# ------------------
# source Materials.tcl

# uniaxialMaterial Concrete02 $matTag $fpc $epsc0 $fpcu $epsU $lambda $ft $Ets
uniaxialMaterial Concrete02 1 $fcc $Epsiloncc0 $fccu $Epsilonccu 0.1 $fct $Ect
puts "uniaxialMaterial Concrete02 1 $fcc $Epsiloncc0 $fccu $Epsilonccu 0.1 $fct $Ect"

# uniaxialMaterial Concrete02 $matTag $fpc $epsc0 $fpcu $epsU $lambda $ft $Ets
uniaxialMaterial Concrete02 2 $fc $Epsilonc0 $fcu $Epsiloncu 0.1 $ft $Et
puts "uniaxialMaterial Concrete02 2 $fc $Epsilonc0 $fcu $Epsiloncu 0.1 $ft $Et"

# uniaxialMaterial Steel02 $matTag $Fy $E $b $R0 $cR1 $cR2 <$a1 $a2 $a3 $a4 $sigInit>
uniaxialMaterial Steel02 4 $fy $Es +0.000000E+00 +2.000000E+01 +9.250000E-01 +1.500000E-01
puts "uniaxialMaterial Steel02 4 $fy $Es +0.000000E+00 +2.000000E+01 +9.250000E-01 +1.500000E-01"

# uniaxialMaterial MinMax $matTag $otherTag <-min $minStrain> <-max $maxStrain>
uniaxialMaterial MinMax 3 4 -min -8.000000E-02 -max 8.000000E-02
puts "uniaxialMaterial MinMax 3 4 -min -1.000000E-01 -max 1.000000E-01"

# Define section(s)
# -----------------
# source Sections.tcl

# Section "CouplingBeamSec1": secTag
section Fiber 1 {
# patch rect $matTag $numSubdivY $numSubdivZ $yI $zI $yJ $zJ
patch rect 1 $numfiber $numfiber [expr -0.5*$Hight+$CoverBT+0.5*$TRD] [expr -0.5*$Width+$CoverLR+0.5*$TRD] [expr +0.5*$Hight-$CoverBT-0.5*$TRD] [expr +0.5*$Width-$CoverLR-0.5*$TRD] # CoreConcrete
puts "patch rect 1 $numfiber $numfiber [expr -0.5*$Hight+$CoverBT+0.5*$TRD] [expr -0.5*$Width+$CoverLR+0.5*$TRD] [expr +0.5*$Hight-$CoverBT-0.5*$TRD] [expr +0.5*$Width-$CoverLR-0.5*$TRD] # CoreConcrete"

patch rect 2 $numfiber $numfiber [expr -0.5*$Hight] [expr -0.5*$Width] [expr -0.5*$Hight+$CoverBT+0.5*$TRD] [expr +0.5*$Width] # BottomCoverConcrete
puts "patch rect 2 $numfiber $numfiber [expr -0.5*$Hight] [expr -0.5*$Width] [expr -0.5*$Hight+$CoverBT+0.5*$TRD] [expr +0.5*$Width] # BottomCoverConcrete"

patch rect 2 $numfiber $numfiber [expr -0.5*$Hight+$CoverBT+0.5*$TRD] [expr +0.5*$Width-$CoverLR-0.5*$TRD] [expr +0.5*$Hight-$CoverBT-0.5*$TRD] [expr +0.5*$Width] # LeftCoverConcrete
puts "patch rect 2 $numfiber $numfiber [expr -0.5*$Hight+$CoverBT+0.5*$TRD] [expr +0.5*$Width-$CoverLR-0.5*$TRD] [expr +0.5*$Hight-$CoverBT-0.5*$TRD] [expr +0.5*$Width] # LeftCoverConcrete"

patch rect 2 $numfiber $numfiber [expr -0.5*$Hight+$CoverBT+0.5*$TRD] [expr -0.5*$Width] [expr +0.5*$Hight-$CoverBT-0.5*$TRD] [expr -0.5*$Width+$CoverLR+0.5*$TRD] # RightCoverConcrete
puts "patch rect 2 $numfiber $numfiber [expr -0.5*$Hight+$CoverBT+0.5*$TRD] [expr -0.5*$Width] [expr +0.5*$Hight-$CoverBT-0.5*$TRD] [expr -0.5*$Width+$CoverLR+0.5*$TRD] # RightCoverConcrete"

patch rect 2 $numfiber $numfiber [expr +0.5*$Hight-$CoverBT-0.5*$TRD] [expr -0.5*$Width] [expr +0.5*$Hight] [expr +0.5*$Width] # TopCoverConcrete
puts "patch rect 2 $numfiber $numfiber [expr +0.5*$Hight-$CoverBT-0.5*$TRD] [expr -0.5*$Width] [expr +0.5*$Hight] [expr +0.5*$Width] # TopCoverConcrete"

# layer straight matTag numBar areaBar yStart zStart yEnd zEnd
# layer straight 3 3 4.400000E-01 [expr -0.5*$Hight+$CoverBT+$TRD+0.5*$MRD] [expr +0.5*$Width-$CoverLR-$TRD-0.5*$MRD] [expr -0.5*$Hight+$CoverBT+$TRD+0.5*$MRD] [expr -0.5*$Width+$CoverLR+$TRD+0.5*$MRD] # BottomLongitudinalRebar
# puts "layer straight 3 3 4.400000E-01 [expr -0.5*$Hight+$CoverBT+$TRD+0.5*$MRD] [expr +0.5*$Width-$CoverLR-$TRD-0.5*$MRD] [expr -0.5*$Hight+$CoverBT+$TRD+0.5*$MRD] [expr -0.5*$Width+$CoverLR+$TRD+0.5*$MRD] # BottomLongitudinalRebar"

# layer straight 3 3 1.100000E-01 [expr 0.5*(-0.5*$Hight+$CoverBT+$TRD+0.5*$MRD)] [expr +0.5*$Width-$CoverLR-$TRD-0.5*$LRD] [expr 0.5*(+0.5*$Hight-$CoverBT-$TRD-0.5*$MRD)] [expr +0.5*$Width-$CoverLR-$TRD-0.5*$LRD] # LeftLongitudinalRebar
# puts "layer straight 3 3 1.100000E-01 [expr 0.5*(-0.5*$Hight+$CoverBT+$TRD+0.5*$MRD)] [expr +0.5*$Width-$CoverLR-$TRD-0.5*$LRD] [expr 0.5*(+0.5*$Hight-$CoverBT-$TRD-0.5*$MRD)] [expr +0.5*$Width-$CoverLR-$TRD-0.5*$LRD] # LeftLongitudinalRebar"

# layer straight 3 3 1.100000E-01 [expr 0.5*(-0.5*$Hight+$CoverBT+$TRD+0.5*$MRD)] [expr -0.5*$Width+$CoverLR+$TRD+0.5*$LRD] [expr 0.5*(+0.5*$Hight-$CoverBT-$TRD-0.5*$MRD)] [expr -0.5*$Width+$CoverLR+$TRD+0.5*$LRD] # RightLongitudinalRebar
# puts "layer straight 3 3 1.100000E-01 [expr 0.5*(-0.5*$Hight+$CoverBT+$TRD+0.5*$MRD)] [expr -0.5*$Width+$CoverLR+$TRD+0.5*$LRD] [expr 0.5*(+0.5*$Hight-$CoverBT-$TRD-0.5*$MRD)] [expr -0.5*$Width+$CoverLR+$TRD+0.5*$LRD] # RightLongitudinalRebar"

layer straight 3 3 4.400000E-01 [expr +0.5*$Hight-$CoverBT-$TRD-0.5*$MRD] [expr +0.5*$Width-$CoverLR-$TRD-0.5*$MRD] [expr +0.5*$Hight-$CoverBT-$TRD-0.5*$MRD] [expr -0.5*$Width+$CoverLR+$TRD+0.5*$MRD] # TopLongitudinalRebar
puts "layer straight 3 3 4.400000E-01 [expr +0.5*$Hight-$CoverBT-$TRD-0.5*$MRD] [expr +0.5*$Width-$CoverLR-$TRD-0.5*$MRD] [expr +0.5*$Hight-$CoverBT-$TRD-0.5*$MRD] [expr -0.5*$Width+$CoverLR+$TRD+0.5*$MRD] # TopLongitudinalRebar"
}

# Define geometric transformation(s)
# ----------------------------------
# source GeoTran.tcl

# GeoTran type tag
# geomTransf Linear 1
geomTransf PDelta 1
# geomTransf Corotational 1

# Define element(s)
# -----------------
# source Elements.tcl

for { set i 1 } { $i <= $numEle } { incr i } {
# Element "ForceCouplingBeam": eleTag NodeI NodeJ NIP secTag geoTranTag <-mass massDens> <-iter maxIters tol>
element forceBeamColumn $i $i [expr $i+1] 5 1 1 -mass +0.000000E+00 -iter 10 +1.000000E-12 -integration Lobatto
puts "element forceBeamColumn $i $i [expr $i+1] 5 1 1"
}

# Start of analysis generation
# ============================

# Get initial stiffness
# ---------------------
initialize

puts "Analysis: PushOver"
# ~~~~~~~~~~~~~~~~~~~~~~~~~

# Define load pattern
# -------------------
# source LoadPattern.tcl

# LoadPattern "PushOver": patternTag tsTag factor
pattern Plain 1 Linear -fact +1.000000E+00 {
# Load nodeTag LoadValues
load $numNodes +1.000000E+00 +0.000000E+00 +0.000000E+00
}
# Define recorder(s)
# ------------------
# source Recorder.tcl
# Recorder.tcl

# Node Recorder "DefoShape": fileName <nodeTag> dof respType
recorder Node -file PushOver_Node_DefoShape_Dsp.out -time -nodeRange 1 $numNodes -dof 1 2 3 disp

# BeamColumn Recorder "ElementForce": fileName <eleTag> arguments
recorder Element -file PushOver_BeamColumn_ElementForce_GlbForc.out -time -eleRange 1 $numEle force

# Define analysis options
# -----------------------
# source AnalysisOptn.tcl

# AnalysisOptn "PushOver": Type: Static
# -------------------------------------
# Constraint Handler
constraints Plain
# DOF Numberer
numberer RCM
# System of Equations
system BandGeneral
# Convergence Test
test EnergyIncr +1.0E-06 1000 0 2
# test NormDispIncr +1.0E-06 1000 0 2
# Solution Algorithm
# algorithm Newton
algorithm KrylovNewton

# Integrator
integrator DisplacementControl $numNodes 1 [expr $Length/10000]
puts "[expr $Length/10000]"
# Analysis Type
analysis Static

# Record initial state of model
# -----------------------------
record

# Analyze model
# -------------
analyze 90

# Stop timing of this analysis sequence
# -------------------------------------
set tStop [clock clicks -milliseconds]
puts "Time taken: [expr ($tStop-$tStart)/1000.0] sec"

# Clean up
# --------
wipe
set systemTime [clock seconds]
puts "\n==============================================================================="
puts "Finished OpenSees analysis: [clock format $systemTime -format "%d-%b-%Y %H:%M:%S"]"
puts "==============================================================================="
exit

Post Reply