## Error with Eigen Analysis (Lumped Plasticity Approach)

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

Moderators: silvia, selimgunay, Moderators

ankurjain
Posts: 55
Joined: Sun Aug 16, 2020 10:08 pm

### Error with Eigen Analysis (Lumped Plasticity Approach)

Kindly help me why i am getting different Eigen values ...

If I analyse the Frame with Distributed Plasticity approach, I am getting
Mode 1 = 0.055565, Mode 2 = 0.055565 and Mode 3 = 0.050185

But If I use Lumped Plasticity Approach (zeroLength Element), I am getting
Mode 1 = 0.12169, Mode 2 = 0.12169 and Mode 3 = 0.083386

Why is this difference ????

# lumpedmodel.tcl
logFile "lumpedmodel.log"
set systemTime [clock seconds]

# Start timing of this analysis sequence
# --------------------------------------
set tStart [clock clicks -milliseconds]

# Start of model generation
# =========================

# Create ModelBuilder
# -------------------
model BasicBuilder -ndm 3 -ndf 6

# Define geometry
# ---------------
# NodeCoord.tcl

# Node tag xCrd yCrd zCrd ndf
node 1 +0.000000E+00 +0.000000E+00 +0.000000E+00 -ndf 6
node 2 +3.000000E+03 +0.000000E+00 +0.000000E+00 -ndf 6
node 3 +3.000000E+03 +3.000000E+03 +0.000000E+00 -ndf 6
node 4 +0.000000E+00 +3.000000E+03 +0.000000E+00 -ndf 6
node 5 +0.000000E+00 +3.000000E+03 +3.000000E+03 -ndf 6
node 6 +3.000000E+03 +3.000000E+03 +3.000000E+03 -ndf 6
node 7 +3.000000E+03 +0.000000E+00 +3.000000E+03 -ndf 6
node 8 +0.000000E+00 +0.000000E+00 +3.000000E+03 -ndf 6
node 10 +0.000000E+00 +0.000000E+00 +0.000000E+00 -ndf 6
node 11 +0.000000E+00 +0.000000E+00 +3.000000E+03 -ndf 6
node 12 +0.000000E+00 +3.000000E+03 +0.000000E+00 -ndf 6
node 13 +0.000000E+00 +3.000000E+03 +3.000000E+03 -ndf 6
node 14 +3.000000E+03 +0.000000E+00 +0.000000E+00 -ndf 6
node 15 +3.000000E+03 +0.000000E+00 +3.000000E+03 -ndf 6
node 16 +3.000000E+03 +3.000000E+03 +0.000000E+00 -ndf 6
node 17 +3.000000E+03 +3.000000E+03 +3.000000E+03 -ndf 6
node 18 +0.000000E+00 +3.000000E+03 +3.000000E+03 -ndf 6
node 19 +0.000000E+00 +0.000000E+00 +3.000000E+03 -ndf 6
node 20 +0.000000E+00 +0.000000E+00 +3.000000E+03 -ndf 6
node 21 +3.000000E+03 +0.000000E+00 +3.000000E+03 -ndf 6
node 22 +3.000000E+03 +0.000000E+00 +3.000000E+03 -ndf 6
node 23 +3.000000E+03 +3.000000E+03 +3.000000E+03 -ndf 6
node 24 +3.000000E+03 +3.000000E+03 +3.000000E+03 -ndf 6
node 25 +0.000000E+00 +3.000000E+03 +3.000000E+03 -ndf 6

# Define single point constraints
# -------------------------------
# SPC tag Dx Dy Dz Rx Ry Rz
fix 1 1 1 1 1 1 1
fix 2 1 1 1 1 1 1
fix 3 1 1 1 1 1 1
fix 4 1 1 1 1 1 1

# Define multi point constraints
# ------------------------------
# Equal DOF: 5_6: mNodeTag sNodeTag dof
equalDOF 5 6 1 2
# Equal DOF: 8_7: mNodeTag sNodeTag dof
equalDOF 8 7 1 2

# Define material(s)

# Material "ElasticDefault": matTag E <eta> <Eneg>
uniaxialMaterial Elastic 1 +2.738500E+04 +0.000000E+00

# Material "ModiMkPinchingMat": matTag K0 alpha_Pos alpha_Neg My_Pos My_Neg Mpr_Pos Mpr_Neg alpha_Pinch Lamda_S Lamda_C Lamda_A Lamda_K c_S c_C c_A c_K theta_p_Pos theta_p_Neg theta_pc_Pos theta_pc_Neg Res_Pos Res_Neg theta_u_Pos theta_u_Neg D_Pos D_Neg <nFactor>
uniaxialMaterial ModIMKPinching 2 +3.930000E+13 +1.890000E-04 +1.890000E-04 +3.300000E+08 -3.300000E+08 +4.000000E-01 +4.000000E-01 +1.000000E-01 +1.000000E+00 +1.000000E+00 +1.000000E+00 +0.000000E+00 +1.000000E+00 +1.000000E+00 +1.000000E+00 +1.000000E+00 +5.790000E-03 +5.790000E-03 +5.250000E-01 +5.250000E-01 +1.050000E+00 +1.050000E+00 +1.000000E+02 +1.000000E+02 +0.000000E+00 +0.000000E+00 +0.000000E+00

# Define section(s)
# -----------------

# Section "ElasticDefault": secTag E A Iz Iy G J <alphaY> <alphaZ>
section Elastic 1 +2.738613E+04 +2.090318E+05 +3.641193E+09 +3.641193E+09 +1.141089E+04 +6.153615E+09 +8.333333E-01 +8.333333E-01

# Define geometric transformation(s)
# ----------------------------------
# GeoTran type tag vec_xz
geomTransf Linear 1 +0.000000E+00 +1.000000E+00 +0.000000E+00
# GeoTran type tag vec_xz
geomTransf Linear 2 +0.000000E+00 +0.000000E+00 +1.000000E+00
# GeoTran type tag vec_xz
geomTransf Linear 3 +0.000000E+00 +0.000000E+00 +1.000000E+00
# GeoTran type tag vec_xz
geomTransf Linear 4 +0.000000E+00 +0.000000E+00 +1.000000E+00
# GeoTran type tag vec_xz
geomTransf Linear 5 +0.000000E+00 +0.000000E+00 +1.000000E+00

# Define element(s)
# -----------------

# Element "ElasticBeamColumn": eleTag NodeI NodeJ A E G J Iy Iz geoTranTag <-mass massDens> <-cMass>
element elasticBeamColumn 1 10 11 +2.090318E+05 +2.738613E+04 +1.141089E+04 +6.153615E+09 +3.641193E+09 +3.641193E+09 1 -mass +5.327300E-04

# Element "ElasticBeamColumn": eleTag NodeI NodeJ A E G J Iy Iz geoTranTag <-mass massDens> <-cMass>
element elasticBeamColumn 2 12 13 +2.090318E+05 +2.738613E+04 +1.141089E+04 +6.153615E+09 +3.641193E+09 +3.641193E+09 1 -mass +5.327300E-04

# Element "ElasticBeamColumn": eleTag NodeI NodeJ A E G J Iy Iz geoTranTag <-mass massDens> <-cMass>
element elasticBeamColumn 3 14 15 +2.090318E+05 +2.738613E+04 +1.141089E+04 +6.153615E+09 +3.641193E+09 +3.641193E+09 1 -mass +5.327300E-04

# Element "ElasticBeamColumn": eleTag NodeI NodeJ A E G J Iy Iz geoTranTag <-mass massDens> <-cMass>
element elasticBeamColumn 4 16 17 +2.090318E+05 +2.738613E+04 +1.141089E+04 +6.153615E+09 +3.641193E+09 +3.641193E+09 1 -mass +5.327300E-04

# Element "ElasticBeamColumn": eleTag NodeI NodeJ A E G J Iy Iz geoTranTag <-mass massDens> <-cMass>
element elasticBeamColumn 5 18 19 +2.090318E+05 +2.738613E+04 +1.141089E+04 +6.153615E+09 +3.641193E+09 +3.641193E+09 2 -mass +5.327300E-04

# Element "ElasticBeamColumn": eleTag NodeI NodeJ A E G J Iy Iz geoTranTag <-mass massDens> <-cMass>
element elasticBeamColumn 6 20 21 +2.090318E+05 +2.738613E+04 +1.141089E+04 +6.153615E+09 +3.641193E+09 +3.641193E+09 3 -mass +5.327300E-04

# Element "ElasticBeamColumn": eleTag NodeI NodeJ A E G J Iy Iz geoTranTag <-mass massDens> <-cMass>
element elasticBeamColumn 7 22 23 +2.090318E+05 +2.738613E+04 +1.141089E+04 +6.153615E+09 +3.641193E+09 +3.641193E+09 4 -mass +5.327300E-04

# Element "ElasticBeamColumn": eleTag NodeI NodeJ A E G J Iy Iz geoTranTag <-mass massDens> <-cMass>
element elasticBeamColumn 8 24 25 +2.090318E+05 +2.738613E+04 +1.141089E+04 +6.153615E+09 +3.641193E+09 +3.641193E+09 5 -mass +5.327300E-04

# Element "Zerolength4Column": eleTag NodeI NodeJ -mat matTag1 matTag2 ... -dir dir1 dir2 ... <-orient x1 x2 x3 y1 y2 y3> <-doRayleigh flag>
element zeroLength 9 1 10 -mat 1 1 1 1 2 2 -dir 1 2 3 4 5 6 -orient +0.000000E+00 +0.000000E+00 +1.000000E+00 +1.000000E+00 +0.000000E+00 +0.000000E+00

# Element "Zerolength4Column": eleTag NodeI NodeJ -mat matTag1 matTag2 ... -dir dir1 dir2 ... <-orient x1 x2 x3 y1 y2 y3> <-doRayleigh flag>
element zeroLength 10 11 8 -mat 1 1 1 1 2 2 -dir 1 2 3 4 5 6 -orient +0.000000E+00 +0.000000E+00 +1.000000E+00 +1.000000E+00 +0.000000E+00 +0.000000E+00

# Element "Zerolength4Column": eleTag NodeI NodeJ -mat matTag1 matTag2 ... -dir dir1 dir2 ... <-orient x1 x2 x3 y1 y2 y3> <-doRayleigh flag>
element zeroLength 11 4 12 -mat 1 1 1 1 2 2 -dir 1 2 3 4 5 6 -orient +0.000000E+00 +0.000000E+00 +1.000000E+00 +1.000000E+00 +0.000000E+00 +0.000000E+00

# Element "Zerolength4Column": eleTag NodeI NodeJ -mat matTag1 matTag2 ... -dir dir1 dir2 ... <-orient x1 x2 x3 y1 y2 y3> <-doRayleigh flag>
element zeroLength 12 13 5 -mat 1 1 1 1 2 2 -dir 1 2 3 4 5 6 -orient +0.000000E+00 +0.000000E+00 +1.000000E+00 +1.000000E+00 +0.000000E+00 +0.000000E+00

# Element "Zerolength4Column": eleTag NodeI NodeJ -mat matTag1 matTag2 ... -dir dir1 dir2 ... <-orient x1 x2 x3 y1 y2 y3> <-doRayleigh flag>
element zeroLength 13 2 14 -mat 1 1 1 1 2 2 -dir 1 2 3 4 5 6 -orient +0.000000E+00 +0.000000E+00 +1.000000E+00 +1.000000E+00 +0.000000E+00 +0.000000E+00

# Element "Zerolength4Column": eleTag NodeI NodeJ -mat matTag1 matTag2 ... -dir dir1 dir2 ... <-orient x1 x2 x3 y1 y2 y3> <-doRayleigh flag>
element zeroLength 14 15 7 -mat 1 1 1 1 2 2 -dir 1 2 3 4 5 6 -orient +0.000000E+00 +0.000000E+00 +1.000000E+00 +1.000000E+00 +0.000000E+00 +0.000000E+00

# Element "Zerolength4Column": eleTag NodeI NodeJ -mat matTag1 matTag2 ... -dir dir1 dir2 ... <-orient x1 x2 x3 y1 y2 y3> <-doRayleigh flag>
element zeroLength 15 3 16 -mat 1 1 1 1 2 2 -dir 1 2 3 4 5 6 -orient +0.000000E+00 +0.000000E+00 +1.000000E+00 +1.000000E+00 +0.000000E+00 +0.000000E+00

# Element "Zerolength4Column": eleTag NodeI NodeJ -mat matTag1 matTag2 ... -dir dir1 dir2 ... <-orient x1 x2 x3 y1 y2 y3> <-doRayleigh flag>
element zeroLength 16 17 6 -mat 1 1 1 1 2 2 -dir 1 2 3 4 5 6 -orient +0.000000E+00 +0.000000E+00 +1.000000E+00 +1.000000E+00 +0.000000E+00 +0.000000E+00

# Element "Zerolength4Beam": eleTag NodeI NodeJ -mat matTag1 matTag2 ... -dir dir1 dir2 ... <-orient x1 x2 x3 y1 y2 y3> <-doRayleigh flag>
element zeroLength 17 5 18 -mat 1 1 1 1 2 1 -dir 1 2 3 4 5 6 -orient +0.000000E+00 -1.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E+00

# Element "Zerolength4Beam": eleTag NodeI NodeJ -mat matTag1 matTag2 ... -dir dir1 dir2 ... <-orient x1 x2 x3 y1 y2 y3> <-doRayleigh flag>
element zeroLength 18 19 8 -mat 1 1 1 1 2 1 -dir 1 2 3 4 5 6 -orient +0.000000E+00 -1.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E+00

# Element "Zerolength4Beam": eleTag NodeI NodeJ -mat matTag1 matTag2 ... -dir dir1 dir2 ... <-orient x1 x2 x3 y1 y2 y3> <-doRayleigh flag>
element zeroLength 19 8 20 -mat 1 1 1 1 2 1 -dir 1 2 3 4 5 6 -orient +1.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E+00

# Element "Zerolength4Beam": eleTag NodeI NodeJ -mat matTag1 matTag2 ... -dir dir1 dir2 ... <-orient x1 x2 x3 y1 y2 y3> <-doRayleigh flag>
element zeroLength 20 21 7 -mat 1 1 1 1 2 1 -dir 1 2 3 4 5 6 -orient +1.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E+00

# Element "Zerolength4Beam": eleTag NodeI NodeJ -mat matTag1 matTag2 ... -dir dir1 dir2 ... <-orient x1 x2 x3 y1 y2 y3> <-doRayleigh flag>
element zeroLength 21 7 22 -mat 1 1 1 1 2 1 -dir 1 2 3 4 5 6 -orient +0.000000E+00 +1.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E+00

# Element "Zerolength4Beam": eleTag NodeI NodeJ -mat matTag1 matTag2 ... -dir dir1 dir2 ... <-orient x1 x2 x3 y1 y2 y3> <-doRayleigh flag>
element zeroLength 22 23 6 -mat 1 1 1 1 2 1 -dir 1 2 3 4 5 6 -orient +0.000000E+00 +1.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E+00

# Element "Zerolength4Beam": eleTag NodeI NodeJ -mat matTag1 matTag2 ... -dir dir1 dir2 ... <-orient x1 x2 x3 y1 y2 y3> <-doRayleigh flag>
element zeroLength 23 6 24 -mat 1 1 1 1 2 1 -dir 1 2 3 4 5 6 -orient -1.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E+00

# Element "Zerolength4Beam": eleTag NodeI NodeJ -mat matTag1 matTag2 ... -dir dir1 dir2 ... <-orient x1 x2 x3 y1 y2 y3> <-doRayleigh flag>
element zeroLength 24 25 5 -mat 1 1 1 1 2 1 -dir 1 2 3 4 5 6 -orient -1.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E+00

# Define damping parameters
# -------------------------

# Define time series
# ------------------
timeSeries Linear 1 -factor +1.000000E+00

# Start of analysis generation
# ============================

# Get initial stiffness
# ---------------------
initialize

puts "o Analysis: EigenDefaultCase"
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# Define recorder(s)
# ------------------
# Node Recorder "EigenVectors": fileName <nodeTag> dof respType
recorder Node -file EigenDefaultCase_Node_EigenVectors_EigenVec_1.out -time -nodeRange 1 25 -dof 1 2 3 4 5 6 eigen1
recorder Node -file EigenDefaultCase_Node_EigenVectors_EigenVec_2.out -time -nodeRange 1 25 -dof 1 2 3 4 5 6 eigen2
recorder Node -file EigenDefaultCase_Node_EigenVectors_EigenVec_3.out -time -nodeRange 1 25 -dof 1 2 3 4 5 6 eigen3

# Define analysis options
# -----------------------
# AnalysisOptn "EigenDefault": Type: Eigen
# ----------------------------------------
# Constraint Handler
constraints Plain
# DOF Numberer
numberer Plain
# System of Equations
system UmfPack -lvalueFact 10
# Convergence Test
test NormDispIncr +1.000000E-12 25 0 2
# Solution Algorithm
algorithm Newton
# Integrator
integrator Newmark +5.000000E-01 +2.500000E-01
# Analysis Type
analysis Transient

# Analyze model
# -------------
set pi [expr acos(-1.0)]
set eigFID [open EigenDefaultCase_Node_EigenVectors_EigenVal.out w]
set lambda [eigen -fullGenLapack 3]
puts \$eigFID " lambda omega period frequency"
foreach lambda \$lambda {
set omega [expr sqrt(\$lambda)]
set period [expr 2.0*\$pi/\$omega]
set frequ [expr 1.0/\$period]
puts \$eigFID [format " %+1.6e %+1.6e %+1.6e %+1.6e" \$lambda \$omega \$period \$frequ]
}
close \$eigFID

# Record eigenvectors
# -------------------
record

# Stop timing of this analysis sequence
# -------------------------------------
set tStop [clock clicks -milliseconds]
puts "o Time taken: [expr (\$tStop-\$tStart)/1000.0] sec"

# Clean up
# --------
wipe
set systemTime [clock seconds]
puts "\n==============================================================================="
puts "Finished OpenSees analysis: [clock format \$systemTime -format "%d-%b-%Y %H:%M:%S"]"
puts "==============================================================================="
exit

mhscott
Posts: 586
Joined: Tue Jul 06, 2004 3:38 pm
Location: Corvallis, Oregon USA
Contact:

### Re: Error with Eigen Analysis (Lumped Plasticity Approach)

The models have different initial stiffness. If this is not what you intended, then you'll need to double check your models. If you have flexible springs at the ends of elastic beams in the lumped plasticity approach, you'll have different stiffness compared to the distributed plasticity approach.

ankurjain
Posts: 55
Joined: Sun Aug 16, 2020 10:08 pm

### Re: Error with Eigen Analysis (Lumped Plasticity Approach)

mhscott wrote:
Tue Sep 01, 2020 6:06 am
The models have different initial stiffness. If this is not what you intended, then you'll need to double check your models. If you have flexible springs at the ends of elastic beams in the lumped plasticity approach, you'll have different stiffness compared to the distributed plasticity approach.
So how can I change that ?
kindly suggest...because I need the same Eigen Values

mhscott
Posts: 586
Joined: Tue Jul 06, 2004 3:38 pm
Location: Corvallis, Oregon USA
Contact:

### Re: Error with Eigen Analysis (Lumped Plasticity Approach)

You can increase the initial stiffness of the spring elements. Make them approximately rigid (three or four orders of magnitude higher than actual initial stiffness) then see if the eigenvalues are more similar.

mhscott
Posts: 586
Joined: Tue Jul 06, 2004 3:38 pm
Location: Corvallis, Oregon USA
Contact:

### Re: Error with Eigen Analysis (Lumped Plasticity Approach)

BTW, what you are reporting is not an "error" in the eigenvalue analysis

ankurjain
Posts: 55
Joined: Sun Aug 16, 2020 10:08 pm

### Re: Error with Eigen Analysis (Lumped Plasticity Approach)

mhscott wrote:
Tue Sep 01, 2020 6:32 am
You can increase the initial stiffness of the spring elements. Make them approximately rigid (three or four orders of magnitude higher than actual initial stiffness) then see if the eigenvalues are more similar.
Thank You so much sir