Here is the Tcl script for the member retrofitted with plates. Thanks so much in advance for your comments.
wipe all;
source DisplayModel2D.tcl;
source DisplayPlane.tcl;
#Results
# ----------------------------------------
set dataDir Data5;
file mkdir $dataDir;
# Units = KN-mm
# ----------------------------------------
model BasicBuilder -ndm 3 -ndf
set Pi 3.14159265
# Number of elements and integration points
# ----------------------------------------
set NELEMCOL 1
set ptoint 4
# Frame height
# -----------------------------------------
set Frame_H 1000.
# Characteristics of the column:
# -----------------------------------------
set Column_A 36000.
set Column_Iy 7.87E+8
set Column_Iz 2.46E+8
set Column_J 20400000.
set Column_F_b 322.
set Column_F_t 44.1
set Column_H 365.
set Column_W_t 26.9
# Added plate to the existing section
# -----------------------------------------
set Plate_b 1440.
set Plate_t 50.
# Steel material properties
# -----------------------------------------
set Fy 0.300
set E 200.
set nu 0.3
set G [expr $E / 2 / (1 + $nu)]
# Location of the corner nodes
# ------------------------------------------
node 110 0. 0. 0.
node 1003 0. [expr $Frame_H] 0.
# Boundary conditions
# ------------------------------------------
fix 1003 0 0 1 1 1 0
fix 110 1 1 1 1 1 0
# Vector for definitions of the member local axes
# -----------------------------------------------
geomTransf Corotational 3 0 0 1
# Fiber discretization of the column member cross-section
# --------------------------------------------------------
# J of the column member (Torsion)
uniaxialMaterial Elastic 1399 [expr $G * $Column_J]
#Column section
# -----------------------------------------------
set bc [expr $Column_F_b]
set hc [expr $Column_H]
# Residual stress
set sigma_C [expr $Fy * -0.3]
set sigma_T [expr ($Column_F_b * $Column_F_t) / ($Column_F_b * $Column_F_t + $Column_W_t * ($Column_H - 2 * $Column_F_t)) * -$sigma_C]
# Flange fibers
for {set i 1 } {$i <= 10 } {incr i 1} {
set sigma_r_c [expr $sigma_C + ($i / 10. - 0.05) * ($sigma_T - $sigma_C)];
uniaxialMaterial Steel02 [expr ($i + 10)] $Fy $E [expr (0.1 * $Fy / 0.04) / $E] 30 0.925 0.15 0.4 22 0.4 22 $sigma_r_c ;
}
# Web fibers
uniaxialMaterial Steel02 200 $Fy $E [expr (0.1 * $Fy / 0.04) / $E] 30 0.925 0.15 0.4 22 0.4 22 $sigma_T;
# Added plates
uniaxialMaterial Steel01 30001 $Fy $E [expr (0.1 * $Fy / 0.04) / $E] 0.4 22 0.4 22 ;
#Retrofitted Column Section
# --------------------------------------
section Fiber 1300 {
# Left flange
for {set i 1 } {$i <= 10 } {incr i 1} {
patch quad [expr ($i + 10)] 20 1 [expr -$hc / 2.] [expr -$bc / 2. + ($i - 1) * $bc / 20.] [expr -$hc / 2. + $Column_F_t] [expr -$bc / 2. + ($i - 1) * $bc / 20.] [expr -$hc / 2. + $Column_F_t] [expr -$bc / 2. + $i * $bc / 20.] [expr -$hc / 2.] [expr -$bc / 2. + $i * $bc / 20.]
}
for {set i 11 } {$i <= 20 } {incr i 1} {
patch quad $i 20 1 [expr -$hc / 2. ] [expr $bc / 2. - ($i - 10) * $bc / 20.] [expr -$hc / 2. + $Column_F_t ] [expr $bc / 2. - ($i - 10) * $bc / 20.] [expr -$hc / 2. + $Column_F_t] [expr $bc / 2. - ($i - 11) * $bc / 20.] [expr -$hc / 2.] [expr $bc / 2. - ($i - 11) * $bc / 20.]
}
# Right flange
for {set i 1 } {$i <= 10 } {incr i 1} {
patch quad [expr ($i + 10)] 20 1 [expr $hc / 2. - $Column_F_t] [expr -$bc / 2. + ($i - 1) * $bc / 20.] [expr $hc / 2.] [expr -$bc / 2. + ($i - 1) * $bc / 20.] [expr $hc / 2.] [expr -$bc / 2. + $i * $bc / 20.] [expr $hc / 2. - $Column_F_t] [expr -$bc / 2. + $i * $bc / 20.]
}
for {set i 11 } {$i <= 20 } {incr i 1} {
patch quad $i 20 1 [expr $hc / 2. - $Column_F_t] [expr $bc / 2. - ($i - 10) * $bc / 20.] [expr $hc / 2. ] [expr $bc / 2. - ($i - 10) * $bc / 20.] [expr $hc / 2.] [expr $bc / 2. - ($i - 11) * $bc / 20.] [expr $hc / 2. - $Column_F_t] [expr $bc / 2. - ($i - 11) * $bc / 20.]
}
# web
patch quad 200 1 20 [expr -$hc / 2. + $Column_F_t] [expr -$Column_W_t / 2.] [expr $hc / 2. - $Column_F_t] [expr -$Column_W_t / 2.] [expr $hc / 2. - $Column_F_t] [expr $Column_W_t / 2.] [expr -$hc / 2. + $Column_F_t] [expr $Column_W_t / 2.]
# Left Plate
patch quad 30001 20 1 [expr -$hc/ 2. - $Plate_t ] [expr -$Plate_b / 2.] [expr -$hc / 2.] [expr -$Plate_b / 2.] [expr -$hc / 2.] [expr $Plate_b / 2.] [expr -$hc / 2. - $Plate_t] [expr $Plate_b / 2.]
# Right Plate
patch quad 30001 20 1 [expr $hc/ 2. ] [expr -$Plate_b / 2.] [expr $hc / 2. + $Plate_t] [expr -$Plate_b / 2. ] [expr $hc / 2. + $Plate_t ] [expr $Plate_b/ 2.] [expr $hc / 2.] [expr $Plate_b / 2.]
}
# Adding torsional stiffness to the nonlinear beam-column element
# -----------------------------------------------------------------
section Aggregator 1301 1399 T -section 1300
# Column elements
# ---------------------------------------
set tol 1e-6
set maxIters 100
element nonlinearBeamColumn 10 110 1003 $ptoint 1301 3 -iter $maxIters $tol;
# Parameter command
# ---------------------------------------
parameter 100001 element 10 material 30001 E
updateParameter 100001 0.
# Load pattern-1
# -----------------------------------------
pattern Plain 1 "Linear" {
load 1003 0. 100.0 0. 0. 0. 0.
}
# Analysis
# ---------
numberer RCM
constraints Plain
system BandGeneral
test NormUnbalance 1.0e-3 1000 2
analysis Static;
set displayTag 2;
set numTimes 100;
integrator LoadControl 0.1
analyze 10
# Set time to zero and wipe analysis
# ------------------------------------------
loadConst -time 0.0
wipeAnalysis
#Update parameter command
# ------------------------------------------
updateParameter 100001 200.
# Load pattern-2
# ------------------------------------------
pattern Plain 2 "Linear" {
load 1003 0. 100.0 0. 0. 0. 0.
}
# Analysis
# ---------
numberer RCM
constraints Plain
system BandGeneral
test NormUnbalance 1.0e-3 1000 2
analysis Static;
set displayTag 2;
set numTimes 100;
integrator LoadControl 0.1
analyze 10
# Set time to zero and wipe analysis
# ------------------------------------------
loadConst -time 0.0
wipeAnalysis
Change the section of the member during analysis
Moderators: silvia, selimgunay, Moderators
Re: Change the section of the member during analysis
Yasaman Balazadeh Minouei
Re: Change the section of the member during analysis
OK, with section aggregator I think you have to throw in an extra "section" string when you define the parameter
parameter 100001 element 10 section material 30001 E
Let me know if that works.
parameter 100001 element 10 section material 30001 E
Let me know if that works.
Re: Change the section of the member during analysis
Unfortunately, it does not work. Do you have any other suggestions?
Yasaman Balazadeh Minouei
Re: Change the section of the member during analysis
There's some issues in how the parameter command is parsed out. For now, the best work around is to create a parameter for one integration point, then loop over the rest using the addToParameter command, like this
parameter 100001 element 10 section 1 section material 30001 E
for {set i 2} {$i <= $ptoint} {incr i} {
addToParameter 100001 element 10 section $i section material 30001 E
}
This will make parameter 100001 point to E of material 30001 at all integration points ... doing what you wanted to, but doing it the hard way
Note that 'section' is in there twice
parameter 100001 element 10 section 1 section material 30001 E
for {set i 2} {$i <= $ptoint} {incr i} {
addToParameter 100001 element 10 section $i section material 30001 E
}
This will make parameter 100001 point to E of material 30001 at all integration points ... doing what you wanted to, but doing it the hard way
Note that 'section' is in there twice
Re: Change the section of the member during analysis
Thanks so much for the commands.
Yasaman Balazadeh Minouei