Hi guy~
I'm trying to do modal analysis for 2nd floor lumped massed stick model on ndf-3 .
And I want to compare each results between SAP2000 and Opensees.
Here's my model below.
O Node 3
I
I
I
O Node 2
I
I
I
I
ㅡㅡㅡ Node 1
I fixed all of Node 1
and I fixed node 2 and 3 only Rz because the model doesn't allow rotational deformation.
and tried again with free node 2 and 3.
But results were different.
SAP2000 doesn't have difference between does restraints
But Opensees model has difference between them.
So do you guys know about fix command $node $Dx $Dy $Rz means?
Node fix problem for Modal Analysis
Moderators: silvia, selimgunay, Moderators
Re: Node fix problem for Modal Analysis
post the script so i can see how you are modeling the elements
Re: Node fix problem for Modal Analysis
# Unit (N,mm),2nd flr building
set m 0.67
set A 40000
set I 13333.33e+4
set E 25000
set L 3500
model BasicBuilder -ndm 2 -ndf 3
node 1 0.0 0.0;
node 2 0.0 $L;
node 3 0.0 [expr 2*$L];
fix 1 1 1 1;
fix 2 0 0 0;
fix 3 0 0 0;
mass 2 $m $m 0
mass 3 $m $m 0
set TransfTag 1
geomTransf Linear $TransfTag
element elasticBeamColumn 1 1 2 $A $E $I $TransfTag
element elasticBeamColumn 2 2 3 $A $E $I $TransfTag
#LOAD MODEL
source 0604.tcl
#input
set numModes 2
file mkdir MODE;
#record eigenvectors
for { set k 1 } { $k <= $numModes } { incr k } {
recorder Node -file [format "modes/mode%i.out" $k] -nodeRange 1 3 -dof 1 2 3 "eigen $k"
}
#perform eigen analysis
set lambda [eigen $numModes];
# calculate frequencies and periods of the structure
set omega {}
set f {}
set T {}
set pi 3.141593
foreach lam $lambda {
lappend omega [expr sqrt($lam)]
lappend f [expr sqrt($lam)/(2*$pi)]
lappend T [expr (2*$pi)/sqrt($lam)]
}
puts "You Made it!"
puts "periods are $T"
puts "frequencies are $f"
#write the output file cosisting of periods
set period "MODE/Periods.txt"
set Periods [open $period "w"]
foreach t $T {
puts $Periods " $t"
}
close $Periods
# Run a one step gravity load with no loading (to record eigenvectors)
#-----------------------------------------------------------------------
integrator LoadControl 0 1 0 0
# Convergence test
# tolerance maxIter displayCode
test EnergyIncr 1.0e-10 100 0
# Solution algorithm
algorithm Newton
# DOF numberer
numberer RCM
# Constraint handler
constraints Transformation
# System of equations solver
system ProfileSPD
analysis Static
set res [analyze 1]
if {$res < 0} {
puts "Modal analysis failed"
}
# DYNAMIC ground-motion analysis -------------------------------------------------------------
# create load pattern
set G 9800
timeSeries Path 1 -dt 0.005 -filePath RSN175.tcl -factor 1; # define acceleration vector from file (dt=0.005 is associated with the input file gm)
timeSeries Path 1001 -dt 0.005 -filePath RSN175.tcl -factor 1;
pattern UniformExcitation 1 1 -accel 1; # define where and how (pattern tag, dof) acceleration is applied
# set damping based on first eigen mode
set freq [expr [eigen -fullGenLapack 1]**0.5]
set dampRatio 0.05
rayleigh 0. 0. 0. [expr 2*$dampRatio/$freq]
# Define RECORDERS -------------------------------------------------------------
recorder Node -file MODE/DFree.out -time -node 3 -dof 1 2 3 disp; # displacements of free nodes
recorder Node -file MODE/AFree.out -time -node 3 -dof 1 2 3 accel; # acceleration of free nodes
recorder Node -file MODE/AFreeAb.out -timeSeries 1001 -time -node 3 -dof 1 accel; # acceleration of free nodes (Absol.)
recorder Node -file MODE/DFreeAb.out -timeSeries 1001 -time -node 3 -dof 1 disp; # displacement of free nodes (Absol.)
wipeAnalysis; # clear previously-define analysis parameters
constraints Plain; # how it handles boundary conditions
numberer Plain; # renumber dof's to minimize band-width (optimization), if you want to
system BandGeneral; # how to store and solve the system of equations in the analysis
algorithm Linear # use Linear algorithm for linear analysis
integrator Newmark 0.5 0.25 ; # determine the next time step for an analysis
analysis Transient; # define type of analysis: time-dependent
analyze 7814 0.005; # apply 7814 0.005-sec time steps in analysis
puts "YES!"
-----------------------------------------------------------------------------
And I want to know differences between "-time" and "-timeSeries" in "recorder Node".
Is it just the difference between relative and absolute ?
Thank you fmk !! It is a Big honour!!
set m 0.67
set A 40000
set I 13333.33e+4
set E 25000
set L 3500
model BasicBuilder -ndm 2 -ndf 3
node 1 0.0 0.0;
node 2 0.0 $L;
node 3 0.0 [expr 2*$L];
fix 1 1 1 1;
fix 2 0 0 0;
fix 3 0 0 0;
mass 2 $m $m 0
mass 3 $m $m 0
set TransfTag 1
geomTransf Linear $TransfTag
element elasticBeamColumn 1 1 2 $A $E $I $TransfTag
element elasticBeamColumn 2 2 3 $A $E $I $TransfTag
#LOAD MODEL
source 0604.tcl
#input
set numModes 2
file mkdir MODE;
#record eigenvectors
for { set k 1 } { $k <= $numModes } { incr k } {
recorder Node -file [format "modes/mode%i.out" $k] -nodeRange 1 3 -dof 1 2 3 "eigen $k"
}
#perform eigen analysis
set lambda [eigen $numModes];
# calculate frequencies and periods of the structure
set omega {}
set f {}
set T {}
set pi 3.141593
foreach lam $lambda {
lappend omega [expr sqrt($lam)]
lappend f [expr sqrt($lam)/(2*$pi)]
lappend T [expr (2*$pi)/sqrt($lam)]
}
puts "You Made it!"
puts "periods are $T"
puts "frequencies are $f"
#write the output file cosisting of periods
set period "MODE/Periods.txt"
set Periods [open $period "w"]
foreach t $T {
puts $Periods " $t"
}
close $Periods
# Run a one step gravity load with no loading (to record eigenvectors)
#-----------------------------------------------------------------------
integrator LoadControl 0 1 0 0
# Convergence test
# tolerance maxIter displayCode
test EnergyIncr 1.0e-10 100 0
# Solution algorithm
algorithm Newton
# DOF numberer
numberer RCM
# Constraint handler
constraints Transformation
# System of equations solver
system ProfileSPD
analysis Static
set res [analyze 1]
if {$res < 0} {
puts "Modal analysis failed"
}
# DYNAMIC ground-motion analysis -------------------------------------------------------------
# create load pattern
set G 9800
timeSeries Path 1 -dt 0.005 -filePath RSN175.tcl -factor 1; # define acceleration vector from file (dt=0.005 is associated with the input file gm)
timeSeries Path 1001 -dt 0.005 -filePath RSN175.tcl -factor 1;
pattern UniformExcitation 1 1 -accel 1; # define where and how (pattern tag, dof) acceleration is applied
# set damping based on first eigen mode
set freq [expr [eigen -fullGenLapack 1]**0.5]
set dampRatio 0.05
rayleigh 0. 0. 0. [expr 2*$dampRatio/$freq]
# Define RECORDERS -------------------------------------------------------------
recorder Node -file MODE/DFree.out -time -node 3 -dof 1 2 3 disp; # displacements of free nodes
recorder Node -file MODE/AFree.out -time -node 3 -dof 1 2 3 accel; # acceleration of free nodes
recorder Node -file MODE/AFreeAb.out -timeSeries 1001 -time -node 3 -dof 1 accel; # acceleration of free nodes (Absol.)
recorder Node -file MODE/DFreeAb.out -timeSeries 1001 -time -node 3 -dof 1 disp; # displacement of free nodes (Absol.)
wipeAnalysis; # clear previously-define analysis parameters
constraints Plain; # how it handles boundary conditions
numberer Plain; # renumber dof's to minimize band-width (optimization), if you want to
system BandGeneral; # how to store and solve the system of equations in the analysis
algorithm Linear # use Linear algorithm for linear analysis
integrator Newmark 0.5 0.25 ; # determine the next time step for an analysis
analysis Transient; # define type of analysis: time-dependent
analyze 7814 0.005; # apply 7814 0.005-sec time steps in analysis
puts "YES!"
-----------------------------------------------------------------------------
And I want to know differences between "-time" and "-timeSeries" in "recorder Node".
Is it just the difference between relative and absolute ?
Thank you fmk !! It is a Big honour!!