beam with hinges - hinge rotation?

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

Moderators: silvia, selimgunay, Moderators

Post Reply
sorin
Posts: 12
Joined: Fri Sep 16, 2005 5:03 am
Location: E Europe/Romania/Timisoara
Contact:

beam with hinges - hinge rotation?

Post by sorin »

I tried to obtain a hinge rotation (for a simple countilever -defined as beam with hinges element0 but the file is empty.Why? and there is another way to obtain hinge rotation?
Here I attach thr file:
# OpenSees Example Consola1
# OpenSees Primer
#
# Units: kN, m, sec
# Define model builder
# --------------------
model BasicBuilder -ndm 2 -ndf 3

# Create nodes
# ------------

# Set parameters for overall model geometry
set height 1.5

# Create nodes
# tag X Y
node 1 0.0 0.0
node 2 0.0 $height
# Fix supports at base of columns
# tag DX DY RZ
fix 1 1 1 1

# Define materials for nonlinear columns
# ------------------------------------------
# CONCRETE tag f'c ec0 f'cu ecu
# Core concrete (confined)
uniaxialMaterial Concrete01 1 -25000.0 -0.002 -25000.0 -0.0035
# Cover concrete (unconfined)
uniaxialMaterial Concrete01 2 -25000.0 -0.002 -25000.0 -0.0035
# STEEL
# Reinforcing steel
set fy 320000.0; # Yield stress
set E 200.0e6; # Young's modulus
# tag fy E0 b
uniaxialMaterial Steel01 3 $fy $E 1.0e-10
# Define cross-section for nonlinear columns
# ------------------------------------------
# set some parameters
set colWidth 0.250
set colDepth 0.250
set cax 0.029
set As 113.1e-6; # area of fi12 bars
# some variables derived from the parameters
set y1 [expr $colWidth/2.0]; #dist de la CG la fibra extrema
set z1 [expr $colDepth/2.0]; #dist de la CG la fibra extrema
set y2 [expr $y1-$cax]; #dist de la CG la armatura
set z2 [expr $z1-$cax]; #dist de la CG la armatura
section Fiber 1 {
# Create the concrete core fibers
patch quad 1 1 10 $y2 -$z2 $y2 $z2 -$y2 $z2 -$y2 -$z2
# Create the concrete cover fibers (bottom, up, left, right)
patch quad 2 1 2 $y1 -$z2 $y1 $z2 $y2 $z2 $y2 -$z2
patch quad 2 1 2 -$y2 -$z2 -$y2 $z2 -$y1 $z2 -$y1 -$z2
patch quad 2 1 10 $y1 -$z1 $y1 -$z2 -$y1 -$z2 -$y1 -$z1
patch quad 2 1 10 $y1 $z2 $y1 $z1 -$y1 $z1 -$y1 $z2

# Create the reinforcing fibers (bottom, top)
layer straight 3 2 $As $y2 -$z2 $y2 $z2
layer straight 3 2 $As -$y2 -$z2 -$y2 $z2
}

section Fiber 2 {
# Create the concrete core fibers
patch quad 1 1 10 $y2 -$z2 $y2 $z2 -$y2 $z2 -$y2 -$z2
# Create the concrete cover fibers (bottom, up, left, right)
patch quad 2 1 2 $y1 -$z2 $y1 $z2 $y2 $z2 $y2 -$z2
patch quad 2 1 2 -$y2 -$z2 -$y2 $z2 -$y1 $z2 -$y1 -$z2
patch quad 2 1 10 $y1 -$z1 $y1 -$z2 -$y1 -$z2 -$y1 -$z1
patch quad 2 1 10 $y1 $z2 $y1 $z1 -$y1 $z1 -$y1 $z2

# Create the reinforcing fibers (bottom, top)
layer straight 3 2 $As $y2 -$z2 $y2 $z2
layer straight 3 2 $As -$y2 -$z2 -$y2 $z2
}

# Define column elements
# ----------------------

# Geometry of column elements
# $transfTag <-jntOffset $dXi $dYi $dXj $dYj>
geomTransf PDelta 1

# Number of integration points along length of element
set np 2

# Create the coulumns using Beam-column elements
# tag ndI ndJ secTagI Hinge secTagJ Hinge E A Iz transfTag <-mass $massDens> <-iter $maxIters $tol>
# LengththI LengthJ


element beamWithHinges 1 1 2 1 0.25 2 0.25 250e5 625e-4 325e-2 1 0 1

# Define gravity loads
# --------------------

# Set a parameter for the axial load
set P 316; # 10% of axial capacity of columns

# Create a Plain load pattern with a Linear TimeSeries
pattern Plain 1 "Linear" {

# Create nodal loads at node 2
# nd FX FY MZ
load 2 0.0 [expr -$P] 0.0
}

# Create a Plain load pattern with a Linear TimeSerie
pattern Plain 2 "Linear" {

#eleLoad -ele $eleTag1 <$eleTag2 ....> -type -beamUniform $Wz <$Wx>
eleLoad -ele 1 -type -beamUniform 10
}

# initialize in case we need to do an initial stiffness iteration
initialize

# ------------------------------
# End of model generation
# ------------------------------


# ------------------------------
# Start of analysis generation
# ------------------------------

# Create the system of equation, a sparse solver with partial pivoting
system BandGeneral

# Create the constraint handler, the transformation method
constraints Transformation

# Create the DOF numberer, the reverse Cuthill-McKee algorithm
numberer RCM

# Create the convergence test, the norm of the residual with a tolerance of
# 1e-12 and a max number of iterations of 10
test NormDispIncr 1.0e-12 10 3

# Create the solution algorithm, a Newton-Raphson algorithm
algorithm Newton

# Create the integration scheme, the LoadControl scheme using steps of 0.1
integrator LoadControl 0.1

# Create the analysis object
analysis Static

# ------------------------------
# End of analysis generation
# ------------------------------

# ------------------------------
# Start of recorder generation
# ------------------------------

# Create a recorder to monitor nodal displacements

recorder Element -file ele1rot.out –time -ele 1 rotation


# --------------------------------
# End of recorder generation
# ---------------------------------





# ------------------------------
# Finally perform the analysis
# ------------------------------

# perform the gravity load analysis, requires 10 steps to reach the load level
analyze 10

# Print out the state of nodes 3 and 4
print node 1
# Print out the state of element 1
print ele 1
sorin
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

i just ran your file, put in a node recorder and got nothing either.
please check you model and let me know how it goes.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
sorin
Posts: 12
Joined: Fri Sep 16, 2005 5:03 am
Location: E Europe/Romania/Timisoara
Contact:

Post by sorin »

silvia wrote:i just ran your file, put in a node recorder and got nothing either.
please check you model and let me know how it goes.

:( pls help me :cry:

I just run another cantilever model in which I include a pushover analysis and I assured that the plastic hinges were formed (with the help of displacements obtained from node recorder).
But when I tried to make an element recorder to obtain local force,global force & hinge rotation the result were valid only for local force & global force; unfortunatly for HINGE ROTATION I got nothing.
What can I do to obtain the HINGE ROTATION ??? :?: - which is very important for me!
P.S. THIS IS A HOPELESS MESSEGE!!!
Here I attach the model:

# Units: kN, m, sec
# Define model builder
# --------------------
model BasicBuilder -ndm 2 -ndf 3

# Create nodes
# ------------

# Set parameters for overall model geometry
set height 1.5

# Create nodes
# tag X Y
node 1 0.0 0.0
node 2 0.0 $height
# Fix supports at base of columns
# tag DX DY RZ
fix 1 1 1 1

# Define materials for nonlinear columns
# ------------------------------------------
# CONCRETE tag f'c ec0 f'cu ecu
# Core concrete (confined)
uniaxialMaterial Concrete01 1 -25000.0 -0.002 -25000.0 -0.0035
# Cover concrete (unconfined)
uniaxialMaterial Concrete01 2 -25000.0 -0.002 -25000.0 -0.0035
# STEEL
# Reinforcing steel
set fy 320000.0; # Yield stress
set E 200.0e6; # Young's modulus
# tag fy E0 b
uniaxialMaterial Steel01 3 $fy $E 1.0e-10
# Define cross-section for nonlinear columns
# ------------------------------------------
# set some parameters
set colWidth 0.250
set colDepth 0.250
set cax 0.029
set As 113.1e-6; # area of fi12 bars
# some variables derived from the parameters
set y1 [expr $colWidth/2.0]; #dist de la CG la fibra extrema
set z1 [expr $colDepth/2.0]; #dist de la CG la fibra extrema
set y2 [expr $y1-$cax]; #dist de la CG la armatura
set z2 [expr $z1-$cax]; #dist de la CG la armatura
section Fiber 1 {
# Create the concrete core fibers
patch quad 1 1 10 $y2 -$z2 $y2 $z2 -$y2 $z2 -$y2 -$z2
# Create the concrete cover fibers (bottom, up, left, right)
patch quad 2 1 2 $y1 -$z2 $y1 $z2 $y2 $z2 $y2 -$z2
patch quad 2 1 2 -$y2 -$z2 -$y2 $z2 -$y1 $z2 -$y1 -$z2
patch quad 2 1 10 $y1 -$z1 $y1 -$z2 -$y1 -$z2 -$y1 -$z1
patch quad 2 1 10 $y1 $z2 $y1 $z1 -$y1 $z1 -$y1 $z2

# Create the reinforcing fibers (bottom, top)
layer straight 3 2 $As $y2 -$z2 $y2 $z2
layer straight 3 2 $As -$y2 -$z2 -$y2 $z2
}

section Fiber 2 {
# Create the concrete core fibers
patch quad 1 1 10 $y2 -$z2 $y2 $z2 -$y2 $z2 -$y2 -$z2
# Create the concrete cover fibers (bottom, up, left, right)
patch quad 2 1 2 $y1 -$z2 $y1 $z2 $y2 $z2 $y2 -$z2
patch quad 2 1 2 -$y2 -$z2 -$y2 $z2 -$y1 $z2 -$y1 -$z2
patch quad 2 1 10 $y1 -$z1 $y1 -$z2 -$y1 -$z2 -$y1 -$z1
patch quad 2 1 10 $y1 $z2 $y1 $z1 -$y1 $z1 -$y1 $z2

# Create the reinforcing fibers (bottom, top)
layer straight 3 2 $As $y2 -$z2 $y2 $z2
layer straight 3 2 $As -$y2 -$z2 -$y2 $z2
}

# Define column elements
# ----------------------

# Geometry of column elements
# $transfTag <-jntOffset $dXi $dYi $dXj $dYj>
geomTransf PDelta 1

# Number of integration points along length of element
set np 2

# Create the coulumns using Beam-column elements
# tag ndI ndJ secTagI Hinge secTagJ Hinge E A Iz transfTag <-mass $massDens> <-iter $maxIters $tol>
# LengththI LengthJ


element beamWithHinges 1 1 2 1 0.25 2 0.25 250e5 625e-4 325e-2 1 0 1

# Define gravity loads
# --------------------

# Set a parameter for the axial load
set P 316; # 10% of axial capacity of columns

# Create a Plain load pattern with a Linear TimeSeries
pattern Plain 1 "Linear" {

# Create nodal loads at node 2
# nd FX FY MZ
load 2 0.0 [expr -$P] 0.0
}
# initialize in case we need to do an initial stiffness iteration
initialize

# ------------------------------
# End of model generation
# ------------------------------



# ------------------------------
# Start of analysis generation
# ------------------------------

# Create the system of equation, a sparse solver with partial pivoting
system BandGeneral

# Create the constraint handler, the transformation method
constraints Transformation

# Create the DOF numberer, the reverse Cuthill-McKee algorithm
numberer RCM

# Create the convergence test, the norm of the residual with a tolerance of
# 1e-12 and a max number of iterations of 10
test NormDispIncr 1.0e-12 10 3

# Create the solution algorithm, a Newton-Raphson algorithm
algorithm Newton

# Create the integration scheme, the LoadControl scheme using steps of 0.1
integrator LoadControl 0.1

# Create the analysis object
analysis Static

# ------------------------------
# End of analysis generation
# ------------------------------



# ------------------------------
# Start of recorder generation
# ------------------------------

# Create a recorder to monitor nodal displacements
recorder Node -file nodeGravity.out -time -node 2 -dof 1 disp

# --------------------------------
# End of recorder generation
# ---------------------------------


# ------------------------------
# Finally perform the analysis
# ------------------------------

# perform the gravity load analysis, requires 10 steps to reach the load level
analyze 10

# Print out the state of nodes 3 and 4
print node 2
# Print out the state of element 1
print ele 1

puts "Gravity load analysis completed";

# Set the gravity loads to be constant & reset the time in the domain
loadConst -time 0.0

# ----------------------------------------------------
# End of Model Generation & Initial Gravity Analysis
# ----------------------------------------------------


# ----------------------------------------------------
# Start of additional modelling for lateral loads
# ----------------------------------------------------

# Define lateral loads
# --------------------

# Set some parameters
set H 1.0; # Reference lateral load

# Set lateral load pattern with a Linear TimeSeries
pattern Plain 2 "Linear" {

# Create nodal loads at nodes 3 & 4
# nd FX FY MZ
load 2 $H 0.0 0.0

}

# ----------------------------------------------------
# End of additional modelling for lateral loads
# ----------------------------------------------------



# ----------------------------------------------------
# Start of modifications to analysis for push over
# ----------------------------------------------------


# Set some parameters
set dU 0.001; # Displacement increment

# Change the integration scheme to be displacement control
# node dof init Jd min max
integrator DisplacementControl 2 1 $dU 1 $dU $dU

# ----------------------------------------------------
# End of modifications to analysis for push over
# ----------------------------------------------------


# ------------------------------
# Start of recorder generation
# ------------------------------

# Stop the old recorders by destroying them
# remove recorders

# Create a recorder to monitor nodal displacements
recorder Node -file node2.out -time -node 2 -dof 1 2 3 disp
#recorder plot node2.out hi 10 10 300 300 -columns 1

# Create a recorder to monitor element forces in columns
recorder Element -file ele1Local.out -time -ele 1 localForce

# Create a recorder to monitor element forces in columns
recorder Element -file ele1Global.out -time -ele 1 globalForce

# Create a recorder to monitor element hinge rotation
recorder Element -file ele1Rot.out –time -ele 1 hinge rotation

# --------------------------------
# End of recorder generation
# ---------------------------------


# ------------------------------
# Finally perform the analysis
# ------------------------------

# Set some parameters
set maxU 0.06; # Max displacement
set numSteps [expr int($maxU/$dU)]

# Perform the analysis
set ok [analyze $numSteps]

if {$ok != 0} {

set currentDisp [nodeDisp 2 1]
set ok 0
while {$ok == 0 && $currentDisp < $maxU} {

set ok [analyze 1]

# if the analysis fails try initial tangent iteration
if {$ok != 0} {
puts "regular newton failed .. lets try an initail stiffness for this step"
test NormDispIncr 1.0e-12 10000 0
algorithm ModifiedNewton -initial
}

set currentDisp [nodeDisp 2 1]
}
}

puts "";
if {$ok == 0} {
puts "Pushover analysis completed SUCCESSFULLY";
} else {
puts "Pushover analysis FAILED";
}

# Print the state at node 2
print node

Thank you !!! :)
sorin
berktaftali
Posts: 68
Joined: Fri Jul 02, 2004 6:10 am
Location: Computers and Structures, Inc.

Post by berktaftali »

try

Code: Select all

recorder Element -file ele1Rot.out –time -ele 1 plasticRotation
As the name suggests, you'll get plastic rotation, not the total rotation of the hinges...
Berk Taftali
Georgia Institute of Technology
Ph.D. Candidate, Structural Engineering, Mechanics, and Materials
School of Civil and Environmental Engineering
Atlanta, GA 30332 USA
Email: gte994y@mail.gatech.edu
sorin
Posts: 12
Joined: Fri Sep 16, 2005 5:03 am
Location: E Europe/Romania/Timisoara
Contact:

Post by sorin »

berktaftali wrote:try

Code: Select all

recorder Element -file ele1Rot.out –time -ele 1 plasticRotation
As the name suggests, you'll get plastic rotation, not the total rotation of the hinges...

Hi,
Thank you for your help ,but unfortunately the result is the same as previously. :( .
Do you have an example where you used this command?Maybe I'm mistaking somewhere else.

Thank you! :)
sorin
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

what result did you get?
I put in the following, and removed your strange hinge Rotation command:


# Create a recorder to monitor element forces in columns
recorder Element -file ele1Global.out -time -ele 1 globalForce
recorder Element -file ele1Rotat.out -time -ele 1 plasticRotation

I got some output in the Rotation file, you have to see if it is good.
for some reason, when I just edited your original command I didn't get anything in the file, then I just copied the line above (globalForce) and renamed the output file and put in plasticRotation and that worked.

are the results not what you are looking for?
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
sorin
Posts: 12
Joined: Fri Sep 16, 2005 5:03 am
Location: E Europe/Romania/Timisoara
Contact:

Post by sorin »

silvia wrote:what result did you get?
I put in the following, and removed your strange hinge Rotation command:


# Create a recorder to monitor element forces in columns
recorder Element -file ele1Global.out -time -ele 1 globalForce
recorder Element -file ele1Rotat.out -time -ele 1 plasticRotation

I got some output in the Rotation file, you have to see if it is good.
for some reason, when I just edited your original command I didn't get anything in the file, then I just copied the line above (globalForce) and renamed the output file and put in plasticRotation and that worked.

are the results not what you are looking for?

:) Thank you very much :)

I appreciate your help!

It seems that my mistake was that I used copy-paste from the OpenSees User Manual ,because when I copy-paste from your messege it works.(To be more speciffical I copy-paste this part,from element recorder - deformation – section deformations:

example: recorder Element -file ele1sec1Force.out –time -ele 1 section 1 deformation

but ,modifing on above example wasn't a good choice ;it works only when you type .)

However ,I think that it is a good ideea if you could insert in the OpenSees User Manual the command for plastic rotation.

After I run the file I realised that the result are the following:
-in the first collumn - is the load increment from my pushover analysis
-in the 3'rd & 4'th collumn - are the rotations at the ends of the cantilever
- :?: in the 2'nd collumn :?: - I do not know what it is ,so I will surely appreciate it if you could help me again.

Thank you! :)
sorin
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

i will forward this question to the element author.
and I'll look into the mistery of the cut and paste....

other than that, you are set, then?!
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

two updates:

1. the cut and paste may have not worked because there is an extra space before deformations.... weird, I know.

2. From the element author: "It's the plastic deformations of the basic system. So, the extra output in column two is the plastic axial deformation, while three and four are the plastic rotations."

hope this helps.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
sorin
Posts: 12
Joined: Fri Sep 16, 2005 5:03 am
Location: E Europe/Romania/Timisoara
Contact:

Post by sorin »

silvia wrote:two updates:

1. the cut and paste may have not worked because there is an extra space before deformations.... weird, I know.

2. From the element author: "It's the plastic deformations of the basic system. So, the extra output in column two is the plastic axial deformation, while three and four are the plastic rotations."

hope this helps.
Thank you very much Silvia :!: :) for ypur help.

Now...
Do you know something about a post-processor who could show me the fibers of a section?
Or ,if you know which is the best (more complex) postprocessor.

Thank you! :)
sorin
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

sorry,
there is no post-processor,
you have to define the recorders you need, and i'd use matlab to post-process.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
Post Reply