Modal Pushover

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

Moderators: silvia, selimgunay, Moderators

Post Reply
evgin
Posts: 64
Joined: Tue Dec 06, 2011 3:18 pm
Location: UCLA

Modal Pushover

Post by evgin »

I'd like to perform a modal pushover analysis in the transverse direction of my 3D , 6 DOF bridge.

To this end, I need to get several transverse mode shapes.

Since I am assigning different masses to different DOFs at each node, using the below code gives me a vector of 126 (21*6) elements for the nodes which are 21.

for { set k 1 } { $k <= $numModes } { incr k } {
recorder Node -file [format "modes/mode%i.out" $k] -nodeRange 100 120 -dof 1 2 3 4 5 6 "eigen $k"


Question: Can, I like set dof 2 and get the transverse mode shapes? I need the transverse eigen -values.

If not, then how can I get the transverse mode shapes, It would be difficult if I just look at the deformed shapes of the 3d bridge to recognize which one is transverse or so.
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Modal Pushover

Post by vesna »

There is no option of outputting only transverse dofs. You will have to write your own procedure to extract the data you need.
Ricsey
Posts: 22
Joined: Tue Oct 02, 2012 12:24 pm
Location: Budapest University of Technology and Economincs

Re: Modal Pushover

Post by Ricsey »

Hi!

I'm working on this method too and I have found a lot of problems solution.

Use [nodeEigenvector $node $mode $dir] and write it into a file.

Calculate the modal participation ratios and you can sort the mode shapes by the ratios.
Here's my script to calculate the modal participation ratios:
"""""""""""""""""
proc calculate_modalmass { modeNum dir } {
#################################################
#Calcuates modal masses in $modeNum at $dir with:
#
#(fi_transpose * M * fi)^2
#fi: eigenvector
#M: mass diagonal matrix
#################################################

# Calculate modal mass in actual direction
set NODES [getNodeTags]

set modalMassUP 0.0
set modalMassDOWN 0.0

set totalMass 0.0
foreach node $NODES {
set actualMass [nodeMass $node $dir]
set totalMass [expr $totalMass + $actualMass]
}

foreach node $NODES {
set m [nodeMass $node $dir]
set fi [nodeEigenvector $node $modeNum $dir]
set iota 1.0
set modalMassUP [expr $modalMassUP + $m*$fi*$iota]
for {set dof 1} {$dof < 7} {incr dof} {
set fi_dof [nodeEigenvector $node $modeNum $dof]
set m_dof [nodeMass $node $dof]
set modalMassDOWN [expr $modalMassDOWN + $fi_dof**2*$m_dof]
}
}

set modalMass [expr $modalMassUP**2 / $modalMassDOWN]

return [expr $modalMass/$totalMass]
}

set modeShapes 4
eigen $modeShapes
puts "X\tY\tZ"
for {set mode 1} {$mode < $modeShapes} {incr mode} {
puts "[calculate_modalmass $mode 1] [calculate_modalmass $mode 2] [calculate_modalmass $mode 3]"
}
""""""""""""""
IMPORTANT!!!
Can you email me? I want just only ONE reference 3D bridge model file to my msc thesis so I can check if my calculation procedures are good. Can you send me on email? I would be VERY APPRECIATE. I promise I will write you in the reference section!!!
My mail adress is: allili.hamid@gmail.com
Post Reply