recorde of zerolength

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

Moderators: silvia, selimgunay, Moderators

Post Reply
solmaz_moradpoor
Posts: 26
Joined: Sat Feb 13, 2010 9:59 am
Location: iran

recorde of zerolength

Post by solmaz_moradpoor »

hi dr fmk
i am sorry, i have a question again :oops:
i try to model tmd(tuned mass damper) at top of a building with 3 storey.its including of mass,damping and stiffness.in one node at top of building, i modeled stiffness and dampeing with zerolength.my problem is this that with changeing stiffness(K) and damper(C).i didnt see any change in recorde of zerolength, until i change mass they changed.
please help me
thank you.
may i post the scripts?
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

post it if small .. or make a 1 story building that exhibits the same.
solmaz_moradpoor
Posts: 26
Joined: Sat Feb 13, 2010 9:59 am
Location: iran

Post by solmaz_moradpoor »

thanks for your attention Dr fmk
the scripts are:

wipe
model BasicBuilder -ndm 2 -ndf 3;

set m 1;
set kg 1;
set sec 1;
set sec2 [expr $sec*$sec];
set m2 [expr $m*$m];
set g [expr 9.81*$m/$sec2];
set dataDir Data;
file mkdir $dataDir;
set GMdir "../GMfiles/";

set xDamp 0.02;
set PI 3.141592654

node 1 0.0 0.0
node 2 0.0 3.96
node 3 0.0 7.92
node 4 0.0 11.88

node 5 9.15 0.0
node 6 9.15 3.96
node 7 9.15 7.92
node 8 9.15 11.88

node 9 18.3 0.0
node 10 18.3 3.96
node 11 18.3 7.92
node 12 18.3 11.88
node 122 18.3 11.88
node 1222 18.3 11.88

node 13 27.45 0.0
node 14 27.45 3.96
node 15 27.45 7.92
node 16 27.45 11.88

node 17 36.6 0.0
node 18 36.6 3.96
node 19 36.6 7.92
node 20 36.6 11.88

#nodes for pinned connection

node 140 27.45 3.96
node 150 27.45 7.92
node 160 27.45 11.88

node 180 36.6 3.96
node 190 36.6 7.92
node 200 36.6 11.88

fix 1 1 1 1
fix 5 1 1 1
fix 9 1 1 1
fix 13 1 1 1
fix 17 1 1 1
#fix 122 0 1 1
#fix 1222 0 1 1

#applying pinned connection

equalDOF 14 140 1 2
equalDOF 15 150 1 2
equalDOF 16 160 1 2
equalDOF 18 180 1 2
equalDOF 19 190 1 2
equalDOF 20 200 1 2
#
equalDOF 12 122 2 3
equalDOF 122 1222 2 3
#
equalDOF 10 2 1
equalDOF 10 6 1
equalDOF 10 14 1
equalDOF 10 18 1
#
equalDOF 11 3 1
equalDOF 11 7 1
equalDOF 11 15 1
equalDOF 11 19 1
#
equalDOF 12 4 1
equalDOF 12 8 1
equalDOF 12 16 1
equalDOF 12 20 1
#


# #########################################################
set Fy1 [expr 35107570.2*$kg/$m2];
set Fy2 [expr 25277450.5*$kg/$m2];
set E [expr 20600000000*$kg/$m2];

set b 0.02;
set steel 1;
set ssteel 2;
set sssteel 3;
set K 47338.2;
set C 10648.8;
set alpha 1;

uniaxialMaterial Steel01 1 $Fy1 $E $b;
uniaxialMaterial Steel01 2 $Fy2 $E $b;
uniaxialMaterial Elastic 3 $K
uniaxialMaterial Viscous 4 $C $alpha;

set m1 48760.5;
set m2 52756.30;
set m3 3490;
mass 10 $m1 0.1 0.0
mass 11 $m1 0.1 0.0
mass 12 $m2 0.1 0.0
mass 122 $m3 0.1 0.0
mass 8 0.1 0.1 0.0
#
set Weight1 [expr $m1*$kg*$g];
set Weight2 [expr $m2*$kg*$g];
#
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
}
}

puts "$$*$$"

# Wsection $seciD $matiD $d $bf $tf $tw $nfdw $nftw $nfbf $nftf

# W14X257
Wsection 1 1 0.4166 0.4064 0.048 0.03 12 4 12 4
# W14X311
Wsection 2 1 0.4343 0.4115 0.0574 0.0358 12 4 12 4
# W33X118
Wsection 3 2 0.8357 0.2921 0.0188 0.014 12 4 12 4
# W30X116
Wsection 4 2 0.762 0.2667 0.0216 0.0144 12 4 12 4
# W24X68
Wsection 5 2 0.602 0.2278 0.0149 0.0105 12 4 12 4

geomTransf PDelta 1
geomTransf Linear 2

#element dispBeamColumn $eleTag $iNode $iNode $numintgrPts $secTag $transfTag <-mass $massDens>

# define nolinear column first row
# #########################################################
element dispBeamColumn 1 1 2 5 1 1
element dispBeamColumn 2 2 3 5 1 1
element dispBeamColumn 3 3 4 5 1 1
##########################################################
# define nolinear column second row
# #########################################################
element dispBeamColumn 4 5 6 5 2 1
element dispBeamColumn 5 6 7 5 2 1
element dispBeamColumn 6 7 8 5 2 1

# #########################################################
# define nolinear column 3rd row
# #########################################################
element dispBeamColumn 7 9 10 5 2 1
element dispBeamColumn 8 10 11 5 2 1
element dispBeamColumn 9 11 12 5 2 1

# #########################################################
# define nolinear column 4th row
# #########################################################
element dispBeamColumn 10 13 14 5 2 1
element dispBeamColumn 11 14 15 5 2 1
element dispBeamColumn 12 15 16 5 2 1

# #########################################################
# define nolinear column 5th row
# #########################################################
element dispBeamColumn 13 17 18 5 1 1
element dispBeamColumn 14 18 19 5 1 1
element dispBeamColumn 15 19 20 5 1 1
# Beam
# define nonlinear beams 1st floor
# #########################################################
element dispBeamColumn 16 2 6 5 3 2
element dispBeamColumn 17 6 10 5 3 2
element dispBeamColumn 18 10 14 5 3 2
element dispBeamColumn 19 140 180 5 3 2
# #########################################################
# define nolinear beams 2nd floor
# #########################################################
element dispBeamColumn 20 3 7 5 4 2
element dispBeamColumn 21 7 11 5 4 2
element dispBeamColumn 22 11 15 5 4 2
element dispBeamColumn 23 150 190 5 4 2
# #########################################################
# define nolinear beams 3rd floor
# #########################################################
element dispBeamColumn 24 4 8 5 5 2
element dispBeamColumn 25 8 12 5 5 2
element dispBeamColumn 26 12 16 5 5 2
element dispBeamColumn 27 160 200 5 5 2

puts "*"

element zeroLength 28 12 122 -mat 1 3 -dir 1 1;
element zeroLength 29 12 1222 -mat 1 4 -dir 1 1;

puts "**"
set mode1file "Data/mode1.txt"

set mode2file "Data/mode2.txt"

set mode3file "Data/mode3.txt"

set shearfile "Data/shear.txt"

set envelope1 "Data/EnvelopeNodeDisp .txt"

set zero1 "Data/Zerolengthdisp1.txt"

set zero2 "Data/Zerolengthdisp2.txt"

set envelope "Data/EnvelopeNodeEigenvectormode1 .txt"

recorder Node -file $mode1file -time -node 12 11 10 -dof 1 "eigen 1"

recorder Node -file $mode2file -time -node 12 11 10 -dof 1 "eigen 2"

recorder Node -file $mode3file -time -node 12 11 10 -dof 1 "eigen 3"

recorder Node -file $shearfile -time -node 1 -dof 1 reaction

recorder EnvelopeNode -file $envelope -time -node 12 11 10 -dof 1 "eigen 1"

recorder EnvelopeNode -file $envelope1 -time -node 12 11 10 -dof 1 disp

recorder Node -file $zero1 -time -node 122 -dof 1 disp;

recorder Node -file $zero2 -time -node 1222 -dof 1 disp;
#
pattern Plain 1 Linear {
load 10 0.0 -$Weight1 0.0
load 11 0.0 -$Weight1 0.0
load 12 0.0 -$Weight2 0.0

}
#
puts "*"
eigen 3
puts "*"

set Tol 1.0e-8;
constraints Plain;
numberer RCM;
system SparseGeneral;
test NormDispIncr $Tol 10;
algorithm Newton;
integrator LoadControl 0.1;
analysis Static;
analyze 10;
loadConst -time 0.0;

puts "$$$$$$"

wipeAnalysis
constraints Plain;
numberer RCM;
system BandGeneral;
test EnergyIncr 1.0e-8 10 0;
algorithm Newton;
integrator Newmark 0.5 0.25;
analysis Transient;


proc ReadSMDFile {inFilename outFilename dt} {


upvar $dt DT;

if [catch {open $inFilename r} inFileID] {
puts stderr "Cannot open $inFilename for reading"
} else {

set outFileID [open $outFilename w]


set flag 0

foreach line [split [read $inFileID] \n] {
if {[llength $line] == 0} {

continue
} elseif {$flag == 1} {

puts $outFileID $line
} else {

foreach word [split $line] {

if {$flag == 1} {
set DT $word
break
}

if {[string match $word "DT="] == 1} {set flag 1}
}
}
}
close $outFileID;
close $inFileID;
}
}

set GMdirection 1;
set GMfile "tabas.acc" ;
set GMfact 1;
set DtAnalysis [expr 0.02*$sec];
set TmaxAnalysis [expr 20*$sec];
set MpropSwitch 1.0;
set KcurrSwitch 0.0;
set KcommSwitch 1.0;
set KinitSwitch 0.0;
set nEigenI 1;
set nEigenJ 3;
set lambdaN [eigen [expr $nEigenJ]];
set lambdaI [lindex $lambdaN [expr $nEigenI-1]];
set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]];
set omegaI [expr pow($lambdaI,0.5)];
set omegaJ [expr pow($lambdaJ,0.5)];
set alphaM [expr $MpropSwitch*$xDamp*(2*$omegaI*$omegaJ)/($omegaI+$omegaJ)];
set betaKcurr [expr $KcurrSwitch*2.*$xDamp/($omegaI+$omegaJ)];
set betaKcomm [expr $KcommSwitch*2.*$xDamp/($omegaI+$omegaJ)];
set betaKinit [expr $KinitSwitch*2.*$xDamp/($omegaI+$omegaJ)];
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm;

set IDloadTag 400;

set inFile tabas.acc;

set outFile tabas.th;

ReadSMDFile $inFile $outFile dt;

set GMfatt [expr $g*$GMfact];

set AccelSeries "Series -dt $dt -filePath $outFile -factor $GMfatt";

pattern UniformExcitation $IDloadTag $GMdirection -accel $AccelSeries ;

puts "$$"

set numMode 3

set numStep 1000

for {set i 0} {$i<$numStep} {incr i 1} {

analyze 1 0.02

eigen $numMode
}
Post Reply