period of the structure
Moderators: silvia, selimgunay, Moderators
period of the structure
I have two models, 1)withouth P-Delta effects, 2) with P-Delta effects. besides the p-delta thing, the two models are exactly same. but the fundamental periods i got from these two models are the same. so i am wondering is there any other things i need to change in my model besides the geomtransf command.
Thanks a lot~
Thanks a lot~
1) Period: If you do not apply any load on your model, the period will be the same in both cases. However, if you get the period, perform gravity analysis, and then get the period again, you will find (usually) that your period has increased (if you had pdelta on as geotransf)
2) Deformation: Simply run your model without pdelta, plot the recorded displacements, and then rerun WITH pdelta and compare
2) Deformation: Simply run your model without pdelta, plot the recorded displacements, and then rerun WITH pdelta and compare
Hi i got a new problem, i have 20 set of this model, they are 1-story, 2-story, 3-story till to 20- story, but it only works for structure under 5-story, when the structure is more than 5-story, i got an error says argument not in valid range, but i didnt change anything besides the number of element.
Thanks a lot
Thanks a lot
let me explain more, for the two models, say a n-story building, 1)without p-delta(i put the eigen command after element command, be4 pattern plain command), 2)with P-delta (i put the eigen command at the end of script). if n is under 5, i can get different period, but when n is larger than 5, i got an error says argument not in valid range.
please help me with that problem.
thanks~
please help me with that problem.
thanks~
Hi thank you so much for your reply
the code is :
for { set runnum 1 } { $runnum <= 17} { incr runnum } {
wipe;
model basic -ndm 3 -ndf 6;
file mkdir Trial_6pd;
source Units&Constants.tcl;
set alpha [expr 0.01+2.0*($runnum-1)];
#set alpha [expr 0.01+2.0*(1-1)];
set LCol [expr 1.0*$m];
set E [expr 30*$GPa];
set u [expr 0.2];
set ACol 1.0;
set ICol 1.0;
set G [expr $E*$ICol*$alpha*$alpha/$ACol/$LCol/$LCol] ;
set lCol [expr $LCol/6.0];
set xCol [expr $LCol/100.0];
node 1 0 0 [expr 0*$lCol];
node 101 0 0 [expr 1*$lCol];
node 102 0 0 [expr 2*$lCol];
node 103 0 0 [expr 3*$lCol];
node 104 0 0 [expr 4*$lCol];
node 105 0 0 [expr 5*$lCol];
node 106 0 0 [expr 6*$lCol];
node 2 $xCol 0 [expr 0*$lCol];
node 201 $xCol 0 [expr 1*$lCol];
node 202 $xCol 0 [expr 2*$lCol];
node 203 $xCol 0 [expr 3*$lCol];
node 204 $xCol 0 [expr 4*$lCol];
node 205 $xCol 0 [expr 5*$lCol];
node 206 $xCol 0 [expr 6*$lCol];
fix 1 1 1 1 1 1 1;
fix 2 1 1 1 1 1 1 ;
equalDOF 101 201 1 ;
equalDOF 102 202 1 ;
equalDOF 103 203 1 ;
equalDOF 104 204 1 ;
equalDOF 105 205 1 ;
equalDOF 106 206 1 ;
set gamma [expr 22000.00*$N/pow($m,3)];
set mass1 [expr $gamma/$g];
set mass2 [expr $mass1*$ACol*$lCol];
set weight2 [expr $mass2*$g] ;
mass 101 $mass2 0 0 0 0 0 ;
mass 102 $mass2 0 0 0 0 0 ;
mass 103 $mass2 0 0 0 0 0 ;
mass 104 $mass2 0 0 0 0 0 ;
mass 105 $mass2 0 0 0 0 0 ;
mass 106 $mass2 0 0 0 0 0 ;
set ShearmatTag 1;
set ShearmatTagDUMMY 2;
uniaxialMaterial Elastic $ShearmatTag [expr $G*1.0];
uniaxialMaterial Elastic $ShearmatTagDUMMY [expr $G*0.0000001];
set ColTransfTag 5;
set ColTransfTagPD 6; # Column geometric transformation
set numIntgrPts 6; # Number of integration points
geomTransf Linear $ColTransfTag 0.0 1.0 0.0;
geomTransf PDelta $ColTransfTagPD 0.0 1.0 0.0;
set ColShearSecTagDUMMY 3;
set ColMomentSecTagDUMMY 4;
set ColShearSecTag 5;
set ColMomentSecTag 6;
set FlagPoleTag 7;
section Elastic $ColShearSecTagDUMMY [expr 0.0000001*$E] [expr 1.0*$ACol] [expr 1.0*$ICol] [expr 1.0*$ICol] [expr 1.0*$G] 1000000.0;
section Elastic $ColMomentSecTagDUMMY [expr 1.0*$E] [expr 1.0*$ACol] [expr 1.0*$ICol] [expr 1.0*$ICol] [expr 0.0000001*$G] 1000000.0;
section Elastic $FlagPoleTag [expr 0.01*$E] [expr 1.0*$ACol] [expr 0.01*$ICol] [expr 0.01*$ICol] [expr 0.01*$G] 1000000.0;
section Aggregator $ColMomentSecTag $ShearmatTagDUMMY Vy $ShearmatTagDUMMY Vz -section $ColMomentSecTagDUMMY ;
section Aggregator $ColShearSecTag $ShearmatTag Vy $ShearmatTag Vz -section $ColShearSecTagDUMMY ;
element nonlinearBeamColumn 101 1 101 $numIntgrPts $ColMomentSecTag $ColTransfTagPD;
element nonlinearBeamColumn 102 101 102 $numIntgrPts $ColMomentSecTag $ColTransfTagPD;
element nonlinearBeamColumn 103 102 103 $numIntgrPts $ColMomentSecTag $ColTransfTagPD;
element nonlinearBeamColumn 104 103 104 $numIntgrPts $ColMomentSecTag $ColTransfTagPD;
element nonlinearBeamColumn 105 104 105 $numIntgrPts $ColMomentSecTag $ColTransfTagPD;
element nonlinearBeamColumn 106 105 106 $numIntgrPts $ColMomentSecTag $ColTransfTagPD;
element nonlinearBeamColumn 201 2 201 $numIntgrPts $ColShearSecTag $ColTransfTag;
element nonlinearBeamColumn 202 201 202 $numIntgrPts $ColShearSecTag $ColTransfTag;
element nonlinearBeamColumn 203 202 203 $numIntgrPts $ColShearSecTag $ColTransfTag;
element nonlinearBeamColumn 204 203 204 $numIntgrPts $ColShearSecTag $ColTransfTag;
element nonlinearBeamColumn 205 204 205 $numIntgrPts $ColShearSecTag $ColTransfTag;
element nonlinearBeamColumn 206 205 206 $numIntgrPts $ColShearSecTag $ColTransfTag;
set W [expr $weight2*1.0];
pattern Plain 1 Linear {
load 101 0 0 [expr $W* -1.0] 000.0 000.0 0.00
load 102 0 0 [expr $W* -1.0] 000.0 000.0 0.00
load 103 0 0 [expr $W* -1.0] 000.0 000.0 0.00
load 104 0 0 [expr $W* -1.0] 000.0 000.0 0.00
load 105 0 0 [expr $W* -1.0] 000.0 000.0 0.00
load 106 0 0 [expr $W* -1.0] 000.0 000.0 0.00
};
set Tol 1.0e-8;
constraints Plain;
numberer Plain;
system BandGeneral;
test NormDispIncr $Tol 6;
algorithm Newton;
set Nstep 1;
set D [expr 1./$Nstep];
integrator LoadControl $D;
analysis Static;
analyze $Nstep;
loadConst -time 0.0
wipeAnalysis
set w 10000;
pattern Plain 2 Linear {
eleLoad -ele 201 -type -beamUniform [expr 1*$w] 0
eleLoad -ele 202 -type -beamUniform [expr 2*$w] 0
eleLoad -ele 203 -type -beamUniform [expr 3*$w] 0
eleLoad -ele 204 -type -beamUniform [expr 4*$w] 0
eleLoad -ele 205 -type -beamUniform [expr 5*$w] 0
eleLoad -ele 206 -type -beamUniform [expr 6*$w] 0
}
recorder Node -file Trial_6pd/Displacements$runnum.out -node 1 101 102 103 104 105 106 -dof 1 disp;
set Tol 1.0e-8;
constraints Plain;
numberer Plain;
system BandGeneral;
test NormDispIncr $Tol 6;
algorithm Newton;
set Nstep 1;
set D [expr 1./$Nstep];
integrator LoadControl $D;
analysis Static;
analyze $Nstep;
set mode 1;
loadConst -time 0.0
set mode 1;
for {set x 0} {$x<=[expr $mode-1]} {incr x} {
set w21 [eigen $mode]
set w [lindex $w21 $x]
puts "Period [expr $x+1] = [expr 2*3.1415/($w**0.5)]"
};}
puts "done";
the code is :
for { set runnum 1 } { $runnum <= 17} { incr runnum } {
wipe;
model basic -ndm 3 -ndf 6;
file mkdir Trial_6pd;
source Units&Constants.tcl;
set alpha [expr 0.01+2.0*($runnum-1)];
#set alpha [expr 0.01+2.0*(1-1)];
set LCol [expr 1.0*$m];
set E [expr 30*$GPa];
set u [expr 0.2];
set ACol 1.0;
set ICol 1.0;
set G [expr $E*$ICol*$alpha*$alpha/$ACol/$LCol/$LCol] ;
set lCol [expr $LCol/6.0];
set xCol [expr $LCol/100.0];
node 1 0 0 [expr 0*$lCol];
node 101 0 0 [expr 1*$lCol];
node 102 0 0 [expr 2*$lCol];
node 103 0 0 [expr 3*$lCol];
node 104 0 0 [expr 4*$lCol];
node 105 0 0 [expr 5*$lCol];
node 106 0 0 [expr 6*$lCol];
node 2 $xCol 0 [expr 0*$lCol];
node 201 $xCol 0 [expr 1*$lCol];
node 202 $xCol 0 [expr 2*$lCol];
node 203 $xCol 0 [expr 3*$lCol];
node 204 $xCol 0 [expr 4*$lCol];
node 205 $xCol 0 [expr 5*$lCol];
node 206 $xCol 0 [expr 6*$lCol];
fix 1 1 1 1 1 1 1;
fix 2 1 1 1 1 1 1 ;
equalDOF 101 201 1 ;
equalDOF 102 202 1 ;
equalDOF 103 203 1 ;
equalDOF 104 204 1 ;
equalDOF 105 205 1 ;
equalDOF 106 206 1 ;
set gamma [expr 22000.00*$N/pow($m,3)];
set mass1 [expr $gamma/$g];
set mass2 [expr $mass1*$ACol*$lCol];
set weight2 [expr $mass2*$g] ;
mass 101 $mass2 0 0 0 0 0 ;
mass 102 $mass2 0 0 0 0 0 ;
mass 103 $mass2 0 0 0 0 0 ;
mass 104 $mass2 0 0 0 0 0 ;
mass 105 $mass2 0 0 0 0 0 ;
mass 106 $mass2 0 0 0 0 0 ;
set ShearmatTag 1;
set ShearmatTagDUMMY 2;
uniaxialMaterial Elastic $ShearmatTag [expr $G*1.0];
uniaxialMaterial Elastic $ShearmatTagDUMMY [expr $G*0.0000001];
set ColTransfTag 5;
set ColTransfTagPD 6; # Column geometric transformation
set numIntgrPts 6; # Number of integration points
geomTransf Linear $ColTransfTag 0.0 1.0 0.0;
geomTransf PDelta $ColTransfTagPD 0.0 1.0 0.0;
set ColShearSecTagDUMMY 3;
set ColMomentSecTagDUMMY 4;
set ColShearSecTag 5;
set ColMomentSecTag 6;
set FlagPoleTag 7;
section Elastic $ColShearSecTagDUMMY [expr 0.0000001*$E] [expr 1.0*$ACol] [expr 1.0*$ICol] [expr 1.0*$ICol] [expr 1.0*$G] 1000000.0;
section Elastic $ColMomentSecTagDUMMY [expr 1.0*$E] [expr 1.0*$ACol] [expr 1.0*$ICol] [expr 1.0*$ICol] [expr 0.0000001*$G] 1000000.0;
section Elastic $FlagPoleTag [expr 0.01*$E] [expr 1.0*$ACol] [expr 0.01*$ICol] [expr 0.01*$ICol] [expr 0.01*$G] 1000000.0;
section Aggregator $ColMomentSecTag $ShearmatTagDUMMY Vy $ShearmatTagDUMMY Vz -section $ColMomentSecTagDUMMY ;
section Aggregator $ColShearSecTag $ShearmatTag Vy $ShearmatTag Vz -section $ColShearSecTagDUMMY ;
element nonlinearBeamColumn 101 1 101 $numIntgrPts $ColMomentSecTag $ColTransfTagPD;
element nonlinearBeamColumn 102 101 102 $numIntgrPts $ColMomentSecTag $ColTransfTagPD;
element nonlinearBeamColumn 103 102 103 $numIntgrPts $ColMomentSecTag $ColTransfTagPD;
element nonlinearBeamColumn 104 103 104 $numIntgrPts $ColMomentSecTag $ColTransfTagPD;
element nonlinearBeamColumn 105 104 105 $numIntgrPts $ColMomentSecTag $ColTransfTagPD;
element nonlinearBeamColumn 106 105 106 $numIntgrPts $ColMomentSecTag $ColTransfTagPD;
element nonlinearBeamColumn 201 2 201 $numIntgrPts $ColShearSecTag $ColTransfTag;
element nonlinearBeamColumn 202 201 202 $numIntgrPts $ColShearSecTag $ColTransfTag;
element nonlinearBeamColumn 203 202 203 $numIntgrPts $ColShearSecTag $ColTransfTag;
element nonlinearBeamColumn 204 203 204 $numIntgrPts $ColShearSecTag $ColTransfTag;
element nonlinearBeamColumn 205 204 205 $numIntgrPts $ColShearSecTag $ColTransfTag;
element nonlinearBeamColumn 206 205 206 $numIntgrPts $ColShearSecTag $ColTransfTag;
set W [expr $weight2*1.0];
pattern Plain 1 Linear {
load 101 0 0 [expr $W* -1.0] 000.0 000.0 0.00
load 102 0 0 [expr $W* -1.0] 000.0 000.0 0.00
load 103 0 0 [expr $W* -1.0] 000.0 000.0 0.00
load 104 0 0 [expr $W* -1.0] 000.0 000.0 0.00
load 105 0 0 [expr $W* -1.0] 000.0 000.0 0.00
load 106 0 0 [expr $W* -1.0] 000.0 000.0 0.00
};
set Tol 1.0e-8;
constraints Plain;
numberer Plain;
system BandGeneral;
test NormDispIncr $Tol 6;
algorithm Newton;
set Nstep 1;
set D [expr 1./$Nstep];
integrator LoadControl $D;
analysis Static;
analyze $Nstep;
loadConst -time 0.0
wipeAnalysis
set w 10000;
pattern Plain 2 Linear {
eleLoad -ele 201 -type -beamUniform [expr 1*$w] 0
eleLoad -ele 202 -type -beamUniform [expr 2*$w] 0
eleLoad -ele 203 -type -beamUniform [expr 3*$w] 0
eleLoad -ele 204 -type -beamUniform [expr 4*$w] 0
eleLoad -ele 205 -type -beamUniform [expr 5*$w] 0
eleLoad -ele 206 -type -beamUniform [expr 6*$w] 0
}
recorder Node -file Trial_6pd/Displacements$runnum.out -node 1 101 102 103 104 105 106 -dof 1 disp;
set Tol 1.0e-8;
constraints Plain;
numberer Plain;
system BandGeneral;
test NormDispIncr $Tol 6;
algorithm Newton;
set Nstep 1;
set D [expr 1./$Nstep];
integrator LoadControl $D;
analysis Static;
analyze $Nstep;
set mode 1;
loadConst -time 0.0
set mode 1;
for {set x 0} {$x<=[expr $mode-1]} {incr x} {
set w21 [eigen $mode]
set w [lindex $w21 $x]
puts "Period [expr $x+1] = [expr 2*3.1415/($w**0.5)]"
};}
puts "done";
sorry about that, here is the units file
# UNITS AND CONSTANTS
# Define basic units
set m 1.0; # meter
set sec 1.0; # second
set kN 1.0; # kiloNewton
# Define constants
set PI [expr 2*asin(1.0)]; # pi
set g [expr 9.81*$m/pow($sec,2)]; # gravity
set U 1.e+10; # a really large number
set u [expr 1./$U]; # a really small number
# Define dependent units
set mm [expr $m*1.e-3]; # milimetre
set cm [expr $m*1.e-2]; # centimetre
set N [expr $kN*1.e-3]; # Newton
set Pa [expr $N/pow($m,2)]; # Pascal
set kPa [expr $kN/pow($m,2)]; # kiloPascal
set MPa [expr ($kN*1.e+3)/pow($m,2)]; # MegaPascal
set GPa [expr ($kN*1.e+6)/pow($m,2)]; # GigaPascal
set kg [expr $N/$g]; # kilogram
set t [expr $kg*1.e+3]; # ton
# US customary units
set IUS [expr 1.e-3*pow(25.4,2)/4.448222];
set USI [expr 1.e+3*4.448222/pow(25.4,2)];
# UNITS AND CONSTANTS
# Define basic units
set m 1.0; # meter
set sec 1.0; # second
set kN 1.0; # kiloNewton
# Define constants
set PI [expr 2*asin(1.0)]; # pi
set g [expr 9.81*$m/pow($sec,2)]; # gravity
set U 1.e+10; # a really large number
set u [expr 1./$U]; # a really small number
# Define dependent units
set mm [expr $m*1.e-3]; # milimetre
set cm [expr $m*1.e-2]; # centimetre
set N [expr $kN*1.e-3]; # Newton
set Pa [expr $N/pow($m,2)]; # Pascal
set kPa [expr $kN/pow($m,2)]; # kiloPascal
set MPa [expr ($kN*1.e+3)/pow($m,2)]; # MegaPascal
set GPa [expr ($kN*1.e+6)/pow($m,2)]; # GigaPascal
set kg [expr $N/$g]; # kilogram
set t [expr $kg*1.e+3]; # ton
# US customary units
set IUS [expr 1.e-3*pow(25.4,2)/4.448222];
set USI [expr 1.e+3*4.448222/pow(25.4,2)];
what makes me confused is that why when i have structure lower than 6-story, the code works, but if it is higher than 6-story, the code doesnt work...and give me the argument not in valid range error...
and i have one question, when i wanna consider p-delta effects, as you can see, i add the P on column one, and lateral load on the other column, is that okay? or i need to make a third column to subject the P?
thanks!
and i have one question, when i wanna consider p-delta effects, as you can see, i add the P on column one, and lateral load on the other column, is that okay? or i need to make a third column to subject the P?
thanks!