## ZeroLength Element

If you have a script you think might be useful to others post it
here. Hopefully we will be able to get the most useful of these incorporated in the manuals.

Moderators: silvia, selimgunay, Moderators

panda
Posts: 2
Joined: Fri May 11, 2012 8:33 am

### ZeroLength Element

Hello, I am having difficulty using the ZeroLength Element. I have looked at several examples and tried different approaches, yet I am still not fully sure how it works... (I am new to OpenSees...)

My model is for a simple composite beam, one end roller (node 1) with a rotational spring attached (which I want to model with a zerolength element, node 12) and the other end pinned (node 11). I want to include a rotational spring as I am applying a load to node 1, which is in reality attached to a column that provides some rotational stiffness to the composite beam.

My understanding is that node 12 should be fixed apart from dof 3 as it is a rotational spring? And that node 1 and 12 should have the same material properties in this direction..

However this does not work, and trying other combinations does not give me good results (changing the stiffness of the zerolength element had no impact on the midspan deflection and so I presume something is wrong with my zerolength modelling). I did also try using equalDOF, but one example I was looking at did not use this command and so I am quite confused....

I apologise if this is a trivial problem or I have not explained myself well.. I am new to this software and find it difficult to understand all the examples and concepts.....

I would very much appreciate any explanation/advice!! Thank you very much!!!

I have attached my script in case:

# all units are in N, mm, second

# SET UP ----------------------------------------------------------------------------
wipe; # clear opensees model
model BasicBuilder -ndm 2 -ndf 3; # Defines model builder: 2D ,model with 3 dof per node.
##(NDM=spatial dimension of model- 1D,2D or 3D)
##(NDF = no. dof, *optional*)
## default values; ndm 2 = ndf 3
file mkdir OutputDataWFspring1; # creates a data directory in the current directory
set CBdir "../MPfiles"; # creates composite beam directory below

# define GEOMETRY -------------------------------------------------------------
# nodal coordinates:
node 1 0 0; # node number, X, Y
node 2 1000 0; # composite beam
node 3 2000 0;
node 4 3000 0;
node 5 4000 0;
node 6 5000 0;
node 7 6000 0;
node 8 7000 0;
node 9 8000 0;
node 10 9000 0;
node 11 10000 0;

node 12 0 0; #use multi point, zero length

# BOUNDARY CONDITIONS
fix 1 0 1 0; # fix: node DX DY RZ
fix 11 1 1 0;
fix 12 1 1 0;

#equalDOF 1 1 12 3; #equalDOF \$rNodeTag \$cNodeTag \$dof1 \$dof2
# node 12 has same dof 3 as node 1

# MATERIAL PROPERTIES -------------------------------------------------------------------
# STEEL
set Fy [expr 300]; # Yield Strength S300 Steel
set E [expr 210000]; # Steel Young's Modulus
set nu 0.3; # Poissons Ratio
set b 0.01; # Strain-hardening ratio; used commonly used value
set R0 15; # Parameters to control the transition from elastic to plastic branches.
set CR1 0.925; # Recommended values: \$R0=between 10 and 20
set CR2 0.15;

set IDsteel 1; # material ID tag -- Steel
uniaxialMaterial Steel02 \$IDsteel \$Fy \$E \$b \$R0 \$CR1 \$CR2; # builds steel material

# REINFORCEMENT STEEL
set Fy2 [expr 475]; # Yield Strength S460 Steel
set IDreinfsteel 2; # material ID tag -- Steel
uniaxialMaterial Steel02 \$IDreinfsteel \$Fy2 \$E \$b \$R0 \$CR1 \$CR2; # builds reinforced steel material

# CONCRETE
#Nominal Concrete Strength
set fc [expr -28]; # Concrete Compressive Strength(+T,-C)
set Ec [expr 30000]; # Concrete Elastic Modulus
#Confined Concrete
set Kfc 1.3;
set fc1C [expr \$Kfc*\$fc]; # Confined concrete (mander model), maximum stress
set eps1C [expr 2.*\$fc1C/\$Ec]; # strain at maximum stress
set fcU [expr 0.2*\$fc1C]; # ultimate stress/crushing strength
set epsU [expr 5*\$eps1C]; # strain at ultimate stress/crushing strength
set IDconc 3; # material ID tag -- Concrete Confined
uniaxialMaterial Concrete01 \$IDconc \$fc1C \$eps1C \$fcU \$epsU; # builds Concrete (Confined) material

#SPRING ZERO ELEMENT
set EIeff 1.38E+11;
set IDelastic 4; # material ID tag -- elastic Steel?
uniaxialMaterial Elastic \$IDelastic \$EIeff;

#SECTION PROPERTIES-------------------------------------------------------------------

#STEEL I SECTION
# From Steel Manuals
# Section Area (cm2) h(=d) (mm) b(mm) tf (mm) tw (mm) Ixx (cm4) Iyy (cm4)
# 533x210x92 117 533.1 209.3 15.6 10.1 55227

set h [expr 533.1]; # nominal depth/height
set tw [expr 10.1]; # web thickness
set b [expr 209.3]; # flange width
set tf [expr 15.6]; # flange thickness

# CONCRETE BEAM PROPERTIES
set H [expr 100]; # Beam Depth
set B [expr 6000]; # Beam Width

set SecTag 1;

set Isec I533x210x92;
set Rsec R100x6000;

#FIBER SECTION-----------------------------------------------------------------------------
#I SECTION
set nfdw 8; # number of fibers along web depth
set nftw 2; # number of fibers along web thickness
set nfb 8; # number of fibers along flange width
set nftf 4; # number of fibers along flange thickness
#BEAM SECTION
set nfH 8; # number of fibers along depth, y-direction
set nfB 8; # number of fibers along width, in z-direction
#REBARS
set cover 25; # 25mm cover
set As 28.3; # Area of 6mm Rebar

set dw [expr \$h - 2. * \$tf]
set y1 [expr -\$h/2.]
set y2 [expr -\$dw/2.]
set y3 [expr \$dw/2.]
set y4 [expr \$h/2.]
set yb [expr ((\$h/2.)+\$cover)]
set y5 [expr ((\$h/2.)+\$H)]

set z1 [expr -\$B/2.]; # The distance from the section y-axis to the edge of the concrete
set z2 [expr -\$b/2.]; # steel
set z3 [expr -\$tw/2.];
set z4 [expr \$tw/2.];
set z5 [expr \$b/2.];
set z6 [expr \$B/2.]; # The distance from the section y-axis to the edge of the concrete

# Define the FIBER SECTION --------------------------------------------------------------------------------------------
# Patch defined ANTI-CLOCKWISE
section fiberSec 1 {
# Define BEAM Steel Patch nfIJ nfJK yI zI yJ zJ yK zK yL zL
patch quadr \$IDsteel \$nfb \$nftf \$y1 \$z5 \$y1 \$z2 \$y2 \$z2 \$y2 \$z5
patch quadr \$IDsteel \$nftw \$nfdw \$y2 \$z4 \$y2 \$z3 \$y3 \$z3 \$y3 \$z4
patch quadr \$IDsteel \$nfb \$nftf \$y3 \$z5 \$y3 \$z2 \$y4 \$z2 \$y4 \$z5

# Define the Concrete Layer: fiber \$yLoc \$zLoc \$A \$matTag

patch quadr \$IDconc \$nfB \$nfH \$y4 \$z6 \$y4 \$z1 \$y5 \$z1 \$y5 \$z6;

# Define reinf. layers \$matTag \$numBars \$areaBar \$yStart \$zStart \$yEnd \$zEnd
layer straight \$IDreinfsteel 24 \$As \$yb \$z1 \$yb \$z6;
}

# end of fibersection definition

# Define ELEMENTS -------------------------------------------------------------
# define geometric transformation: performs a linear geometric transformation of beam stiffness and resisting force
# from the basic system to the global-coordinate system
geomTransf Corotational 1; # associate a tag to transformation

# CONNECTIVITY -------------------------------------------------------------------------------
element dispBeamColumn 1 1 2 5 1 1; #\$eleTag \$iNode \$jNode \$numIntgrPts \$secTag \$transfTag; from above
element dispBeamColumn 2 2 3 5 1 1; # fibre section tag 1 FOR COMPOSITE BEAM
element dispBeamColumn 3 3 4 5 1 1;
element dispBeamColumn 4 4 5 5 1 1;
element dispBeamColumn 5 5 6 5 1 1;
element dispBeamColumn 6 6 7 5 1 1;
element dispBeamColumn 7 7 8 5 1 1;
element dispBeamColumn 8 8 9 5 1 1;
element dispBeamColumn 9 9 10 5 1 1;
element dispBeamColumn 10 10 11 5 1 1;

#element zeroLength \$eleTag \$iNode \$jNode -mat \$matTag1 \$matTag2 ... -dir \$dir1 \$dir2 ... <-orient \$x1 \$x2 \$x3 \$yp1 \$yp2 \$yp3> <-doRayleigh \$rFlag>
element zeroLength 11 1 12 -mat 4 -dir 3; # truss tag 11 between nodes 1 and 12 acting in directions 1, 2 and 3, with materials 4

# Define RECORDERS -------------------------------------------------------------
recorder Node -file OutputDataWFspring1/WFspring1SupportReactions.out -time -node 1 11 -dof 1 2 3 reaction; # support reactions
# colomn 1=time,colomns 2-3 reactions dof 1,2 and 3
recorder Node -file OutputDataWFspring1/WFspring1HorizontalDispEnd1.out -time -node 1 -dof 1 2 disp; # horizontal/vertical displacement of support nodes

recorder Node -file OutputDataWFspring1/WFspring1HorizontalDispEnd11.out -time -node 11 -dof 1 2 disp;

recorder Node -file OutputDataWFspring1/WFspring1MidspanDisp.out -time -node 6 -dof 1 2 disp; # horizontal/vertical displacement at midspan

recorder Element -file OutputDataWFspring1/WFspring1GlobalForceBeam.out -time -eleRange 1 11 globalForce; # element forces; global forces of beam
# colomn 1=time, 2-7=end node forces (shear, axial, bending moment)
# 2D, 3dof: FX FY MZ

recorder Element -file OutputDataWFspring1/WFspring1MidspanMoments.out -time -ele 6 globalForce; # element forces; global forces of beam
# colomn 1=time, 2-7=end node forces (shear, axial, bending moment)
# 2D, 3dof: FX FY MZ

# GRAVITY/STATIC analysis-------------------------------------------------------------
pattern Plain 1 Linear {
eleLoad -ele 1 2 3 4 5 6 7 8 9 10 -type -beamUniform -35; # distributed 35N/mm weight across beam
}

constraints Plain; # how it handles boundary conditions
numberer Plain; # can renumber dof's to minimize band-width (optimization), if you want to. simple model model uses plain
system BandGeneral; # how to store and solve the system of equations in the analysis;
test NormDispIncr 1.0e-4 6; # determine if convergence has been achieved at the end of an iteration step
algorithm Newton; # use Newton algorithm for linear analysis
integrator LoadControl 0.01; # determine the next time step for an analysis
analysis Static; # define type of analysis static or transient; gravity load is static
analyze 100; # perform gravity analysis- define no of steps- will apply full load in 10 steps
loadConst -time 0.0; # hold gravity constant and restart time

pattern Plain 2 Linear {
load 12 1403620 0. 0.; # Fx=R= 1403620kN at node 12

}

# create the analysis
wipeAnalysis; # clear previously-define analysis parameters
constraints Plain; # how it handles boundary conditions
numberer Plain; # renumber dof's to minimize band-width (optimization), if you want to
system BandGeneral; # how to store and solve the system of equations in the analysis
test NormDispIncr 1.0e-4 6; # determine if convergence has been achieved at the end of an iteration step
algorithm Newton; # use Linear algorithm for linear analysis
integrator LoadControl 0.001 ; # node 1, direction DOF 1, displacement increment of 0.1
analysis Static; # define type of analysis
analyze 1000;

puts "Done!"

fmk
Posts: 5866
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

### Re: ZeroLength Element

your constraints are wrong (12 needs the third dof set to 1) and your zeroLength element dir is wrong (it should be 6 for Rz)

panda
Posts: 2
Joined: Fri May 11, 2012 8:33 am

### Re: ZeroLength Element

Thank you ever so much for your help!! I think I am finally starting to understand the zerolength element now.

I have made the corrections you advised, and have also applied the nodal load to node 1 and not node 12 as I had done previously. (As node 12 is fully fixed)

My results come out rather peculiar however, as if I change the section size of my steel I beam, the midspan deflection decreases and then increases when the nodal load is applied (after gravity load) for some sections..

I tried section sizes
533 x 210 x 92
406 x 178 x 74
356 x 171 x 51
305 x 165 x 46
305 x 127 x 37

The midspan deflection decreases and then increases for the middle three sections and just increases as I would expect for only the first and last sections.

I cannot get my head around how or why this happens through changing only the section size and nothing... If you have any further suggestions on what I may be doing wrong, it would be very much appreciated. I wonder if it is still the zerolength element. I hope I am not being silly.... Thank you.