I have a simple question..
How can i plot the P-u diagram of a reinforced concrete column, with a horizontal force on the top?
The target should be a displacement value or a force value?
Which recorders are useful?
Is there any example about that?
Thank you.
P-u diagram
Moderators: silvia, selimgunay, Moderators
look at the cantliver column example in the examples manual.
you need to record the support reaction and the node displacement (for a problem like this, i think you can record the reaction at the top node, see what it gives you)
you need to record the support reaction and the node displacement (for a problem like this, i think you can record the reaction at the top node, see what it gives you)
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
First of all i need to find and design the moment-curvature diagram.
I try to find the values but i find various problems..
*************************************************************
Here is the model
*************************************************************
# Define model builder
# --------------------
model basic -ndm 2 -ndf 3
# Units KN,m,sec
# Define materials for nonlinear columns
# ------------------------------------------
# CONCRETE tag f'c ec0 f'cu ecu
# Core concrete (confined)
uniaxialMaterial Concrete01 1 -25000 -0.0022 -10000 -0.0033
# Cover concrete (unconfined)
uniaxialMaterial Concrete01 2 -20000 -0.0022 -8000 -0.0034
# STEEL
# Reinforcing steel
set fy 500000; # Yield stress
set E 200000000.0; # Young's modulus
# tag fy E0 b
uniaxialMaterial Steel01 3 $fy $E 0.01
# Define cross-section for nonlinear columns
# ------------------------------------------
# set some paramaters
set colWidth 1.0
set colDepth 1.5
set cover 0.1
set As 0.00000314; # area of no. 7 bars
# some variables derived from the parameters
set y1 [expr $colDepth/2.0]
set z1 [expr $colWidth/2.0]
set d1 0.16
section Fiber 1 {
# Create the concrete core fibers
patch rect 1 15 1 [expr $cover-$y1] [expr $cover-$z1] [expr $y1-$cover] [expr $z1-$cover]
# Create the concrete cover fibers (top, bottom, left, right)
patch rect 2 15 1 [expr -$y1] [expr $z1-$cover] $y1 $z1
patch rect 2 15 1 [expr -$y1] [expr -$z1] $y1 [expr $cover-$z1]
patch rect 2 1 10 [expr -$y1] [expr $cover-$z1] [expr $cover-$y1] [expr $z1-$cover]
patch rect 2 1 10 [expr $y1-$cover] [expr $cover-$z1] $y1 [expr $z1-$cover]
# Create the reinforcing fibers (left, middle, right)
layer straight 3 8 $As [expr $y1-$cover] [expr $z1-$cover] [expr $cover-$y1] [expr $z1-$cover]
layer straight 3 5 $As [expr $y1-$cover] [expr $z1-$cover-$d1] [expr $y1-$cover] [expr $cover+$d1-$z1]
layer straight 3 8 $As [expr $y1-$cover] [expr $cover-$z1] [expr $cover-$y1] [expr $cover-$z1]
layer straight 3 5 $As [expr $cover-$y1] [expr $z1-$cover-$d1] [expr $cover-$y1] [expr $cover+$d1-$z1]
}
# Estimate yield curvature
# (Assuming no axial load and only top and bottom steel)
set d [expr $colDepth-$cover] ;# d -- from cover to rebar
set epsy [expr $fy/$E] ;# steel yield strain
set Ky [expr 39.37*$epsy/(0.7*$d)]
# Print estimate to standard output
puts "Estimated yield curvature: $Ky"
# Set axial load
set P -187.5
set mu 15; # Target ductility for analysis
set numIncr 100; # Number of analysis increments
# Call the section analysis procedure
source metat1.tcl
MomentCurvature 1 $P [expr $Ky*$mu] $numIncr
*************************************************************
Now there is the metat1.tcl file (moment-curvature procedure)
*************************************************************
# A procedure for performing section analysis (only does
# moment-curvature, but can be easily modified to do any mode
# of section reponse.
#
# MHS
# October 2000
#
# Arguments
# secTag -- tag identifying section to be analyzed
# axialLoad -- axial load applied to section (negative is compression)
# maxK -- maximum curvature reached during analysis
# numIncr -- number of increments used to reach maxK (default 100)
#
# Sets up a recorder which writes moment-curvature results to file
# section$secTag.out ... the moment is in column 1, and curvature in column 2
proc MomentCurvature {secTag axialLoad maxK {numIncr 100} } {
# Define two nodes at (0,0)
node 1 0.0 0.0
node 2 0.0 0.0
# Fix all degrees of freedom except axial and bending
fix 1 1 1 1
fix 2 0 1 0
# Define element
# tag ndI ndJ secTag
element zeroLengthSection 1 1 2 $secTag
# Create recorder
recorder Node -file section$secTag.out -time -node 2 -dof 3 disp
# Define constant axial load
pattern Plain 1 "Constant" {
load 2 $axialLoad 0.0 0.0
}
# Define analysis parameters
integrator LoadControl 0.0
system SparseGeneral -piv; # Overkill, but may need the pivoting!
test NormUnbalance 1.0e-9 10
numberer Plain
constraints Plain
algorithm Newton
analysis Static
# Do one analysis for constant axial load
analyze 1
# Define reference moment
pattern Plain 2 "Linear" {
load 2 0.0 0.0 1.0
}
# Compute curvature increment
set dK [expr $maxK/$numIncr]
# Use displacement control at node 2 for section analysis
integrator DisplacementControl 2 3 $dK 1 $dK $dK
# Do the section analysis
analyze $numIncr
}
*************************************************************
The result is:
Estimated yield curvature: 0.100433673469
WARNING: CTestNormUnbalance::test<>-failed to converge
after 10 iterations
NewtnRaphson::solveCurrentStep<> -the ConvergenceTest object failed in test<>
StaticAnalysis::analyze<> -the Algorithm failed at iteration: 0 with domain at
load factor 0.673815
OpenSees > analyze failed, returned: -3 error flag
-3
OpenSees >
*************************************************************
Any ideas of what i need to change in order to find the correct results?
Why can't i achieve convergence?
Thank you.
I try to find the values but i find various problems..
*************************************************************
Here is the model
*************************************************************
# Define model builder
# --------------------
model basic -ndm 2 -ndf 3
# Units KN,m,sec
# Define materials for nonlinear columns
# ------------------------------------------
# CONCRETE tag f'c ec0 f'cu ecu
# Core concrete (confined)
uniaxialMaterial Concrete01 1 -25000 -0.0022 -10000 -0.0033
# Cover concrete (unconfined)
uniaxialMaterial Concrete01 2 -20000 -0.0022 -8000 -0.0034
# STEEL
# Reinforcing steel
set fy 500000; # Yield stress
set E 200000000.0; # Young's modulus
# tag fy E0 b
uniaxialMaterial Steel01 3 $fy $E 0.01
# Define cross-section for nonlinear columns
# ------------------------------------------
# set some paramaters
set colWidth 1.0
set colDepth 1.5
set cover 0.1
set As 0.00000314; # area of no. 7 bars
# some variables derived from the parameters
set y1 [expr $colDepth/2.0]
set z1 [expr $colWidth/2.0]
set d1 0.16
section Fiber 1 {
# Create the concrete core fibers
patch rect 1 15 1 [expr $cover-$y1] [expr $cover-$z1] [expr $y1-$cover] [expr $z1-$cover]
# Create the concrete cover fibers (top, bottom, left, right)
patch rect 2 15 1 [expr -$y1] [expr $z1-$cover] $y1 $z1
patch rect 2 15 1 [expr -$y1] [expr -$z1] $y1 [expr $cover-$z1]
patch rect 2 1 10 [expr -$y1] [expr $cover-$z1] [expr $cover-$y1] [expr $z1-$cover]
patch rect 2 1 10 [expr $y1-$cover] [expr $cover-$z1] $y1 [expr $z1-$cover]
# Create the reinforcing fibers (left, middle, right)
layer straight 3 8 $As [expr $y1-$cover] [expr $z1-$cover] [expr $cover-$y1] [expr $z1-$cover]
layer straight 3 5 $As [expr $y1-$cover] [expr $z1-$cover-$d1] [expr $y1-$cover] [expr $cover+$d1-$z1]
layer straight 3 8 $As [expr $y1-$cover] [expr $cover-$z1] [expr $cover-$y1] [expr $cover-$z1]
layer straight 3 5 $As [expr $cover-$y1] [expr $z1-$cover-$d1] [expr $cover-$y1] [expr $cover+$d1-$z1]
}
# Estimate yield curvature
# (Assuming no axial load and only top and bottom steel)
set d [expr $colDepth-$cover] ;# d -- from cover to rebar
set epsy [expr $fy/$E] ;# steel yield strain
set Ky [expr 39.37*$epsy/(0.7*$d)]
# Print estimate to standard output
puts "Estimated yield curvature: $Ky"
# Set axial load
set P -187.5
set mu 15; # Target ductility for analysis
set numIncr 100; # Number of analysis increments
# Call the section analysis procedure
source metat1.tcl
MomentCurvature 1 $P [expr $Ky*$mu] $numIncr
*************************************************************
Now there is the metat1.tcl file (moment-curvature procedure)
*************************************************************
# A procedure for performing section analysis (only does
# moment-curvature, but can be easily modified to do any mode
# of section reponse.
#
# MHS
# October 2000
#
# Arguments
# secTag -- tag identifying section to be analyzed
# axialLoad -- axial load applied to section (negative is compression)
# maxK -- maximum curvature reached during analysis
# numIncr -- number of increments used to reach maxK (default 100)
#
# Sets up a recorder which writes moment-curvature results to file
# section$secTag.out ... the moment is in column 1, and curvature in column 2
proc MomentCurvature {secTag axialLoad maxK {numIncr 100} } {
# Define two nodes at (0,0)
node 1 0.0 0.0
node 2 0.0 0.0
# Fix all degrees of freedom except axial and bending
fix 1 1 1 1
fix 2 0 1 0
# Define element
# tag ndI ndJ secTag
element zeroLengthSection 1 1 2 $secTag
# Create recorder
recorder Node -file section$secTag.out -time -node 2 -dof 3 disp
# Define constant axial load
pattern Plain 1 "Constant" {
load 2 $axialLoad 0.0 0.0
}
# Define analysis parameters
integrator LoadControl 0.0
system SparseGeneral -piv; # Overkill, but may need the pivoting!
test NormUnbalance 1.0e-9 10
numberer Plain
constraints Plain
algorithm Newton
analysis Static
# Do one analysis for constant axial load
analyze 1
# Define reference moment
pattern Plain 2 "Linear" {
load 2 0.0 0.0 1.0
}
# Compute curvature increment
set dK [expr $maxK/$numIncr]
# Use displacement control at node 2 for section analysis
integrator DisplacementControl 2 3 $dK 1 $dK $dK
# Do the section analysis
analyze $numIncr
}
*************************************************************
The result is:
Estimated yield curvature: 0.100433673469
WARNING: CTestNormUnbalance::test<>-failed to converge
after 10 iterations
NewtnRaphson::solveCurrentStep<> -the ConvergenceTest object failed in test<>
StaticAnalysis::analyze<> -the Algorithm failed at iteration: 0 with domain at
load factor 0.673815
OpenSees > analyze failed, returned: -3 error flag
-3
OpenSees >
*************************************************************
Any ideas of what i need to change in order to find the correct results?
Why can't i achieve convergence?
Thank you.