Problem in modeling CBF
Moderators: silvia, selimgunay, Moderators
Problem in modeling CBF
dear all,
I've modeled a 1bay 1 story inverted v cbf braced frame. I used the equaldof command for pinned connections. I get a very large 1st mode period along with errors.I've put my script below.
When I model it as a moment frame without braces, it's ok but when I model it braced or even unbraced but with pinned column-beam connection, I get the same error.
Plz help
regards,
_________________________________
wipe
file mkdir data
model BasicBuilder -ndm 2
#units N,m,s
source Wsection.tcl; # procedure to define fiber W section
node 1 0.0 0.0
node 2 0.0 3.2
node 3 3.45 0.0
node 4 3.45 3.2
node 5 0.0 3.2
node 6 3.45 3.2
node 7 1.725 3.2
node 8 1.725 3.2
node 9 0.8689 1.5965
node 10 2.5939 1.6034
#node 11 0.0 0.0
#node 12 3.45 0.0
mass 2 19.25 1.e-9 0.
mass 4 19.25 1.e-9 0.
mass 7 43.76 1.e-9 0.
fix 1 1 1 0
fix 3 1 1 0
#rigid diaphragm
equalDOF 2 4 1
#columns to beam pinned connections
equalDOF 2 5 1 2
equalDOF 4 6 1 2
#brace to columns & beam pinned connections
equalDOF 7 8 1 2
#equalDOF 11 1 1 2
#equalDOF 12 3 1 2
set transftagbeam 1
set transftagcolumn 2
set transftagbrace 3
geomTransf Linear $transftagbeam
geomTransf PDelta $transftagcolumn
geomTransf Corotational $transftagbrace
#set material tag
set foolad 1
uniaxialMaterial Steel01 $foolad 2.4e8 2e11 0.01
#column & Brace section: W100x100x4 mm
set ColBraceTag 1
set a 0.1
set t 0.004
set b [expr $a-2*$t];
section fiberSec 1 {
patch quad 1 6 20 [expr $b/2] [expr $a/2] [expr $b/2] [expr -$a/2] [expr $a/2] [expr -$a/2] [expr $a/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr $a/2] [expr -$b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr -$b/2] [expr -$b/2] [expr -$a/2] [expr $b/2] [expr -$a/2] [expr $b/2] [expr -$b/2]
patch quad 1 6 20 [expr -$a/2] [expr $a/2] [expr -$a/2] [expr -$a/2] [expr -$b/2] [expr -$a/2] [expr -$b/2] [expr $a/2]
}
#Beam section: IPE200
set BeamSecTag 2
set d 0.2; #depth
set bf .1 ; #flange width
set tf .0085 ; #flange thickness
set tw 0.0056 ; #web thickness
set nfdw 20 ; #number of fibers along dw
set nftw 2; # number of fibers along tw
set nfbf 16; # number of fibers along bf
set nftf 4; # number of fibers along tf
Wsection $BeamSecTag $foolad $d $bf $tf $tw $nfdw $nftw $nfbf $nftf
##Elements
#columns
set np 6
element nonlinearBeamColumn 1 1 2 $np $ColBraceTag $transftagcolumn
element nonlinearBeamColumn 3 4 3 $np $ColBraceTag $transftagcolumn
#beam
element nonlinearBeamColumn 2 5 6 $np $BeamSecTag $transftagbeam
#Braces
element nonlinearBeamColumn 4 1 9 $np $ColBraceTag $transftagbrace
element nonlinearBeamColumn 5 9 8 $np $ColBraceTag $transftagbrace
element nonlinearBeamColumn 6 8 10 $np $ColBraceTag $transftagbrace
element nonlinearBeamColumn 7 10 3 $np $ColBraceTag $transftagbrace
#element truss 4 11 9 $ColBraceTag
#element truss 5 9 8 $ColBraceTag
#element truss 6 8 10 $ColBraceTag
#element truss 7 10 12 $ColBraceTag
puts " Model Built! "
eigen 1;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(Bare Unloaded frame)=[expr $T1gravity]sec"
I've modeled a 1bay 1 story inverted v cbf braced frame. I used the equaldof command for pinned connections. I get a very large 1st mode period along with errors.I've put my script below.
When I model it as a moment frame without braces, it's ok but when I model it braced or even unbraced but with pinned column-beam connection, I get the same error.
Plz help
regards,
_________________________________
wipe
file mkdir data
model BasicBuilder -ndm 2
#units N,m,s
source Wsection.tcl; # procedure to define fiber W section
node 1 0.0 0.0
node 2 0.0 3.2
node 3 3.45 0.0
node 4 3.45 3.2
node 5 0.0 3.2
node 6 3.45 3.2
node 7 1.725 3.2
node 8 1.725 3.2
node 9 0.8689 1.5965
node 10 2.5939 1.6034
#node 11 0.0 0.0
#node 12 3.45 0.0
mass 2 19.25 1.e-9 0.
mass 4 19.25 1.e-9 0.
mass 7 43.76 1.e-9 0.
fix 1 1 1 0
fix 3 1 1 0
#rigid diaphragm
equalDOF 2 4 1
#columns to beam pinned connections
equalDOF 2 5 1 2
equalDOF 4 6 1 2
#brace to columns & beam pinned connections
equalDOF 7 8 1 2
#equalDOF 11 1 1 2
#equalDOF 12 3 1 2
set transftagbeam 1
set transftagcolumn 2
set transftagbrace 3
geomTransf Linear $transftagbeam
geomTransf PDelta $transftagcolumn
geomTransf Corotational $transftagbrace
#set material tag
set foolad 1
uniaxialMaterial Steel01 $foolad 2.4e8 2e11 0.01
#column & Brace section: W100x100x4 mm
set ColBraceTag 1
set a 0.1
set t 0.004
set b [expr $a-2*$t];
section fiberSec 1 {
patch quad 1 6 20 [expr $b/2] [expr $a/2] [expr $b/2] [expr -$a/2] [expr $a/2] [expr -$a/2] [expr $a/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr $a/2] [expr -$b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr -$b/2] [expr -$b/2] [expr -$a/2] [expr $b/2] [expr -$a/2] [expr $b/2] [expr -$b/2]
patch quad 1 6 20 [expr -$a/2] [expr $a/2] [expr -$a/2] [expr -$a/2] [expr -$b/2] [expr -$a/2] [expr -$b/2] [expr $a/2]
}
#Beam section: IPE200
set BeamSecTag 2
set d 0.2; #depth
set bf .1 ; #flange width
set tf .0085 ; #flange thickness
set tw 0.0056 ; #web thickness
set nfdw 20 ; #number of fibers along dw
set nftw 2; # number of fibers along tw
set nfbf 16; # number of fibers along bf
set nftf 4; # number of fibers along tf
Wsection $BeamSecTag $foolad $d $bf $tf $tw $nfdw $nftw $nfbf $nftf
##Elements
#columns
set np 6
element nonlinearBeamColumn 1 1 2 $np $ColBraceTag $transftagcolumn
element nonlinearBeamColumn 3 4 3 $np $ColBraceTag $transftagcolumn
#beam
element nonlinearBeamColumn 2 5 6 $np $BeamSecTag $transftagbeam
#Braces
element nonlinearBeamColumn 4 1 9 $np $ColBraceTag $transftagbrace
element nonlinearBeamColumn 5 9 8 $np $ColBraceTag $transftagbrace
element nonlinearBeamColumn 6 8 10 $np $ColBraceTag $transftagbrace
element nonlinearBeamColumn 7 10 3 $np $ColBraceTag $transftagbrace
#element truss 4 11 9 $ColBraceTag
#element truss 5 9 8 $ColBraceTag
#element truss 6 8 10 $ColBraceTag
#element truss 7 10 12 $ColBraceTag
puts " Model Built! "
eigen 1;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(Bare Unloaded frame)=[expr $T1gravity]sec"
Re: Problem in modeling CBF
You need to make a constraint between nodes 2 and 7 too. Just add “equalDOF 2 7 1” to your code and the warnings will disappear.
Hope that helps!
Maryam
Hope that helps!
Maryam
Re: Problem in modeling CBF
My previous suggestion solves the period problem, but still you need to define 2 beam elements at the top of the bracing:
#beam
element nonlinearBeamColumn 2 5 7 $np $BeamSecTag $transftagbeam
element nonlinearBeamColumn 8 7 6 $np $BeamSecTag $transftagbeam
#beam
element nonlinearBeamColumn 2 5 7 $np $BeamSecTag $transftagbeam
element nonlinearBeamColumn 8 7 6 $np $BeamSecTag $transftagbeam
Re: Problem in modeling CBF
Many thanks Maryam,
It solved the problem.
By the way , are u iranian?
regards
It solved the problem.
By the way , are u iranian?
regards
Re: Problem in modeling CBF
No problem!
Yes, I'm Iranian.
Yes, I'm Iranian.
Re: Problem in modeling CBF
Once again many thanks,
mamnoon
mamnoon
Re: Problem in modeling CBF
Dear Eidini,
I performed pushover analysis in my CBF-inverted V model successfully, but in IDA analysis, I've encountered the following problems:
1) The model is showing very stiff behavior, for example it gives very small drift values at very high intensities which is wrong.
2) The roof isn't behaving as a rigid diaphragm, i.e. nodes 2,5,7,4 give similar displacements while nodes 6 and 8 give
completely different values.
It seems that shear forces aren't successfully transfering to the roof. I've pasted my IDA code.
What do u think is wrong?
If you've modeled a CBF and EBF (both inverted V) before in opensees, I'd appreciate u giving it to me.
regards
________________________________________________
for {set i 0} {$i<=10} {incr i} {
wipe
wipeAnalysis
variable TolDynamic 1.e-8; # Convergence Test:tolerance
set s [expr 2+4*$i]
set gmf [expr $s/10.]
###for collapse point
#set s [expr 30+1*$i]
#set gmf [expr $s/10.]
puts "gmf=[expr $gmf]"
puts ******************
file mkdir x[expr $gmf]
###Model
model BasicBuilder -ndm 2
#units N,m,s
source Wsection.tcl; # procedure to define fiber W section
node 1 0.0 0.0
node 2 0.0 3.2
node 3 3.45 0.0
node 4 3.45 3.2
node 5 0.0 3.2
node 6 3.45 3.2
node 7 1.725 3.2
node 8 1.725 3.2
node 9 0.8689 1.5965
node 10 2.5939 1.6034
set mass 523.07
mass 2 [expr 38.48+19.25+$mass] 1.e-9 0.
mass 4 [expr 38.48+19.25+$mass] 1.e-9 0.
mass 7 [expr 43.76+$mass] 1.e-9 0.
fix 1 1 1 0
fix 3 1 1 0
#rigid diaphragm
equalDOF 2 4 1
equalDOF 2 7 1
#columns to beam pinned connections
equalDOF 2 5 1 2
equalDOF 4 6 1 2
#brace to columns & beam pinned connections
equalDOF 7 8 1 2
set transftagbeam 1
set transftagcolumn 2
set transftagbrace 3
geomTransf Linear $transftagbeam
geomTransf PDelta $transftagcolumn
geomTransf Corotational $transftagbrace
set material tag
set foolad 1
uniaxialMaterial Steel01 $foolad 2.4e8 2e11 0.01
#column & Brace section: W100x100x4 mm
set ColBraceTag 1
set a 0.1
set t 0.004
set b [expr $a-2*$t];
section fiberSec 1 {
patch quad 1 6 20 [expr $b/2] [expr $a/2] [expr $b/2] [expr -$a/2] [expr $a/2] [expr -$a/2] [expr $a/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr $a/2] [expr -$b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr -$b/2] [expr -$b/2] [expr -$a/2] [expr $b/2] [expr -$a/2] [expr $b/2] [expr -$b/2]
patch quad 1 6 20 [expr -$a/2] [expr $a/2] [expr -$a/2] [expr -$a/2] [expr -$b/2] [expr -$a/2] [expr -$b/2] [expr $a/2]
}
#Beam section: IPE200
set BeamSecTag 2
set d 0.2; #depth
set bf .1 ; #flange width
set tf .0085 ; #flange thickness
set tw 0.0056 ; #web thickness
set nfdw 20 ; #number of fibers along dw
set nftw 2; # number of fibers along tw
set nfbf 16; # number of fibers along bf
set nftf 4; # number of fibers along tf
Wsection $BeamSecTag $foolad $d $bf $tf $tw $nfdw $nftw $nfbf $nftf
##Elements
#columns
set np 6
element nonlinearBeamColumn 1 1 2 $np $ColBraceTag $transftagcolumn
element nonlinearBeamColumn 4 4 3 $np $ColBraceTag $transftagcolumn
#beam
element nonlinearBeamColumn 2 5 7 $np $BeamSecTag $transftagbeam
element nonlinearBeamColumn 3 7 6 $np $BeamSecTag $transftagbeam
#Braces
element nonlinearBeamColumn 5 1 9 $np $ColBraceTag $transftagbrace
element nonlinearBeamColumn 6 9 8 $np $ColBraceTag $transftagbrace
element nonlinearBeamColumn 7 8 10 $np $ColBraceTag $transftagbrace
element nonlinearBeamColumn 8 10 3 $np $ColBraceTag $transftagbrace
#section Elastic 700 2.e11 1 1.e20
###Stiff Roof Truss
#element truss 700 2 8 700
#element truss 701 8 6 700
puts " Model Built! "
eigen 1;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(Bare Unloaded frame)=[expr $T1gravity]sec"
recorder display "Frame" 820 0 400 400 -file namayesh
prp 90 0 0
vup 0 1 0
vpn 1 0 1
viewWindow -2.5 2.5 -2.5 2.5
display 2 5 15
##########################
#define gravity loads
pattern Plain 1 Linear {
eleLoad -ele 2 -type -beamUniform [expr -2059.4-490.33]
eleLoad -ele 3 -type -beamUniform [expr -2059.4-490.33]
}
constraints Plain
numberer Plain
system BandGeneral
test EnergyIncr 1.e-8 60
algorithm ModifiedNewton
integrator LoadControl 0.1
analysis Static
analyze 10
loadConst -time 0.0
eigen 1;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(Bare loaded frame)=[expr $T1gravity]sec"
#
##--------------------
#infill
#set deevar 2
#uniaxialMaterial Hysteretic $deevar 1e-11 0.0001 1e-11 0.003 1e-11 0.0072 -2.62e6 -0.0005 -4.54e6 -0.003 -1.36e6 -0.0072 0.8 0.2 0.0 0.0
#element truss 9 2 3 0.048 $deevar
#element truss 10 1 4 0.048 $deevar
eigen 1 ;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(loaded infilled frame)=[expr $T1gravity]sec"
####################
#recorders
recorder Node -file x[expr $gmf]/node2disp.out -time -node 2 -dof 1 disp
recorder Node -file x[expr $gmf]/node5disp.out -time -node 5 -dof 1 disp
recorder Node -file x[expr $gmf]/node7disp.out -time -node 7 -dof 1 disp
recorder Node -file x[expr $gmf]/node8disp.out -time -node 8 -dof 1 disp
recorder Node -file x[expr $gmf]/node6disp.out -time -node 6 -dof 1 disp
recorder Node -file x[expr $gmf]/node4disp.out -time -node 4 -dof 1 disp
recorder Node -file x[expr $gmf]/node1reac.out -time -node 1 -dof 1 reaction
recorder Node -file x[expr $gmf]/node3reac.out -time -node 3 -dof 1 reaction
recorder Drift -file x[expr $gmf]/driftS1.out -time -iNode 1 -jNode 2 -dof 1 -perpDirn 2
recorder EnvelopeNode -file x[expr $gmf]/envDisp2.out -time -node 2 -dof 1 disp
for {set j 1} {$j<=10} {incr j} {
recorder Element -file x[expr $gmf]/ele[expr $j].out -time -ele $j localForce
}
##EQ Loading
puts "groundmotion start!.Time: [getTime]"
#define 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 2; # 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
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping
puts "damping ok!"
#-------------------------------
### change these parameters for each record:
## TmaxAnalysis , DtAnalysis , "Series -dt .. - filepath .."
set TmaxAnalysis 49.97 ; # maximum duration of ground-motion analysis -- should be 50*$sec
set DtAnalysis 0.01; # time-step Dt for lateral analysis
#increment gmf
set accel "Series -dt 0.02 -filePath LADSPx3.8.txt -factor [expr ($gmf)*9.81]"
pattern UniformExcitation [expr $i+100] 1 -accel $accel
##Dynamic Analysis Parameters
variable constraintsTypeDynamic Transformation;
constraints $constraintsTypeDynamic ;
variable numbererTypeDynamic RCM
numberer $numbererTypeDynamic
variable systemTypeDynamic BandGeneral; # try UmfPack for large problems
system $systemTypeDynamic
variable maxNumIterDynamic 400; # Convergence Test: maximum number of iterations that will be performed before "failure to converge" is returned
variable printFlagDynamic 0; # Convergence Test: flag used to print information on convergence (optional) # 1: print information on each step;
variable testTypeDynamic EnergyIncr; # Convergence-test type
test $testTypeDynamic $TolDynamic $maxNumIterDynamic $printFlagDynamic;
variable maxNumIterConvergeDynamic 2000;
variable printFlagConvergeDynamic 0;
variable algorithmTypeDynamic KrylovNewton;
algorithm $algorithmTypeDynamic;
variable NewmarkGamma 0.5; # Newmark-integrator gamma parameter (also HHT)
variable NewmarkBeta 0.26; # Newmark-integrator beta parameter
variable integratorTypeDynamic Newmark;
integrator $integratorTypeDynamic $NewmarkGamma $NewmarkBeta
variable analysisTypeDynamic VariableTransient
analysis $analysisTypeDynamic
#-------------------------------
#
set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
#analyze $Nsteps $DtAnalysis
#loadConst -time 0.0
set ok [analyze $Nsteps $DtAnalysis]; # actually perform analysis; returns ok=0 if analysis was successful
if {$ok != 0} { ; # analysis was not successful.
# --------------------------------------------------------------------------------------------------
# change some analysis parameters to achieve convergence
# performance is slower inside this loop
# Time-controlled analysis
set ok 0;
set controlTime [getTime];
while {$controlTime < $TmaxAnalysis && $ok == 0} {
set controlTime [getTime]
set ok [analyze 1 $DtAnalysis]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $TolDynamic 1000 0
algorithm Newton -initial
set ok [analyze 1 $DtAnalysis]
test $testTypeDynamic $TolDynamic $maxNumIterDynamic 0
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .6
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying ModifiedNewton .."
algorithm ModifiedNewton
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying BFGS.."
algorithm BFGS
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
}
}; # end if ok !0
puts "Ground Motion DoneX[expr $gmf]. End Time: [getTime]"
puts ****************************************************************
puts ****************************************************************
I performed pushover analysis in my CBF-inverted V model successfully, but in IDA analysis, I've encountered the following problems:
1) The model is showing very stiff behavior, for example it gives very small drift values at very high intensities which is wrong.
2) The roof isn't behaving as a rigid diaphragm, i.e. nodes 2,5,7,4 give similar displacements while nodes 6 and 8 give
completely different values.
It seems that shear forces aren't successfully transfering to the roof. I've pasted my IDA code.
What do u think is wrong?
If you've modeled a CBF and EBF (both inverted V) before in opensees, I'd appreciate u giving it to me.
regards
________________________________________________
for {set i 0} {$i<=10} {incr i} {
wipe
wipeAnalysis
variable TolDynamic 1.e-8; # Convergence Test:tolerance
set s [expr 2+4*$i]
set gmf [expr $s/10.]
###for collapse point
#set s [expr 30+1*$i]
#set gmf [expr $s/10.]
puts "gmf=[expr $gmf]"
puts ******************
file mkdir x[expr $gmf]
###Model
model BasicBuilder -ndm 2
#units N,m,s
source Wsection.tcl; # procedure to define fiber W section
node 1 0.0 0.0
node 2 0.0 3.2
node 3 3.45 0.0
node 4 3.45 3.2
node 5 0.0 3.2
node 6 3.45 3.2
node 7 1.725 3.2
node 8 1.725 3.2
node 9 0.8689 1.5965
node 10 2.5939 1.6034
set mass 523.07
mass 2 [expr 38.48+19.25+$mass] 1.e-9 0.
mass 4 [expr 38.48+19.25+$mass] 1.e-9 0.
mass 7 [expr 43.76+$mass] 1.e-9 0.
fix 1 1 1 0
fix 3 1 1 0
#rigid diaphragm
equalDOF 2 4 1
equalDOF 2 7 1
#columns to beam pinned connections
equalDOF 2 5 1 2
equalDOF 4 6 1 2
#brace to columns & beam pinned connections
equalDOF 7 8 1 2
set transftagbeam 1
set transftagcolumn 2
set transftagbrace 3
geomTransf Linear $transftagbeam
geomTransf PDelta $transftagcolumn
geomTransf Corotational $transftagbrace
set material tag
set foolad 1
uniaxialMaterial Steel01 $foolad 2.4e8 2e11 0.01
#column & Brace section: W100x100x4 mm
set ColBraceTag 1
set a 0.1
set t 0.004
set b [expr $a-2*$t];
section fiberSec 1 {
patch quad 1 6 20 [expr $b/2] [expr $a/2] [expr $b/2] [expr -$a/2] [expr $a/2] [expr -$a/2] [expr $a/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr $a/2] [expr -$b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr -$b/2] [expr -$b/2] [expr -$a/2] [expr $b/2] [expr -$a/2] [expr $b/2] [expr -$b/2]
patch quad 1 6 20 [expr -$a/2] [expr $a/2] [expr -$a/2] [expr -$a/2] [expr -$b/2] [expr -$a/2] [expr -$b/2] [expr $a/2]
}
#Beam section: IPE200
set BeamSecTag 2
set d 0.2; #depth
set bf .1 ; #flange width
set tf .0085 ; #flange thickness
set tw 0.0056 ; #web thickness
set nfdw 20 ; #number of fibers along dw
set nftw 2; # number of fibers along tw
set nfbf 16; # number of fibers along bf
set nftf 4; # number of fibers along tf
Wsection $BeamSecTag $foolad $d $bf $tf $tw $nfdw $nftw $nfbf $nftf
##Elements
#columns
set np 6
element nonlinearBeamColumn 1 1 2 $np $ColBraceTag $transftagcolumn
element nonlinearBeamColumn 4 4 3 $np $ColBraceTag $transftagcolumn
#beam
element nonlinearBeamColumn 2 5 7 $np $BeamSecTag $transftagbeam
element nonlinearBeamColumn 3 7 6 $np $BeamSecTag $transftagbeam
#Braces
element nonlinearBeamColumn 5 1 9 $np $ColBraceTag $transftagbrace
element nonlinearBeamColumn 6 9 8 $np $ColBraceTag $transftagbrace
element nonlinearBeamColumn 7 8 10 $np $ColBraceTag $transftagbrace
element nonlinearBeamColumn 8 10 3 $np $ColBraceTag $transftagbrace
#section Elastic 700 2.e11 1 1.e20
###Stiff Roof Truss
#element truss 700 2 8 700
#element truss 701 8 6 700
puts " Model Built! "
eigen 1;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(Bare Unloaded frame)=[expr $T1gravity]sec"
recorder display "Frame" 820 0 400 400 -file namayesh
prp 90 0 0
vup 0 1 0
vpn 1 0 1
viewWindow -2.5 2.5 -2.5 2.5
display 2 5 15
##########################
#define gravity loads
pattern Plain 1 Linear {
eleLoad -ele 2 -type -beamUniform [expr -2059.4-490.33]
eleLoad -ele 3 -type -beamUniform [expr -2059.4-490.33]
}
constraints Plain
numberer Plain
system BandGeneral
test EnergyIncr 1.e-8 60
algorithm ModifiedNewton
integrator LoadControl 0.1
analysis Static
analyze 10
loadConst -time 0.0
eigen 1;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(Bare loaded frame)=[expr $T1gravity]sec"
#
##--------------------
#infill
#set deevar 2
#uniaxialMaterial Hysteretic $deevar 1e-11 0.0001 1e-11 0.003 1e-11 0.0072 -2.62e6 -0.0005 -4.54e6 -0.003 -1.36e6 -0.0072 0.8 0.2 0.0 0.0
#element truss 9 2 3 0.048 $deevar
#element truss 10 1 4 0.048 $deevar
eigen 1 ;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(loaded infilled frame)=[expr $T1gravity]sec"
####################
#recorders
recorder Node -file x[expr $gmf]/node2disp.out -time -node 2 -dof 1 disp
recorder Node -file x[expr $gmf]/node5disp.out -time -node 5 -dof 1 disp
recorder Node -file x[expr $gmf]/node7disp.out -time -node 7 -dof 1 disp
recorder Node -file x[expr $gmf]/node8disp.out -time -node 8 -dof 1 disp
recorder Node -file x[expr $gmf]/node6disp.out -time -node 6 -dof 1 disp
recorder Node -file x[expr $gmf]/node4disp.out -time -node 4 -dof 1 disp
recorder Node -file x[expr $gmf]/node1reac.out -time -node 1 -dof 1 reaction
recorder Node -file x[expr $gmf]/node3reac.out -time -node 3 -dof 1 reaction
recorder Drift -file x[expr $gmf]/driftS1.out -time -iNode 1 -jNode 2 -dof 1 -perpDirn 2
recorder EnvelopeNode -file x[expr $gmf]/envDisp2.out -time -node 2 -dof 1 disp
for {set j 1} {$j<=10} {incr j} {
recorder Element -file x[expr $gmf]/ele[expr $j].out -time -ele $j localForce
}
##EQ Loading
puts "groundmotion start!.Time: [getTime]"
#define 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 2; # 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
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping
puts "damping ok!"
#-------------------------------
### change these parameters for each record:
## TmaxAnalysis , DtAnalysis , "Series -dt .. - filepath .."
set TmaxAnalysis 49.97 ; # maximum duration of ground-motion analysis -- should be 50*$sec
set DtAnalysis 0.01; # time-step Dt for lateral analysis
#increment gmf
set accel "Series -dt 0.02 -filePath LADSPx3.8.txt -factor [expr ($gmf)*9.81]"
pattern UniformExcitation [expr $i+100] 1 -accel $accel
##Dynamic Analysis Parameters
variable constraintsTypeDynamic Transformation;
constraints $constraintsTypeDynamic ;
variable numbererTypeDynamic RCM
numberer $numbererTypeDynamic
variable systemTypeDynamic BandGeneral; # try UmfPack for large problems
system $systemTypeDynamic
variable maxNumIterDynamic 400; # Convergence Test: maximum number of iterations that will be performed before "failure to converge" is returned
variable printFlagDynamic 0; # Convergence Test: flag used to print information on convergence (optional) # 1: print information on each step;
variable testTypeDynamic EnergyIncr; # Convergence-test type
test $testTypeDynamic $TolDynamic $maxNumIterDynamic $printFlagDynamic;
variable maxNumIterConvergeDynamic 2000;
variable printFlagConvergeDynamic 0;
variable algorithmTypeDynamic KrylovNewton;
algorithm $algorithmTypeDynamic;
variable NewmarkGamma 0.5; # Newmark-integrator gamma parameter (also HHT)
variable NewmarkBeta 0.26; # Newmark-integrator beta parameter
variable integratorTypeDynamic Newmark;
integrator $integratorTypeDynamic $NewmarkGamma $NewmarkBeta
variable analysisTypeDynamic VariableTransient
analysis $analysisTypeDynamic
#-------------------------------
#
set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
#analyze $Nsteps $DtAnalysis
#loadConst -time 0.0
set ok [analyze $Nsteps $DtAnalysis]; # actually perform analysis; returns ok=0 if analysis was successful
if {$ok != 0} { ; # analysis was not successful.
# --------------------------------------------------------------------------------------------------
# change some analysis parameters to achieve convergence
# performance is slower inside this loop
# Time-controlled analysis
set ok 0;
set controlTime [getTime];
while {$controlTime < $TmaxAnalysis && $ok == 0} {
set controlTime [getTime]
set ok [analyze 1 $DtAnalysis]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $TolDynamic 1000 0
algorithm Newton -initial
set ok [analyze 1 $DtAnalysis]
test $testTypeDynamic $TolDynamic $maxNumIterDynamic 0
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .6
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying ModifiedNewton .."
algorithm ModifiedNewton
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying BFGS.."
algorithm BFGS
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
}
}; # end if ok !0
puts "Ground Motion DoneX[expr $gmf]. End Time: [getTime]"
puts ****************************************************************
puts ****************************************************************
Re: Problem in modeling CBF
Hi,
I think the problem lies in the definition of the rigid diaphragm and connectivity. For the time being, just remove the following lines (rigid diaphragm), and monitor the results. You still need to keep the definition of the beam by 2 elements.
#rigid diaphragm
equalDOF 2 4 1
equalDOF 2 7 1
Now, I’m busy. I’ll look through your code (possibly tonight), and let you know.
As for your question: I never modeled an Inverted V bracing system in OpenSees.
Good Luck!
I think the problem lies in the definition of the rigid diaphragm and connectivity. For the time being, just remove the following lines (rigid diaphragm), and monitor the results. You still need to keep the definition of the beam by 2 elements.
#rigid diaphragm
equalDOF 2 4 1
equalDOF 2 7 1
Now, I’m busy. I’ll look through your code (possibly tonight), and let you know.
As for your question: I never modeled an Inverted V bracing system in OpenSees.
Good Luck!
Re: Problem in modeling CBF
I checked displacements of nodes 2, 5, 7, 8, 6 and 4 in a pushover analysis of the system. They all have the same horizontal displacements. Rigid diaphragm definition works well for Static Pushover Analysis of your example then. By the way, could you please send the same EQ file to me (eidinin1 [at] Illinois [dot] edu)? I would like to see the results.
I found the following from one of Vensa’s response. You can try it, and see the differences.
“ When using nonlinear elements I would not recommend you using a equalDOF to simulate a rigid floor (you can find discussions on this topic on the message board). Instead I recommend defining masses at all beam-column connections and defining very stiff truss elements at floor level (in addition to forceBeamColumn elements) to constrain horizontal displacement.”
Hope that helps!
I found the following from one of Vensa’s response. You can try it, and see the differences.
“ When using nonlinear elements I would not recommend you using a equalDOF to simulate a rigid floor (you can find discussions on this topic on the message board). Instead I recommend defining masses at all beam-column connections and defining very stiff truss elements at floor level (in addition to forceBeamColumn elements) to constrain horizontal displacement.”
Hope that helps!
Re: Problem in modeling CBF
Many thanks for your time and devotion, I really appreciate it.
Yes, as I said there's no problem in pushover.I've send u the EQ file ( my email: mja441@gmail.com)
I'll give vesna's suggestion a try and let u know of the results.
Regards,
Mohammad
Yes, as I said there's no problem in pushover.I've send u the EQ file ( my email: mja441@gmail.com)
I'll give vesna's suggestion a try and let u know of the results.
Regards,
Mohammad
Re: Problem in modeling CBF
No problem! Thanks for the file.
My research is not on CBF systems, but I’m learning too. I’m curious what makes the different displacements of the nodes in one type of analysis while there is a constraint between them!
Anybody have any Idea?
My research is not on CBF systems, but I’m learning too. I’m curious what makes the different displacements of the nodes in one type of analysis while there is a constraint between them!
Anybody have any Idea?
Re: Problem in modeling CBF
I figured it out. As u said and suggested by vesna for nonlinearbeamcolumn elements, I used very stiff truss elements between the nodes I used for defining the beams, and removed the equaldof command and it worked!:) I got equal disp's in all nodes.
The reason for the low disp values, was due to very stiff braces. I changed brace sections to HSS5x5x2 and I got reasonble results. I've pasted my modified final model. Many thanks for your commitment and time,
Regards
_________________________________
file mkdir x[expr $gmf]
###Model
model BasicBuilder -ndm 2
#units N,m,s
source Wsection.tcl; # procedure to define fiber W section
node 1 0.0 0.0
node 2 0.0 3.2
node 3 3.45 0.0
node 4 3.45 3.2
node 5 0.0 3.2
node 6 3.45 3.2
node 7 1.725 3.2
node 8 1.725 3.2
node 9 0.8689 1.5965
node 10 2.5939 1.6034
set mass 523.07
set DL 241.42
set LL 57.48
mass 2 [expr 38.48+19.25+$mass+$DL+.2*$LL] 1.e-9 0.
mass 4 [expr 38.48+19.25+$mass+$DL+.2*$LL] 1.e-9 0.
mass 7 [expr 43.76+$mass+$DL+.2*$LL] 1.e-9 0.
fix 1 1 1 0
fix 3 1 1 0
#columns to beam pinned connections
equalDOF 2 5 1 2
equalDOF 4 6 1 2
#brace to columns & beam pinned connections
equalDOF 7 8 1 2
set transftagbeam 1
set transftagcolumn 2
set transftagbrace 3
geomTransf Linear $transftagbeam
geomTransf PDelta $transftagcolumn
geomTransf Corotational $transftagbrace
set material tag
set foolad 1
uniaxialMaterial Steel01 $foolad 2.4e8 2e11 0.01
#column section: W100x100x4 mm
set ColSecTag 1
set a 0.1
set t 0.004
set b [expr $a-2*$t];
section fiberSec 1 {
patch quad 1 6 20 [expr $b/2] [expr $a/2] [expr $b/2] [expr -$a/2] [expr $a/2] [expr -$a/2] [expr $a/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr $a/2] [expr -$b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr -$b/2] [expr -$b/2] [expr -$a/2] [expr $b/2] [expr -$a/2] [expr $b/2] [expr -$b/2]
patch quad 1 6 20 [expr -$a/2] [expr $a/2] [expr -$a/2] [expr -$a/2] [expr -$b/2] [expr -$a/2] [expr -$b/2] [expr $a/2]
}
#Brace section: W50x50x2 mm
set BraceSecTag 3
set a 0.05
set t 0.002
set b [expr $a-2*$t];
section fiberSec 3 {
patch quad 1 6 20 [expr $b/2] [expr $a/2] [expr $b/2] [expr -$a/2] [expr $a/2] [expr -$a/2] [expr $a/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr $a/2] [expr -$b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr -$b/2] [expr -$b/2] [expr -$a/2] [expr $b/2] [expr -$a/2] [expr $b/2] [expr -$b/2]
patch quad 1 6 20 [expr -$a/2] [expr $a/2] [expr -$a/2] [expr -$a/2] [expr -$b/2] [expr -$a/2] [expr -$b/2] [expr $a/2]
}
#Beam section: IPE200
set BeamSecTag 2
set d 0.2; #depth
set bf .1 ; #flange width
set tf .0085 ; #flange thickness
set tw 0.0056 ; #web thickness
set nfdw 20 ; #number of fibers along dw
set nftw 2; # number of fibers along tw
set nfbf 16; # number of fibers along bf
set nftf 4; # number of fibers along tf
Wsection $BeamSecTag $foolad $d $bf $tf $tw $nfdw $nftw $nfbf $nftf
##Elements
#columns
set np 6
element nonlinearBeamColumn 1 1 2 $np $ColSecTag $transftagcolumn
element nonlinearBeamColumn 4 4 3 $np $ColSecTag $transftagcolumn
#beam
element nonlinearBeamColumn 2 5 7 $np $BeamSecTag $transftagbeam
element nonlinearBeamColumn 3 7 6 $np $BeamSecTag $transftagbeam
#Braces
element nonlinearBeamColumn 5 1 9 $np $BraceSecTag $transftagbrace
element nonlinearBeamColumn 6 9 8 $np $BraceSecTag $transftagbrace
element nonlinearBeamColumn 7 8 10 $np $BraceSecTag $transftagbrace
element nonlinearBeamColumn 8 10 3 $np $BraceSecTag $transftagbrace
####Stiff Roof Truss to create rigid diaphragm
uniaxialMaterial Elastic 700 10E+11
set A 1.0
element truss 701 5 7 $A 700
element truss 703 7 6 $A 700
puts " Model Built! "
eigen 1;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(Bare Unloaded frame)=[expr $T1gravity]sec"
recorder display "Frame" 500 0 600 600 -file namayesh
prp 90 0 0
vup 0 1 0
vpn 1 0 1
viewWindow -2 2 -2 2
display 2 5 15
##########################
#define gravity loads
pattern Plain 1 Linear {
eleLoad -ele 2 -type -beamUniform [expr -2059.4-490.33-4462.03]
eleLoad -ele 3 -type -beamUniform [expr -2059.4-490.33-4462.03]
}
constraints Plain
numberer Plain
system BandGeneral
test EnergyIncr 1.e-8 60
algorithm ModifiedNewton
integrator LoadControl 0.1
analysis Static
analyze 10
loadConst -time 0.0
eigen 1;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(Bare loaded frame)=[expr $T1gravity]sec"
The reason for the low disp values, was due to very stiff braces. I changed brace sections to HSS5x5x2 and I got reasonble results. I've pasted my modified final model. Many thanks for your commitment and time,
Regards
_________________________________
file mkdir x[expr $gmf]
###Model
model BasicBuilder -ndm 2
#units N,m,s
source Wsection.tcl; # procedure to define fiber W section
node 1 0.0 0.0
node 2 0.0 3.2
node 3 3.45 0.0
node 4 3.45 3.2
node 5 0.0 3.2
node 6 3.45 3.2
node 7 1.725 3.2
node 8 1.725 3.2
node 9 0.8689 1.5965
node 10 2.5939 1.6034
set mass 523.07
set DL 241.42
set LL 57.48
mass 2 [expr 38.48+19.25+$mass+$DL+.2*$LL] 1.e-9 0.
mass 4 [expr 38.48+19.25+$mass+$DL+.2*$LL] 1.e-9 0.
mass 7 [expr 43.76+$mass+$DL+.2*$LL] 1.e-9 0.
fix 1 1 1 0
fix 3 1 1 0
#columns to beam pinned connections
equalDOF 2 5 1 2
equalDOF 4 6 1 2
#brace to columns & beam pinned connections
equalDOF 7 8 1 2
set transftagbeam 1
set transftagcolumn 2
set transftagbrace 3
geomTransf Linear $transftagbeam
geomTransf PDelta $transftagcolumn
geomTransf Corotational $transftagbrace
set material tag
set foolad 1
uniaxialMaterial Steel01 $foolad 2.4e8 2e11 0.01
#column section: W100x100x4 mm
set ColSecTag 1
set a 0.1
set t 0.004
set b [expr $a-2*$t];
section fiberSec 1 {
patch quad 1 6 20 [expr $b/2] [expr $a/2] [expr $b/2] [expr -$a/2] [expr $a/2] [expr -$a/2] [expr $a/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr $a/2] [expr -$b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr -$b/2] [expr -$b/2] [expr -$a/2] [expr $b/2] [expr -$a/2] [expr $b/2] [expr -$b/2]
patch quad 1 6 20 [expr -$a/2] [expr $a/2] [expr -$a/2] [expr -$a/2] [expr -$b/2] [expr -$a/2] [expr -$b/2] [expr $a/2]
}
#Brace section: W50x50x2 mm
set BraceSecTag 3
set a 0.05
set t 0.002
set b [expr $a-2*$t];
section fiberSec 3 {
patch quad 1 6 20 [expr $b/2] [expr $a/2] [expr $b/2] [expr -$a/2] [expr $a/2] [expr -$a/2] [expr $a/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr $a/2] [expr -$b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr -$b/2] [expr -$b/2] [expr -$a/2] [expr $b/2] [expr -$a/2] [expr $b/2] [expr -$b/2]
patch quad 1 6 20 [expr -$a/2] [expr $a/2] [expr -$a/2] [expr -$a/2] [expr -$b/2] [expr -$a/2] [expr -$b/2] [expr $a/2]
}
#Beam section: IPE200
set BeamSecTag 2
set d 0.2; #depth
set bf .1 ; #flange width
set tf .0085 ; #flange thickness
set tw 0.0056 ; #web thickness
set nfdw 20 ; #number of fibers along dw
set nftw 2; # number of fibers along tw
set nfbf 16; # number of fibers along bf
set nftf 4; # number of fibers along tf
Wsection $BeamSecTag $foolad $d $bf $tf $tw $nfdw $nftw $nfbf $nftf
##Elements
#columns
set np 6
element nonlinearBeamColumn 1 1 2 $np $ColSecTag $transftagcolumn
element nonlinearBeamColumn 4 4 3 $np $ColSecTag $transftagcolumn
#beam
element nonlinearBeamColumn 2 5 7 $np $BeamSecTag $transftagbeam
element nonlinearBeamColumn 3 7 6 $np $BeamSecTag $transftagbeam
#Braces
element nonlinearBeamColumn 5 1 9 $np $BraceSecTag $transftagbrace
element nonlinearBeamColumn 6 9 8 $np $BraceSecTag $transftagbrace
element nonlinearBeamColumn 7 8 10 $np $BraceSecTag $transftagbrace
element nonlinearBeamColumn 8 10 3 $np $BraceSecTag $transftagbrace
####Stiff Roof Truss to create rigid diaphragm
uniaxialMaterial Elastic 700 10E+11
set A 1.0
element truss 701 5 7 $A 700
element truss 703 7 6 $A 700
puts " Model Built! "
eigen 1;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(Bare Unloaded frame)=[expr $T1gravity]sec"
recorder display "Frame" 500 0 600 600 -file namayesh
prp 90 0 0
vup 0 1 0
vpn 1 0 1
viewWindow -2 2 -2 2
display 2 5 15
##########################
#define gravity loads
pattern Plain 1 Linear {
eleLoad -ele 2 -type -beamUniform [expr -2059.4-490.33-4462.03]
eleLoad -ele 3 -type -beamUniform [expr -2059.4-490.33-4462.03]
}
constraints Plain
numberer Plain
system BandGeneral
test EnergyIncr 1.e-8 60
algorithm ModifiedNewton
integrator LoadControl 0.1
analysis Static
analyze 10
loadConst -time 0.0
eigen 1;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(Bare loaded frame)=[expr $T1gravity]sec"
Re: Problem in modeling CBF
I’m glad that the suggestion worked and you solved the problem.
Best of luck in your research!
Best of luck in your research!