Hi dear friends,
I created a 2D model of a simple 3-story steel frame. After using [eigen 3], the following results are shown:
2.794791e+002 2.419159e+003 6.834482e+003
but when I want to get eigen vectors, for all nodes and dofs, all outputs are equal to zero when the mode number is 2 or 3. The syntax I used is:
recorder Node -file mode.txt -node 8 12 16 -dof 1 "eigen 2" #or "eigen 3"
record
what's wrong here?How can I get eigen vectors for all modes?
Thanks in advance.
Eigen vectors for all modes
Moderators: silvia, selimgunay, Moderators
-
- Posts: 7
- Joined: Thu Jun 27, 2013 1:04 am
- Location: Tehran University
-
- Posts: 7
- Joined: Thu Jun 27, 2013 1:04 am
- Location: Tehran University
Re: Eigen vectors for all modes
this is my code:
wipe
model basic -ndm 2 -ndf 3
#Setting of parameters..............................................................
set b 5.; #Span Length
set h 3.; #Story height
set M 100000; #Story mass (kg)
set E 2.e11; #Elastic modulus of steel
set Fy 2.354e8; #Yielding stress of steel
#reminder: Set the load pattern required data
#reminder: Set the Damping required data
#Setting of parameters..............................................................
#Nodes..............................................................................
node 1 0. 0.
node 2 $b 0.
node 3 [expr 2*$b] 0.
node 4 [expr 3*$b] 0.
node 5 0. $h
node 6 $b $h
node 7 [expr 2*$b] $h
node 8 [expr 3*$b] $h
node 9 0. [expr 2*$h]
node 10 $b [expr 2*$h]
node 11 [expr 2*$b] [expr 2*$h]
node 12 [expr 3*$b] [expr 2*$h]
node 13 0. [expr 3*$h]
node 14 $b [expr 3*$h]
node 15 [expr 2*$b] [expr 3*$h]
node 16 [expr 3*$b] [expr 3*$h]
puts "nodes done"
#Nodes..............................................................................
#Fixity.............................................................................
fixY 0.0 1 1 1
#for {set i 5} {$i<=16} {incr i 1} {
#fix $i 0 1 0
#}
for {set i 5} {$i<=13} {incr i 4} {
equalDOF $i [expr $i+1] 1
equalDOF $i [expr $i+2] 1
equalDOF $i [expr $i+3] 1
}
puts "constraints done"
#Fixity.............................................................................
geomTransf PDelta 1
uniaxialMaterial Steel01 1 $Fy $E .01
####Sections.........................................................................
proc Wsection { secID matID d bf tf tw nfdw nftw nfbf nftf} {
set dw [expr $d - 2 * $tf]
set y1 [expr -$d/2]
set y2 [expr -$dw/2]
set y3 [expr $dw/2]
set y4 [expr $d/2]
set z1 [expr -$bf/2]
set z2 [expr -$tw/2]
set z3 [expr $tw/2]
set z4 [expr $bf/2]
section fiberSec $secID {
# nfIJ nfJK yI zI yJ zJ yK zK yL zL
patch quadr $matID $nfbf $nftf $y1 $z4 $y1 $z1 $y2 $z1 $y2 $z4
patch quadr $matID $nftw $nfdw $y2 $z3 $y2 $z2 $y3 $z2 $y3 $z3
patch quadr $matID $nfbf $nftf $y3 $z4 $y3 $z1 $y4 $z1 $y4 $z4
}
}
proc Csection { secID matID d bf tf tw nfdw nftw nfbf nftf} {
set dw [expr $d - 2 * $tf]
set y1 [expr -$d/2]
set y2 [expr -$dw/2]
set y3 [expr $dw/2]
set y4 [expr $d/2]
set z1 [expr -$bf/2]
set z2 [expr -$bf/2-$tw]
set z3 [expr $bf/2]
section fiberSec $secID {
# nfIJ nfJK yI zI yJ zJ yK zK yL zL
patch quadr $matID $nftf $nfbf $y3 $z1 $y4 $z1 $y4 $z3 $y3 $z3
patch quadr $matID $nfdw $nftw $y2 $z2 $y3 $z2 $y3 $z3 $y2 $z3
patch quadr $matID $nftf $nfbf $y1 $z1 $y2 $z1 $y2 $z3 $y1 $z3
}
}
##Beam Section:
Wsection 1 1 .18 .091 .008 .0053 10 2 4 4
##Column Section:
Wsection 2 1 .30 .30 .019 .011 12 2 4 4
##Brace sections
Csection 3 1 .1 .05 .0085 .006 10 2 4 4
Csection 4 1 .08 .045 .008 .006 10 2 4 4
####Sections........................................................................
#Elements...........................................................................
element nonlinearBeamColumn 1 1 5 8 2 1
element nonlinearBeamColumn 2 5 9 8 2 1
element nonlinearBeamColumn 3 9 13 8 2 1
element nonlinearBeamColumn 4 2 6 8 2 1
element nonlinearBeamColumn 5 6 10 8 2 1
element nonlinearBeamColumn 6 10 14 8 2 1
element nonlinearBeamColumn 7 3 7 8 2 1
element nonlinearBeamColumn 8 7 11 8 2 1
element nonlinearBeamColumn 9 11 15 8 2 1
element nonlinearBeamColumn 10 4 8 8 2 1
element nonlinearBeamColumn 11 8 12 8 2 1
element nonlinearBeamColumn 12 12 16 8 2 1
element nonlinearBeamColumn 13 5 6 8 1 1
element nonlinearBeamColumn 14 9 10 8 1 1
element nonlinearBeamColumn 15 13 14 8 1 1
element nonlinearBeamColumn 16 6 7 8 1 1
element nonlinearBeamColumn 17 10 11 8 1 1
element nonlinearBeamColumn 18 14 15 8 1 1
element nonlinearBeamColumn 19 7 8 8 1 1
element nonlinearBeamColumn 20 11 12 8 1 1
element nonlinearBeamColumn 21 15 16 8 1 1
element truss 22 6 3 3
element truss 23 7 2 3
element truss 24 10 7 3
#element truss 25 11 6 3
element truss 25 14 11 4
#element truss 27 15 10 4
puts "elements done"
#Elements...........................................................................
#Masses.............................................................................
mass 6 $M 0. 1.e-5
mass 10 $M 0. 1.e-5
mass 14 $M 0. 1.e-5
puts "Mass done"
#Masses.............................................................................
#Damping...........................................................................
set xDamp 0.05; # damping ratio
set MpropSwitch 1.0;
set KcurrSwitch 0.0;
set KcommSwitch 1.0;
set KinitSwitch 0.0;
set nEigenI 1; # mode 1
set nEigenJ 3; # mode 3
set lambdaN [eigen [expr $nEigenJ]]; # eigenvalue analysis for nEigenJ modes
set lambdaI [lindex $lambdaN [expr $nEigenI-1]]; # eigenvalue mode i
set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]]; # eigenvalue mode j
set omegaI [expr pow($lambdaI,0.5)];
set omegaJ [expr pow($lambdaJ,0.5)];
set alphaM [expr $MpropSwitch*$xDamp*(2*$omegaI*$omegaJ)/($omegaI+$omegaJ)]; # M-prop. damping; D = alphaM*M
set betaKcurr [expr $KcurrSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # current-K; +beatKcurr*KCurrent
set betaKcomm [expr $KcommSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # last-committed K; +betaKcomm*KlastCommitt
set betaKinit [expr $KinitSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # initial-K; +beatKinit*Kini
puts "proportional damping.....................
alpha=$alphaM
beta=$betaKcomm
........................................."
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping
#Damping...........................................................................
#first mode period................................................................
set pi [expr 4*atan(1)]
puts "modal parameters----------------------------------
w= [expr pow([eigen 1],.5)] Rad/s
T= [expr 2*$pi/pow([eigen 1],.5)]
--------------------------------------------------"
#first mode period................................................................
#Gravity loading..................................................................
pattern Plain 1 Linear {
load 5 0. -167000. 0.;
load 9 0. -167000. 0.;
load 13 0. -167000. 0.;
load 16 0. -167000. 0.;
load 12 0. -167000. 0.;
load 8 0. -167000. 0.;
load 6 0. -334000. 0.;
load 10 0. -334000. 0.;
load 14 0. -334000. 0.;
load 15 0. -334000. 0.;
load 11 0. -334000. 0.;
load 7 0. -334000. 0.;
}
constraints Plain
numberer Plain
system BandGeneral
test NormDispIncr 1.e-8 10
algorithm ModifiedNewton
integrator LoadControl 1
analysis Static
analyze 1
loadConst -time 0.0
#Gravity loading..................................................................
recorder Node -file mode.txt -node 8 12 16 -dof 1 "eigen 2"
record
puts "[nodeEigenvector 16 2 1]"
wipe
model basic -ndm 2 -ndf 3
#Setting of parameters..............................................................
set b 5.; #Span Length
set h 3.; #Story height
set M 100000; #Story mass (kg)
set E 2.e11; #Elastic modulus of steel
set Fy 2.354e8; #Yielding stress of steel
#reminder: Set the load pattern required data
#reminder: Set the Damping required data
#Setting of parameters..............................................................
#Nodes..............................................................................
node 1 0. 0.
node 2 $b 0.
node 3 [expr 2*$b] 0.
node 4 [expr 3*$b] 0.
node 5 0. $h
node 6 $b $h
node 7 [expr 2*$b] $h
node 8 [expr 3*$b] $h
node 9 0. [expr 2*$h]
node 10 $b [expr 2*$h]
node 11 [expr 2*$b] [expr 2*$h]
node 12 [expr 3*$b] [expr 2*$h]
node 13 0. [expr 3*$h]
node 14 $b [expr 3*$h]
node 15 [expr 2*$b] [expr 3*$h]
node 16 [expr 3*$b] [expr 3*$h]
puts "nodes done"
#Nodes..............................................................................
#Fixity.............................................................................
fixY 0.0 1 1 1
#for {set i 5} {$i<=16} {incr i 1} {
#fix $i 0 1 0
#}
for {set i 5} {$i<=13} {incr i 4} {
equalDOF $i [expr $i+1] 1
equalDOF $i [expr $i+2] 1
equalDOF $i [expr $i+3] 1
}
puts "constraints done"
#Fixity.............................................................................
geomTransf PDelta 1
uniaxialMaterial Steel01 1 $Fy $E .01
####Sections.........................................................................
proc Wsection { secID matID d bf tf tw nfdw nftw nfbf nftf} {
set dw [expr $d - 2 * $tf]
set y1 [expr -$d/2]
set y2 [expr -$dw/2]
set y3 [expr $dw/2]
set y4 [expr $d/2]
set z1 [expr -$bf/2]
set z2 [expr -$tw/2]
set z3 [expr $tw/2]
set z4 [expr $bf/2]
section fiberSec $secID {
# nfIJ nfJK yI zI yJ zJ yK zK yL zL
patch quadr $matID $nfbf $nftf $y1 $z4 $y1 $z1 $y2 $z1 $y2 $z4
patch quadr $matID $nftw $nfdw $y2 $z3 $y2 $z2 $y3 $z2 $y3 $z3
patch quadr $matID $nfbf $nftf $y3 $z4 $y3 $z1 $y4 $z1 $y4 $z4
}
}
proc Csection { secID matID d bf tf tw nfdw nftw nfbf nftf} {
set dw [expr $d - 2 * $tf]
set y1 [expr -$d/2]
set y2 [expr -$dw/2]
set y3 [expr $dw/2]
set y4 [expr $d/2]
set z1 [expr -$bf/2]
set z2 [expr -$bf/2-$tw]
set z3 [expr $bf/2]
section fiberSec $secID {
# nfIJ nfJK yI zI yJ zJ yK zK yL zL
patch quadr $matID $nftf $nfbf $y3 $z1 $y4 $z1 $y4 $z3 $y3 $z3
patch quadr $matID $nfdw $nftw $y2 $z2 $y3 $z2 $y3 $z3 $y2 $z3
patch quadr $matID $nftf $nfbf $y1 $z1 $y2 $z1 $y2 $z3 $y1 $z3
}
}
##Beam Section:
Wsection 1 1 .18 .091 .008 .0053 10 2 4 4
##Column Section:
Wsection 2 1 .30 .30 .019 .011 12 2 4 4
##Brace sections
Csection 3 1 .1 .05 .0085 .006 10 2 4 4
Csection 4 1 .08 .045 .008 .006 10 2 4 4
####Sections........................................................................
#Elements...........................................................................
element nonlinearBeamColumn 1 1 5 8 2 1
element nonlinearBeamColumn 2 5 9 8 2 1
element nonlinearBeamColumn 3 9 13 8 2 1
element nonlinearBeamColumn 4 2 6 8 2 1
element nonlinearBeamColumn 5 6 10 8 2 1
element nonlinearBeamColumn 6 10 14 8 2 1
element nonlinearBeamColumn 7 3 7 8 2 1
element nonlinearBeamColumn 8 7 11 8 2 1
element nonlinearBeamColumn 9 11 15 8 2 1
element nonlinearBeamColumn 10 4 8 8 2 1
element nonlinearBeamColumn 11 8 12 8 2 1
element nonlinearBeamColumn 12 12 16 8 2 1
element nonlinearBeamColumn 13 5 6 8 1 1
element nonlinearBeamColumn 14 9 10 8 1 1
element nonlinearBeamColumn 15 13 14 8 1 1
element nonlinearBeamColumn 16 6 7 8 1 1
element nonlinearBeamColumn 17 10 11 8 1 1
element nonlinearBeamColumn 18 14 15 8 1 1
element nonlinearBeamColumn 19 7 8 8 1 1
element nonlinearBeamColumn 20 11 12 8 1 1
element nonlinearBeamColumn 21 15 16 8 1 1
element truss 22 6 3 3
element truss 23 7 2 3
element truss 24 10 7 3
#element truss 25 11 6 3
element truss 25 14 11 4
#element truss 27 15 10 4
puts "elements done"
#Elements...........................................................................
#Masses.............................................................................
mass 6 $M 0. 1.e-5
mass 10 $M 0. 1.e-5
mass 14 $M 0. 1.e-5
puts "Mass done"
#Masses.............................................................................
#Damping...........................................................................
set xDamp 0.05; # damping ratio
set MpropSwitch 1.0;
set KcurrSwitch 0.0;
set KcommSwitch 1.0;
set KinitSwitch 0.0;
set nEigenI 1; # mode 1
set nEigenJ 3; # mode 3
set lambdaN [eigen [expr $nEigenJ]]; # eigenvalue analysis for nEigenJ modes
set lambdaI [lindex $lambdaN [expr $nEigenI-1]]; # eigenvalue mode i
set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]]; # eigenvalue mode j
set omegaI [expr pow($lambdaI,0.5)];
set omegaJ [expr pow($lambdaJ,0.5)];
set alphaM [expr $MpropSwitch*$xDamp*(2*$omegaI*$omegaJ)/($omegaI+$omegaJ)]; # M-prop. damping; D = alphaM*M
set betaKcurr [expr $KcurrSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # current-K; +beatKcurr*KCurrent
set betaKcomm [expr $KcommSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # last-committed K; +betaKcomm*KlastCommitt
set betaKinit [expr $KinitSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # initial-K; +beatKinit*Kini
puts "proportional damping.....................
alpha=$alphaM
beta=$betaKcomm
........................................."
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping
#Damping...........................................................................
#first mode period................................................................
set pi [expr 4*atan(1)]
puts "modal parameters----------------------------------
w= [expr pow([eigen 1],.5)] Rad/s
T= [expr 2*$pi/pow([eigen 1],.5)]
--------------------------------------------------"
#first mode period................................................................
#Gravity loading..................................................................
pattern Plain 1 Linear {
load 5 0. -167000. 0.;
load 9 0. -167000. 0.;
load 13 0. -167000. 0.;
load 16 0. -167000. 0.;
load 12 0. -167000. 0.;
load 8 0. -167000. 0.;
load 6 0. -334000. 0.;
load 10 0. -334000. 0.;
load 14 0. -334000. 0.;
load 15 0. -334000. 0.;
load 11 0. -334000. 0.;
load 7 0. -334000. 0.;
}
constraints Plain
numberer Plain
system BandGeneral
test NormDispIncr 1.e-8 10
algorithm ModifiedNewton
integrator LoadControl 1
analysis Static
analyze 1
loadConst -time 0.0
#Gravity loading..................................................................
recorder Node -file mode.txt -node 8 12 16 -dof 1 "eigen 2"
record
puts "[nodeEigenvector 16 2 1]"
Re: Eigen vectors for all modes
remove your [eigen 1] commands!
-
- Posts: 7
- Joined: Thu Jun 27, 2013 1:04 am
- Location: Tehran University
Re: Eigen vectors for all modes
I removed all [eigen 1] commands but the error was not solved. After using [eigen 3] instead of [eigen 1] it worked erfectly. I think it's a little strange!!!
Thanks a million for your help.
Thanks a million for your help.