The natural periods of the structure are differnt before and after analyzing just 1 step

################################################################################
## 10-STORY BUILDING MODEL WITH CONCENTRATED PLASTICITY IN ROTATIONAL SPRINGS ##
################################################################################
wipe;
wipeAnalysis;
file mkdir Data;
model BasicBuilder -ndm 2 -ndf 3;
##############################################################################
# FRAME INPUT DATA
##############################################################################
set NStory 10;
set NBay 5;
set LCol 3.; # First story height is considered 4m using ($level-1)*$LCol+1.
set LBeam 5.;
set nodeMass 18.5e3;
###########################
# COLOUMN & BEAM SECTIONS #
###########################
set E 25.e9;
# Beam: 60X40 50X40 50X30 40X30 Col:60X60 50X50 40X40
set A "0.32 0.26 0.2 0.15 0. 0. 0. 0. 0. 0. 0.52 0.35 0.21 0. 0. 0. 0. 0. 0. 0.";
set I "0.0105 0.0055 0.0043 0.0018 0. 0. 0. 0. 0. 0. 0.018 0.0078 0.0026 0. 0. 0. 0. 0. 0. 0.";
###############################
# ROTATIONAL SPRINGS SECTIONS #
###############################
# Beam: 60X40 50X40 50X30 40X30 Col:60X60 50X50 40X40
set My "50.e4 31.e4 27.e4 13.7e4 0. 0. 0. 0. 0. 0. 105.e4 58.e4 35.e4 0. 0. 0. 0. 0. 0. 0.";
#set Eo "19.e7 15.e7 11.e7 5.8e7 0. 0. 0. 0. 0. 0. 34.e7 18.2e7 11.e7 0. 0. 0. 0. 0. 0. 0.";
set Eo "19.e9 15.e9 11.e9 5.8e9 0. 0. 0. 0. 0. 0. 34.e9 18.2e9 11.e9 0. 0. 0. 0. 0. 0. 0.";
set b 0.;
################ WHICH SECTION FOR WHICH STORY ################
set beamSecStory "6 7 9 15 20 0 0 0 0";
set colSecStory "4 8 10 15 20 0 0 0 0";
##############################################################################
# FRAME GEOMETRY
##############################################################################
for {set level 1} {$level <= [expr $NStory+1]} {incr level} {
for {set pier 1} {$pier <= [expr $NBay+1]} {incr pier} {
if {$level == 1} {
set nodeID [expr ($level-1)*($NBay+1)+$pier];
node $nodeID [expr ($pier-1)*$LBeam] [expr ($level-1)*$LCol];
} elseif {$level == [expr $NStory+1]} {
if {$pier == 1 || $pier == ($NBay+1)} {
for {set i 1} {$i <= 3} {incr i} {
set nodeID [expr $nodeID+1];
node $nodeID [expr ($pier-1)*$LBeam] [expr ($level-1)*$LCol+1];
}
} else {
for {set i 1} {$i <= 4} {incr i} {
set nodeID [expr $nodeID+1];
node $nodeID [expr ($pier-1)*$LBeam] [expr ($level-1)*$LCol+1];
}
}
} else {
if {$pier == 1 || $pier == ($NBay+1)} {
for {set i 1} {$i <= 4} {incr i} {
set nodeID [expr $nodeID+1];
node $nodeID [expr ($pier-1)*$LBeam] [expr ($level-1)*$LCol+1];
}
} else {
for {set i 1} {$i <= 5} {incr i} {
set nodeID [expr $nodeID+1];
node $nodeID [expr ($pier-1)*$LBeam] [expr ($level-1)*$LCol+1];
}
}
}
}
};
for {set pier 1} {$pier <= [expr $NBay+1]} {incr pier} {
set nodeID [expr $nodeID+1];
node $nodeID [expr ($pier-1)*$LBeam] 0;
}
for {set nodeID 1} {$nodeID <= [expr $NBay+1]} {incr nodeID} {
fix $nodeID 1 1 1;
}
##############################################################################
# NODAL MASS
##############################################################################
set nodeID [expr $NBay+1];
for {set level 1} {$level <= [expr $NStory]} {incr level} {
for {set pier 1} {$pier <= [expr $NBay+1]} {incr pier} {
if {$level == $NStory} {
if {$pier == 1 || $pier == ($NBay+1)} {
mass $nodeID [expr $nodeMass/2] 1.e-9 0.;
set nodeID [expr $nodeID+3];
} else {
mass $nodeID $nodeMass 1.e-9 0.;
set nodeID [expr $nodeID+4];
}
} else {
if {$pier == 1 || $pier == ($NBay+1)} {
mass $nodeID [expr $nodeMass/2] 1.e-9 0.;
set nodeID [expr $nodeID+4];
} else {
mass $nodeID $nodeMass 1.e-9 0.;
set nodeID [expr $nodeID+5];
}
}
}
};
#######################################
# MOMENT-ROTATION BEHAVIOR OF SPRINGS #
#######################################
for {set matID 1} {$matID <= 20} {incr matID} {
uniaxialMaterial Steel01 $matID [lindex $My $matID-1] [lindex $Eo $matID-1] $b;
}
############################
# GEOMETRIC TRANSFORMATION #
############################
set IDColTransf 1;
set IDBeamTransf 2;
geomTransf Linear $IDColTransf;
geomTransf Linear $IDBeamTransf;
##############################################################################
# BEAM AND COLUMN ELEMENTS
##############################################################################
set noStoryNode [expr 5*($NBay-1)+8];
################ NO ELONGATION for BEAMS or COLUMNS ################
for {set level 1} {$level <= $NStory} {incr level} {
if {$level <= $NStory-1} {
set noNode 5;
} else {
set noNode 4;
}
set nodeLevel [expr $NBay+2+($level-1)*$noStoryNode];
for {set pier 2} {$pier <= $NBay+1} {incr pier} {
set nodeSlave [expr $nodeLevel+$noNode*($pier-1)-1];
equalDOF $nodeLevel $nodeSlave 1;
}
};
#for {set pier 1} {$pier <= $NBay+1} {incr pier} {
# for {set level 1} {$level <= $NStory-1} {incr level} {
# if {$pier == 1} {
# equalDOF $pier [expr $pier+($NBay+1+($pier-1)*4)+($level-1)*$noStoryNode] 2;
# } else {
# equalDOF $pier [expr $pier+($NBay+1+($pier-1)*4-1)+($level-1)*$noStoryNode] 2;
# }
# }
#};
#for {set pier 1} {$pier <= $NBay+1} {incr pier} {
# if {$pier == 1} {
# equalDOF $pier [expr $pier+($NBay+1+($pier-1)*4)+($NStory-1)*$noStoryNode-($pier-1)] 2;
# } else {
# equalDOF $pier [expr $pier+($NBay+1+($pier-1)*4-1)+($NStory-1)*$noStoryNode-($pier-1)] 2;
# }
#}
################ Assign BEAM ELEMENTS ################
set i 1;
for {set level 1} {$level <= $NStory} {incr level} {
if {$level <= [lindex $beamSecStory 0]} {
set matID 1;
} elseif {$level <= [lindex $beamSecStory 1]} {
set matID 2;
} elseif {$level <= [lindex $beamSecStory 2]} {
set matID 3;
} elseif {$level <= [lindex $beamSecStory 3]} {
set matID 4;
} elseif {$level <= [lindex $beamSecStory 4]} {
set matID 5;
} elseif {$level <= [lindex $beamSecStory 5]} {
set matID 6;
} elseif {$level <= [lindex $beamSecStory 6]} {
set matID 7;
} elseif {$level <= [lindex $beamSecStory 7]} {
set matID 8;
} elseif {$level <= [lindex $beamSecStory 8]} {
set matID 9;
} else {
set matID 10;
}
if {$level <= $NStory-1} {
set noNode 5;
} else {
set noNode 4;
}
set nodeLevel [expr $NBay+2+($level-1)*$noStoryNode];
for {set pier 1} {$pier <= $NBay} {incr pier} {
if {$pier == 1} {
element elasticBeamColumn $i [expr $nodeLevel+1] [expr $nodeLevel+$noNode] [lindex $A $matID-1] $E [lindex $I $matID-1] $IDBeamTransf;
set i [expr $i+1];
} else {
element elasticBeamColumn $i [expr $nodeLevel+$noNode*($pier-1)+1] [expr $nodeLevel+$noNode*$pier] [lindex $A $matID-1] $E [lindex $I $matID-1] $IDBeamTransf;
set i [expr $i+1];
}
}
}
################ Assign COLUMN ELEMENTS ################
set i 1;
# Column for Story 1
set noNode 5;
set matID 11;
for {set pier 1} {$pier <= [expr $NBay+1]} {incr pier} {
if {$pier == [expr $NBay+1]} {
element elasticBeamColumn [expr 1000+$i] [expr $noStoryNode*$NStory+$pier] [expr ($NBay+1)+2+($pier-1)*$noNode] [lindex $A $matID-1] $E [lindex $I $matID-1] $IDColTransf;
set i [expr $i+1];
} else {
element elasticBeamColumn [expr 1000+$i] [expr $noStoryNode*$NStory+$pier] [expr ($NBay+1)+3+($pier-1)*$noNode] [lindex $A $matID-1] $E [lindex $I $matID-1] $IDColTransf;
set i [expr $i+1];
}
}
# Column for Story 2 to $Nstory-1
for {set level 2} {$level <= $NStory-1} {incr level} {
if {$level <= [lindex $colSecStory 0]} {
set matID 11;
} elseif {$level <= [lindex $colSecStory 1]} {
set matID 12;
} elseif {$level <= [lindex $colSecStory 2]} {
set matID 13;
} elseif {$level <= [lindex $colSecStory 3]} {
set matID 14;
} elseif {$level <= [lindex $colSecStory 4]} {
set matID 15;
} elseif {$level <= [lindex $colSecStory 5]} {
set matID 16;
} elseif {$level <= [lindex $colSecStory 6]} {
set matID 17;
} elseif {$level <= [lindex $colSecStory 7]} {
set matID 18;
} elseif {$level <= [lindex $colSecStory 8]} {
set matID 19;
} else {
set matID 20;
}
set nodeLevel [expr $NBay+2+($level-1)*$noStoryNode];
for {set pier 1} {$pier <= [expr $NBay+1]} {incr pier} {
if {$pier == 1} {
element elasticBeamColumn [expr 1000+$i] [expr $nodeLevel+($pier-1)*$noNode-$noStoryNode+3] [expr $nodeLevel+($pier-1)*$noNode+2] [lindex $A $matID-1] $E [lindex $I $matID-1] $IDColTransf;
set i [expr $i+1];
} elseif {$pier == [expr $NBay+1]} {
element elasticBeamColumn [expr 1000+$i] [expr $nodeLevel+($pier-1)*$noNode-$noStoryNode+2] [expr $nodeLevel+($pier-1)*$noNode+1] [lindex $A $matID-1] $E [lindex $I $matID-1] $IDColTransf;
set i [expr $i+1];
} else {
element elasticBeamColumn [expr 1000+$i] [expr $nodeLevel+($pier-1)*$noNode-$noStoryNode+3] [expr $nodeLevel+($pier-1)*$noNode+2] [lindex $A $matID-1] $E [lindex $I $matID-1] $IDColTransf;
set i [expr $i+1];
}
}
}
# Column for Story $NStory
set level $NStory;
if {$level <= [lindex $colSecStory 0]} {
set matID 11;
} elseif {$level <= [lindex $colSecStory 1]} {
set matID 12;
} elseif {$level <= [lindex $colSecStory 2]} {
set matID 13;
} elseif {$level <= [lindex $colSecStory 3]} {
set matID 14;
} elseif {$level <= [lindex $colSecStory 4]} {
set matID 15;
} elseif {$level <= [lindex $colSecStory 5]} {
set matID 16;
} elseif {$level <= [lindex $colSecStory 6]} {
set matID 17;
} elseif {$level <= [lindex $colSecStory 7]} {
set matID 18;
} elseif {$level <= [lindex $colSecStory 8]} {
set matID 19;
} else {
set matID 20;
}
set nodeLevel [expr $NBay+2+($level-1)*$noStoryNode];
for {set pier 1} {$pier <= [expr $NBay+1]} {incr pier} {
if {$pier == [expr $NBay+1]} {
element elasticBeamColumn [expr 1000+$i] [expr $nodeLevel+($pier-1)*$noNode-$noStoryNode+2] [expr $nodeLevel+($pier-1)*$noNode+2-$pier] [lindex $A $matID-1] $E [lindex $I $matID-1] $IDColTransf;
set i [expr $i+1];
} else {
element elasticBeamColumn [expr 1000+$i] [expr $nodeLevel+($pier-1)*$noNode-$noStoryNode+3] [expr $nodeLevel+($pier-1)*$noNode+3-$pier] [lindex $A $matID-1] $E [lindex $I $matID-1] $IDColTransf;
set i [expr $i+1];
}
}
##############################################################################
# ROTATIONAL SPRING ELEMENTS
##############################################################################
################ Assign BEAM SPRINGS ################
set i 1;
for {set level 1} {$level <= $NStory} {incr level} {
if {$level <= [lindex $beamSecStory 0]} {
set matID 1;
} elseif {$level <= [lindex $beamSecStory 1]} {
set matID 2;
} elseif {$level <= [lindex $beamSecStory 2]} {
set matID 3;
} elseif {$level <= [lindex $beamSecStory 3]} {
set matID 4;
} elseif {$level <= [lindex $beamSecStory 4]} {
set matID 5;
} elseif {$level <= [lindex $beamSecStory 5]} {
set matID 6;
} elseif {$level <= [lindex $beamSecStory 6]} {
set matID 7;
} elseif {$level <= [lindex $beamSecStory 7]} {
set matID 8;
} elseif {$level <= [lindex $beamSecStory 8]} {
set matID 9;
} else {
set matID 10;
}
if {$level <= $NStory-1} {
set noNode 5;
} else {
set noNode 4;
}
set nodeLevel [expr $NBay+2+($level-1)*$noStoryNode];
for {set pier 1} {$pier <= [expr $NBay+1]} {incr pier} {
if {$pier == 1} {
element zeroLength [expr 2000+$i] [expr $nodeLevel] [expr $nodeLevel+1] -mat $matID -dir 6;
equalDOF [expr $nodeLevel] [expr $nodeLevel+1] 1 2;
set i [expr $i+1];
} elseif {$pier == [expr $NBay+1]} {
element zeroLength [expr 2000+$i] [expr $nodeLevel+$noNode*($pier-1)-1] [expr $nodeLevel+$noNode*($pier-1)] -mat $matID -dir 6;
equalDOF [expr $nodeLevel+$noNode*($pier-1)-1] [expr $nodeLevel+$noNode*($pier-1)] 1 2;
set i [expr $i+1];
} else {
element zeroLength [expr 2000+$i] [expr $nodeLevel+$noNode*($pier-1)-1] [expr $nodeLevel+$noNode*($pier-1)] -mat $matID -dir 6;
equalDOF [expr $nodeLevel+$noNode*($pier-1)-1] [expr $nodeLevel+$noNode*($pier-1)] 1 2;
set i [expr $i+1];
element zeroLength [expr 2000+$i] [expr $nodeLevel+$noNode*($pier-1)-1] [expr $nodeLevel+$noNode*($pier-1)+1] -mat $matID -dir 6;
equalDOF [expr $nodeLevel+$noNode*($pier-1)-1] [expr $nodeLevel+$noNode*($pier-1)+1] 1 2;
set i [expr $i+1];
}
}
}
################ Assign COLUMN SPRINGS ################
set i 1;
for {set level 1} {$level <= $NStory} {incr level} {
if {$level <= [lindex $colSecStory 0]} {
set matID 11;
} elseif {$level <= [lindex $colSecStory 1]} {
set matID 12;
} elseif {$level <= [lindex $colSecStory 2]} {
set matID 13;
} elseif {$level <= [lindex $colSecStory 3]} {
set matID 14;
} elseif {$level <= [lindex $colSecStory 4]} {
set matID 15;
} elseif {$level <= [lindex $colSecStory 5]} {
set matID 16;
} elseif {$level <= [lindex $colSecStory 6]} {
set matID 17;
} elseif {$level <= [lindex $colSecStory 7]} {
set matID 18;
} elseif {$level <= [lindex $colSecStory 8]} {
set matID 19;
} else {
set matID 20;
}
if {$level <= $NStory-1} {
set noNode 5;
} else {
set noNode 4;
}
set nodeLevel [expr $NBay+2+($level-1)*$noStoryNode];
for {set pier 1} {$pier <= [expr $NBay+1]} {incr pier} {
if {$pier == 1} {
element zeroLength [expr 3000+$i] [expr $nodeLevel] [expr $nodeLevel+2] -mat $matID -dir 6;
equalDOF [expr $nodeLevel] [expr $nodeLevel+2] 1 2;
set i [expr $i+1];
} elseif {$pier == [expr $NBay+1]} {
element zeroLength [expr 3000+$i] [expr $nodeLevel+$noNode*($pier-1)-1] [expr $nodeLevel+$noNode*($pier-1)+1] -mat $matID -dir 6;
equalDOF [expr $nodeLevel+$noNode*($pier-1)-1] [expr $nodeLevel+$noNode*($pier-1)+1] 1 2;
set i [expr $i+1];
} else {
element zeroLength [expr 3000+$i] [expr $nodeLevel+$noNode*($pier-1)-1] [expr $nodeLevel+$noNode*($pier-1)+2] -mat $matID -dir 6;
equalDOF [expr $nodeLevel+$noNode*($pier-1)-1] [expr $nodeLevel+$noNode*($pier-1)+2] 1 2;
set i [expr $i+1];
}
}
}
for {set level 1} {$level <= $NStory-1} {incr level} {
if {$level < [lindex $colSecStory 0]} {
set matID 11;
} elseif {$level < [lindex $colSecStory 1]} {
set matID 12;
} elseif {$level < [lindex $colSecStory 2]} {
set matID 13;
} elseif {$level < [lindex $colSecStory 3]} {
set matID 14;
} elseif {$level < [lindex $colSecStory 4]} {
set matID 15;
} elseif {$level < [lindex $colSecStory 5]} {
set matID 16;
} elseif {$level < [lindex $colSecStory 6]} {
set matID 17;
} elseif {$level < [lindex $colSecStory 7]} {
set matID 18;
} elseif {$level < [lindex $colSecStory 8]} {
set matID 19;
} else {
set matID 20;
}
if {$level <= $NStory-1} {
set noNode 5;
} else {
set noNode 4;
}
set nodeLevel [expr $NBay+2+($level-1)*$noStoryNode];
for {set pier 1} {$pier <= [expr $NBay+1]} {incr pier} {
if {$pier == 1} {
element zeroLength [expr 3000+$i] [expr $nodeLevel] [expr $nodeLevel+3] -mat $matID -dir 6;
equalDOF [expr $nodeLevel] [expr $nodeLevel+3] 1 2;
set i [expr $i+1];
} elseif {$pier == [expr $NBay+1]} {
element zeroLength [expr 3000+$i] [expr $nodeLevel+$noNode*($pier-1)-1] [expr $nodeLevel+$noNode*($pier-1)+2] -mat $matID -dir 6;
equalDOF [expr $nodeLevel+$noNode*($pier-1)-1] [expr $nodeLevel+$noNode*($pier-1)+2] 1 2;
set i [expr $i+1];
} else {
element zeroLength [expr 3000+$i] [expr $nodeLevel+$noNode*($pier-1)-1] [expr $nodeLevel+$noNode*($pier-1)+3] -mat $matID -dir 6;
equalDOF [expr $nodeLevel+$noNode*($pier-1)-1] [expr $nodeLevel+$noNode*($pier-1)+3] 1 2;
set i [expr $i+1];
}
}
}
for {set nodeID 1} {$nodeID <= [expr $NBay+1]} {incr nodeID} {
element zeroLength [expr 3000+$i] $nodeID [expr $noStoryNode*$NStory+$nodeID] -mat 11 -dir 6;
equalDOF $nodeID [expr $noStoryNode*$NStory+$nodeID] 1 2;
set i [expr $i+1];
}
puts "model built.";
eigen 10;
for {set i 0} {$i < 10} {incr i} {
puts "[expr 2*3.1416/(pow([lindex [eigen 10] $i],0.5))]";
}
recorder Node -file Data/Disp1-10.out -time -node 7 35 63 91 119 147 175 203 231 259 -dof 1 disp;
recorder Node -file Data/DispVer1-10.out -time -node 7 35 63 91 119 147 175 203 231 259 -dof 2 disp;
###############################################################################
## PUSHOVER ANALYSIS
###############################################################################
################ PUSHOVER LOADS ################
#set FPush "1.6e4 3.2e4 5.2e4 7.4e4 10.2e4 12.6e4 15.1e4 18.5e4 21.4e4 25.4e4";
#pattern Plain 20 Linear {
# for {set level 1} {$level <= [expr $NStory]} {incr level} {
# load [expr 7+($level-1)*$noStoryNode] [lindex $FPush $level-1] 0. 0.;
# }
#};
#
#
################ PUSHOVER SOLVER ################
#constraints Plain;
#numberer RCM;
#system BandGeneral;
#test NormDispIncr 1.e-8 10 2;
#algorithm NewtonLineSearch 0.8;
#integrator DisplacementControl [expr 7+($NStory-1)*$noStoryNode] 1 0.002;
#analysis Static;
#analyze 1;
#
#puts "\n******** Periods after Pushover **********"
#eigen 10;
#for {set i 0} {$i < 10} {incr i} {
# puts "[expr 2*3.1416/(pow([lindex [eigen 10] $i],0.5))]";
#}
###############################################################################
## GRAVITY LOAD ANALYSIS
###############################################################################
############### GRAVITY LOADS ################
set i 1;
pattern Plain 30 Linear {
for {set level 1} {$level <= $NStory} {incr level} {
for {set pier 1} {$pier <= $NBay} {incr pier} {
eleLoad -ele $i -type -beamUniform -4.5e4; # BEAMS LOAD
set i [expr $i+1];
}
}
};
############### GRAVITY SOLVER ################
constraints Plain;
numberer RCM;
system BandGeneral;
test NormDispIncr 1.e-8 8;
algorithm Newton;
integrator LoadControl 0.1;
analysis Static;
analyze 1;
puts "\n******** Periods after Gravity **********"
eigen 10;
for {set i 0} {$i < 10} {incr i} {
puts "[expr 2*3.1416/(pow([lindex [eigen 10] $i],0.5))]";
}