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.
Modal Pushover
Moderators: silvia, selimgunay, Moderators
Re: Modal Pushover
There is no option of outputting only transverse dofs. You will have to write your own procedure to extract the data you need.
-
- Posts: 22
- Joined: Tue Oct 02, 2012 12:24 pm
- Location: Budapest University of Technology and Economincs
Re: Modal Pushover
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
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