Nonlinear Beam 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
husseinokail
Posts: 10
Joined: Sun Mar 11, 2007 11:44 pm
Location: Ain Shams

Nonlinear Beam Column

Post by husseinokail »

Follows is my model, it model a nonlinear beam column under cyclic lateral load. When I get the moment curvature relationship the moment capacity is higher than what i get by manual calculations which is supposed to be 4 kips.inch Any mistakes in the model difinition you can see?

Thanks



# SET UP ----------------------------------------------------------------------------
wipe; # clear memory of all past model definitions
model BasicBuilder -ndm 2 -ndf 3; # Define the model builder, ndm=#dimension, ndf=#dofs
set dataDir cu; # set up name of data directory
file mkdir $dataDir; # create data directory

# define GEOMETRY -------------------------------------------------------------
set LBeam [expr 16.]; # beam length
set Weight [expr 114*48*48*3.625/(12*12*12*1000)]; # superstructure weight
set B [expr 48.*.5];
set W [expr 3.625*.5];

# nodal coordinates:
node 1 0 0; # node#, X, Y
node 2 0 $LBeam;

# Single point constraints -- Boundary Conditions
fix 1 1 1 1; # node DX DY RZ
#fix 2 0 1 1; # node DX DY RZ

# MATERIAL parameters -------------------------------------------------------------------
set IDmas 3; # material ID tag -- masonry infill
set fm [expr -.7]; # CONCRETE Compressive Strength, ksi (+Tension, -Compression)
set fm1U $fm; # UNCONFINED concrete, maximum stress
set eps1U -0.0007; # strain at maximum strength of unconfined concrete
set fm2U [expr .1*$fm1U]; # ultimate stress
set eps2U -0.005; # strain at ultimate stress
set lambda 0.1; # ratio between unloading slope at $eps2 and initial slope $Ec
set ftmU 0.035; # tensile strength +tension
set Etms [expr $ftmU/0.005]; # tension softening stiffness
uniaxialMaterial Concrete02 $IDmas $fm1U $eps1U $fm2U $eps2U $lambda $ftmU $Etms; # build masonry
section fiberSec 500 {patch quad $IDmas 500 1 -$W -$B $W -$B $W $B -$W $B};

# define geometric transformation: performs a linear geometric transformation of beam stiffness and resisting force from the basic system to the global-coordinate system
set ColTransfTag 1; # associate a tag to column transformation
geomTransf Linear $ColTransfTag
set numIntgrPts 5; # number of integration points for force-based element
element nonlinearBeamColumn 1 1 2 $numIntgrPts 500 $ColTransfTag; # self-explanatory when using variables

# Define RECORDERS -------------------------------------------------------------
recorder Node -file $dataDir/Disp.out -time -node 2 -dof 1 disp; # displacements of free nodes
recorder Element -file $dataDir/ColForces.out -time -ele 1 globalForce; # column forces
recorder Element -file $dataDir/F11.txt -time -ele 1 section 1 force;
recorder Element -file $dataDir/D11.txt -time -ele 1 section 1 deformation;
recorder Element -file $dataDir/F12.txt -time -ele 1 section 2 force;
recorder Element -file $dataDir/D12.txt -time -ele 1 section 2 deformation;
recorder Element -file $dataDir/F13.txt -time -ele 1 section 3 force;
recorder Element -file $dataDir/D13.txt -time -ele 1 section 3 deformation;
recorder Element -file $dataDir/F14.txt -time -ele 1 section 4 force;
recorder Element -file $dataDir/D14.txt -time -ele 1 section 4 deformation;
recorder Element -file $dataDir/F15.txt -time -ele 1 section 5 force;
recorder Element -file $dataDir/D15.txt -time -ele 1 section 5 deformation;
recorder Element -file $dataDir/S11.txt -time -ele 1 section 1 fiber 1.1825 0. stressStrain
recorder Element -file $dataDir/S12.txt -time -ele 1 section 2 fiber 1.1825 0. stressStrain
recorder Element -file $dataDir/S13.txt -time -ele 1 section 3 fiber 1.1825 0. stressStrain
recorder Element -file $dataDir/S14.txt -time -ele 1 section 4 fiber 1.1825 0. stressStrain
recorder Element -file $dataDir/S15.txt -time -ele 1 section 5 fiber 1.1825 0. stressStrain

# define GRAVITY -------------------------------------------------------------
pattern Plain 1 Linear {
load 2 0.0 -$Weight 0.0 -const
}

## Gravity-analysis parameters -- load-controlled static analysis
set Tol 1.0e-8;
constraints Plain;
numberer Plain;
system BandGeneral;
test NormDispIncr $Tol 10 ;
algorithm ModifiedNewton -initial
set NstepGravity 10; # set variable which will be used to apply gravity in 10 steps
set DGravity [expr 1./$NstepGravity]; # load increment
integrator LoadControl $DGravity;
analysis Static;
analyze $NstepGravity; # apply vertical loads in 10 steps
loadConst -time 0.0

set LunitTXT "inch"; # define basic-unit text for output
set FunitTXT "kip"; # define basic-unit text for output
set TunitTXT "sec"; # define basic-unit text for output
# we need to set up parameters that are particular to the model.
set IDctrlNode 2; # node where displacement is read for displacement control
set IDctrlDOF 1; # degree of freedom of displacement read for displacement contro
# characteristics of cyclic analysis
set iDmax "0.0005 0.001 0.0025 0.0030"; # vector of displacement-cycle peaks, in terms of storey drift ratio
set Dincr [expr 0.00001*$LBeam]; # displacement increment for pushover. you want this to be very small, but not too small to slow down the analysis
set Fact $LBeam; # scale drift ratio by storey height for displacement cycles
set CycleType Full; # you can do Full / Push / Half cycles with the proc
set Ncycles 2; # specify the number of cycles at each peak
# create load pattern for lateral pushover load
set Hload [expr $Weight/10]; # 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 "2"; # 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 0.0 0.0 0.0
}
}
# ----------- set up analysis parameters
source LibAnalysisStaticParameters.tcl; # constraintsHandler,DOFnumberer,system-ofequations,convergenceTest,solutionAlgorithm,integrator
# --------------------------------- perform Static Cyclic Displacements Analysis
source GeneratePeaks.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
set tc [getTime]
puts "$tc"
# ----------------------------------------------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] $LunitTXT]
} else {
puts [format $fmt1 "DONE" $IDctrlNode $IDctrlDOF [nodeDisp $IDctrlNode $IDctrlDOF] $LunitTXT]
}
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

is it significantly different?
is it due to the fiber section?
you might want to try an elastic section first and then an elastic material, just to check.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
husseinokail
Posts: 10
Joined: Sun Mar 11, 2007 11:44 pm
Location: Ain Shams

Post by husseinokail »

I think if ound what caused this it is the slope of the softening branch in the material law, it was too gentle
Post Reply