hi
how can i create a steel box section
or is there any ready tcl file like Wsection
steel box section
Moderators: silvia, selimgunay, Moderators
-
- Posts: 4
- Joined: Sun Mar 14, 2010 9:16 am
- Location: KNtu
it's only 4 patch commands instead of 3!!
here:
[code]
proc BoxSection {secID matID D B T nfTBl nfTBt nfSl nfSt} {
# ###################################################################
# Wsection $secID $matID $d $bf $tf $tw $nfTBl $nfTBt $nfSl $nfSt
# ###################################################################
# create a simple rectangular section given the nominal section properties
# WARNING: does not take into account rounded corners.
#
# written: Frank McKenna
#
# input parameters:
# secID - section ID number
# matID - material ID number
# H = nominal height
# B = nominal breadth
# T = thickness
# nfTBl = number of fibers along Top/Bottom length
# nfTBt = number of fibers through Top/Bottom thickness
# nfSl = number of fibers along sides length
# nfSt = number of fibers through sides thickness
set y1 [expr $D/2.0]
set y2 [expr $y1 - $T]
set z1 [expr $B/2.0]
set z2 [expr $z1-$T]
section fiberSec $secID {
# nfIJ nfJK yI zI yJ zJ yK zK yL zL
# top and bottom
patch quadr $matID $nfTBl $nfTBt $y2 $z1 $y2 -$z1 $y1 -$z1 $y1 $z1
patch quadr $matID $nfTBl $nfTBt -$y1 $z1 -$y1 -$z1 -$y2 -$z1 -$y2 $z1
# sides
patch quadr $matID $nfSt $nfSl -$y2 $z1 -$y2 $z2 $y2 $z2 $y2 $z1
patch quadr $matID $nfSt $nfSl -$y2 -$z2 -$y2 -$z1 $y2 -$z1 $y2 -$z2
}
}
[/code]
and here is a test:
[code]
# Simple Elastic Column Test of Box Section
# Written: fmk
set P 10.0
set L 100.0
set E 29000.0
set D 2.0
set B 1.0
set T 0.1
set nfTl 1
set nfTt 10
set nfSl 20
set nfSt 1
set y1 [expr $D]
set y2 [expr $D-2.0*$T]
set z1 [expr $B]
set z2 [expr $B-2.0*$T]
# theoretical displacement calc
set I [expr $z1*$y1*$y1*$y1/12.0 - $z2*$y2*$y2*$y2/12.0] ;
set dispT [expr $P*$L*$L*$L/(3.0*$E*$I)];
# opensees model
model BasicBuilder -ndm 2 -ndf 3
node 1 0.0 0.0
node 2 0.0 $L
fix 1 1 1 1
uniaxialMaterial Elastic 1 $E
source BoxSection.tcl
BoxSection 1 1 $D $B $T $nfTl $nfTt $nfSl $nfSt
geomTransf Linear 1
element forceBeamColumn 1 1 2 5 1 1
pattern Plain 1 "Linear" {
load 2 $P 0.0 0.0
}
integrator LoadControl 1
test NormDispIncr 1.0e-12 3 1
algorithm Newton
system ProfileSPD
constraints Plain
numberer Plain
analysis Static
analyze 1
set dispM [nodeDisp 2 1]
puts "Theoretical: $dispT Model: $dispM"
[/code]
here:
[code]
proc BoxSection {secID matID D B T nfTBl nfTBt nfSl nfSt} {
# ###################################################################
# Wsection $secID $matID $d $bf $tf $tw $nfTBl $nfTBt $nfSl $nfSt
# ###################################################################
# create a simple rectangular section given the nominal section properties
# WARNING: does not take into account rounded corners.
#
# written: Frank McKenna
#
# input parameters:
# secID - section ID number
# matID - material ID number
# H = nominal height
# B = nominal breadth
# T = thickness
# nfTBl = number of fibers along Top/Bottom length
# nfTBt = number of fibers through Top/Bottom thickness
# nfSl = number of fibers along sides length
# nfSt = number of fibers through sides thickness
set y1 [expr $D/2.0]
set y2 [expr $y1 - $T]
set z1 [expr $B/2.0]
set z2 [expr $z1-$T]
section fiberSec $secID {
# nfIJ nfJK yI zI yJ zJ yK zK yL zL
# top and bottom
patch quadr $matID $nfTBl $nfTBt $y2 $z1 $y2 -$z1 $y1 -$z1 $y1 $z1
patch quadr $matID $nfTBl $nfTBt -$y1 $z1 -$y1 -$z1 -$y2 -$z1 -$y2 $z1
# sides
patch quadr $matID $nfSt $nfSl -$y2 $z1 -$y2 $z2 $y2 $z2 $y2 $z1
patch quadr $matID $nfSt $nfSl -$y2 -$z2 -$y2 -$z1 $y2 -$z1 $y2 -$z2
}
}
[/code]
and here is a test:
[code]
# Simple Elastic Column Test of Box Section
# Written: fmk
set P 10.0
set L 100.0
set E 29000.0
set D 2.0
set B 1.0
set T 0.1
set nfTl 1
set nfTt 10
set nfSl 20
set nfSt 1
set y1 [expr $D]
set y2 [expr $D-2.0*$T]
set z1 [expr $B]
set z2 [expr $B-2.0*$T]
# theoretical displacement calc
set I [expr $z1*$y1*$y1*$y1/12.0 - $z2*$y2*$y2*$y2/12.0] ;
set dispT [expr $P*$L*$L*$L/(3.0*$E*$I)];
# opensees model
model BasicBuilder -ndm 2 -ndf 3
node 1 0.0 0.0
node 2 0.0 $L
fix 1 1 1 1
uniaxialMaterial Elastic 1 $E
source BoxSection.tcl
BoxSection 1 1 $D $B $T $nfTl $nfTt $nfSl $nfSt
geomTransf Linear 1
element forceBeamColumn 1 1 2 5 1 1
pattern Plain 1 "Linear" {
load 2 $P 0.0 0.0
}
integrator LoadControl 1
test NormDispIncr 1.0e-12 3 1
algorithm Newton
system ProfileSPD
constraints Plain
numberer Plain
analysis Static
analyze 1
set dispM [nodeDisp 2 1]
puts "Theoretical: $dispT Model: $dispM"
[/code]