Eigenvalues at a certain step in dynamic analysis

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

Moderators: silvia, selimgunay, Moderators

Post Reply
kyungtae79
Posts: 27
Joined: Fri Sep 14, 2007 12:17 pm
Location: UCSD

Eigenvalues at a certain step in dynamic analysis

Post by kyungtae79 »

Hi, all

I am looking up an eigenvalue at a certain step in dynamic analysis.

For example, I am using an uniform excitation load pattern which has 878 time steps.

I am interested in the eigenvalue exactly at a 478 step.

I write down following..

...

pattern UniformExcitation 2 1 -accel $Gaccel1
pattern UniformExcitation 3 2 -accel $Gaccel2
pattern UniformExcitation 4 3 -accel $Gaccel3

#wipe analysis
constraints Penalty 1.0e+18 1.0e+18
numberer RCM
system UmfPack
test EnergyIncr 1.0e-6 20 0
algorithm KrylovNewton
integrator Newmark 0.5 0.25
analysis VariableTransient

set ok [analyze 477 0.02]
set controlTime [getTime]
puts "$controlTime"

# recorder
eval "recorder Node -file eigenvector1.out -node all -dof 1 2 3 \"eigen 1\" "
eval "recorder Node -file eigenvector2.out -node all -dof 1 2 3 \"eigen 2\" "
eval "recorder Node -file eigenvector3.out -node all -dof 1 2 3 \"eigen 3\" "
eval "recorder Node -file eigenvector4.out -node all -dof 1 2 3 \"eigen 4\" "
eval "recorder Node -file eigenvector5.out -node all -dof 1 2 3 \"eigen 5\" "
eval "recorder Node -file eigenvector6.out -node all -dof 1 2 3 \"eigen 6\" "

set ok [analyze 399 0.02]
set controlTime [getTime]
puts "$controlTime"

---------------------------------------------------------------

Is it a right way?

Otherwise, I will appreciate any suggestion on this.


All the best,
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Post by vesna »

I would do the analysis in a loop:

set Nnodes 35
set Nstep 878
set DtAnalysis 0.02
for { set k 1 } { $k <= $Nstep } { incr k } {
analyze 1 $DtAnalysis
if { $k == 478 } {
set lambda [eigen 1]
set T [expr (2*$pi)/sqrt($lambda)]
puts " fundamental period is $T "
recorder Node -file eigenvector1.out -nodeRange 1 $Nnodes -dof 1 2 3 "eigen 1"
recorder Node -file eigenvector2.out -nodeRange 1 $Nnodes -dof 1 2 3 "eigen 2"
recorder Node -file eigenvector3.out -nodeRange 1 $Nnodes -dof 1 2 3 "eigen 3"
recorder Node -file eigenvector4.out -nodeRange 1 $Nnodes -dof 1 2 3 "eigen 4"
recorder Node -file eigenvector5.out -nodeRange 1 $Nnodes -dof 1 2 3 "eigen 5"
recorder Node -file eigenvector6.out -nodeRange 1 $Nnodes -dof 1 2 3 "eigen 6"
}
}

You have to specify number of nodes (Nnodes) to match your example. For unknown reason -node all did not work so I changed it to -nodeRegion 1 $Nnodes.
Post Reply