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
Problem with results in a cantilever RC column
Moderators: silvia, selimgunay, Moderators
-
- Posts: 1
- Joined: Fri Sep 21, 2012 12:10 am
- Location: Kerman, Iran