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

# define LATERAL load -------------------------------------------------------------

# Lateral load pattern

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!"

## ZeroLength Element

**Moderators:** silvia, selimgunay, Moderators

### 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)

### 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.

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.