beamwithhinge without deterioration!!
Moderators: silvia, selimgunay, Moderators
beamwithhinge without deterioration!!
Hello everyone
1 It works well when I use concentrated plastic model ( bilin material); however, i use the same deterioration parameters with beamwithhinge element, the result would not have any deterioration. Could someone tell me why?
2 The plastic length of hinge we got from tests might be nearly 250mm; however, when I use such length, the stiffness of hinge should amplify 250time so that the stiffness showed by the force-displacement curve could match the result of test. And i saw the length in example, it's just 0.4% of the whole element. Should I take the value of hinge length followed by the example and just discard length got from test?
Thank you for your reply!
1 It works well when I use concentrated plastic model ( bilin material); however, i use the same deterioration parameters with beamwithhinge element, the result would not have any deterioration. Could someone tell me why?
2 The plastic length of hinge we got from tests might be nearly 250mm; however, when I use such length, the stiffness of hinge should amplify 250time so that the stiffness showed by the force-displacement curve could match the result of test. And i saw the length in example, it's just 0.4% of the whole element. Should I take the value of hinge length followed by the example and just discard length got from test?
Thank you for your reply!
Re: beamwithhinge without deterioration!!
1) Since you defined well the model parameters for using with the BeamWithHinges (don't forget you are defining a moment-curvature relationship), there is no apparent reason for it. .. please post your code so that I can take a look at it.
2) I guess that 0.004*L does not have any physical meaning so you should keep the length you work out.
Filipe Ribeiro
2) I guess that 0.004*L does not have any physical meaning so you should keep the length you work out.
Filipe Ribeiro
Re: beamwithhinge without deterioration!!
Thank you for your reply ! You are so nice!
Could i send an email to u so that I could describe the problem in detail with pictures and tcl files?
Could i send an email to u so that I could describe the problem in detail with pictures and tcl files?
Re: beamwithhinge without deterioration!!
You can, but I believe it is better to start by posting your code here so that the problems and solutions are shared with everyone.
Filipe Ribeiro
f.ribeiro@fct.unl.pt
Filipe Ribeiro
f.ribeiro@fct.unl.pt
Re: beamwithhinge without deterioration!!
This is the concentrated model
# Units: N mm second
###################################################################################################
# Set Up & Source Definition
###################################################################################################
wipe # clear memory of past model definitions
model BasicBuilder -ndm 2 -ndf 3; # Define the model builder, ndm = #dimension, ndf = #dofs
source rotSpring2DModIKModel.tcl; # procedure for defining a rotational spring (zero-length element)
###################################################################################################
# Define Analysis Type
###################################################################################################
# Define type of analysis: "pushover" = pushover
set analysisType "pushover";
if {$analysisType == "pushover"} {
set dataDir Concentrated-Pushover-Output; # name of output folder
file mkdir $dataDir; # create output folder
}
###################################################################################################
# Define Building Geometry, Nodes, and Constraints
###################################################################################################
# define nodes
set H 1500;
node 1 0.0 0.0 ;
node 2 0.0 $H ;
node 1001 0.0 0.0 ;
# define constraints
fix 1 1 1 1 ;
fix 2 0 0 0 ;
###################################################################################################
# Define Section Properties and Elements
###################################################################################################
# define material properties
set Es 2.01e5; # steel Young's modulus
# define column section
set Acol 4750; # cross-sectional area
set Icol 71281938; # moment of inertia
set Mycol 187540636.6; # yield moment
# determine stiffness modifications to equate the stiffness of the spring-elastic element-spring
# calculate modified section properties to account for spring stiffness being in series with the elastic element stiffness
set n 1.5; # stiffness multiplier for rotational spring
# calculate modified moment of inertia for elastic elements
set Icolmod [expr $Icol*($n+1.0)/$n]; # modified moment of inertia for columns
# calculate modified rotational stiffness for plastic hinge springs
set Ks_col_1 [expr 1.5*6.0*$Es*$Icol/$H]; # rotational stiffness of Scolumn springs
# set up geometric transformations of element
set PDeltaTransf 1;
geomTransf PDelta $PDeltaTransf; # PDelta transformation
# define elastic column elements using "element" command
# command: element elasticBeamColumn $eleID $iNode $jNode $A $E $I $transfID
element elasticBeamColumn 1 1001 2 $Acol $Es $Icolmod $PDeltaTransf; # Pier 1
###################################################################################################
# Define Rotational Springs for Plastic Hinges
###################################################################################################
# define rotational spring properties and create spring elements using "rotSpring2DModIKModel" procedure
set McMy 1.5; # ratio of capping moment to yield moment, Mc / My
set LS 0.353; # basic strength deterioration (a very large # = no cyclic deterioration)
set LK 0.353; # unloading stiffness deterioration (a very large # = no cyclic deterioration)
set LA 0.353; # accelerated reloading stiffness deterioration (a very large # = no cyclic deterioration)
set LD 0.353; # post-capping strength deterioration (a very large # = no deterioration)
set cS 1; # exponent for basic strength deterioration (c = 1.0 for no deterioration)
set cK 1; # exponent for unloading stiffness deterioration (c = 1.0 for no deterioration)
set cA 1; # exponent for accelerated reloading stiffness deterioration (c = 1.0 for no deterioration)
set cD 1; # exponent for post-capping strength deterioration (c = 1.0 for no deterioration)
set th_pP 0.0067; # plastic rot capacity for pos loading
set th_pN 0.0067; # plastic rot capacity for neg loading
set th_pcP 0.08; # post-capping rot capacity for pos loading
set th_pcN 0.08; # post-capping rot capacity for neg loading
set ResP 0.3; # residual strength ratio for pos loading
set ResN 0.3; # residual strength ratio for neg loading
set th_uP 0.6; # ultimate rot capacity for pos loading
set th_uN 0.6; # ultimate rot capacity for neg loading
set DP 1.0; # rate of cyclic deterioration for pos loading
set DN 1.0; # rate of cyclic deterioration for neg loading
set a_mem [expr ($n+1.0)*($Mycol*($McMy-1.0)) / (10*$Ks_col_1*$th_pP)]; # strain hardening ratio of spring
set b [expr ($a_mem)/(1.0+$n*(1.0-$a_mem))]; # modified strain hardening ratio of spring (Ibarra & Krawinkler 2005, note: Eqn B.5 is incorrect)
# define column springs
# command: rotSpring2DModIKModel id ndR ndC K asPos asNeg MyPos MyNeg LS LK LA LD cS cK cA cD th_p+ th_p- th_pc+ th_pc- Res+ Res- th_u+ th_u- D+ D-
rotSpring2DModIKModel 31 1 1001 $Ks_col_1 0.075 0.075 $Mycol [expr -$Mycol] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
# create region for frame column springs
# command: region $regionID -ele $ele_1_ID $ele_2_ID...
region 1 -ele 31 ;
############################################################################
#Gravity Loads & Gravity Analysis
############################################################################
# define gravity
pattern Plain 1 Linear {
load 2 0 -1000 0
}
# Gravity-analysis: load-controlled static analysis
# define parameters of gravity
constraints Plain
numberer Plain
system BandGeneral
test NormDispIncr 10e-3 6 2
algorithm ModifiedNewton
integrator LoadControl 0.1
analysis Static
analyze 10
# maintain constant gravity loads and reset time to zero
loadConst -time 0.0
puts "Analysis of gravity is completed..."
############################################################################
# Recorders
############################################################################
# record response history
recorder Node -file $dataDir/Vbase.out -time -node 1 -dof 1 reaction;
recorder Node -file $dataDir/disp_2.out -time -node 2 -dof 1 disp;
############################################################################
# Pushover Analysis #
############################################################################
pattern Plain 2 Linear {
load 2 1 0.0 0.0;
}
# 1st loading 0.75Δe=3.75mm
integrator DisplacementControl 2 1 0.75;
analyze 5; # Max displacement=3.75
integrator DisplacementControl 2 1 -1.5;
analyze 5; # Min displacement=-3.75
# 2nd loading Δe=5mm 2 rounds
integrator DisplacementControl 2 1 1.75;
analyze 5; # Max displacement=5
integrator DisplacementControl 2 1 -2;
analyze 5; # Min displacement=-5
integrator DisplacementControl 2 1 2;
analyze 5; # Max displacement=5
integrator DisplacementControl 2 1 -2;
analyze 5; # Min displacement=-5
# 3rd loading Δe=10mm 3 rounds
integrator DisplacementControl 2 1 1.5;
analyze 10; # Max displacement=10
integrator DisplacementControl 2 1 -2;
analyze 10; # Min displacement=-10
integrator DisplacementControl 2 1 2;
analyze 10; # Max displacement=10
integrator DisplacementControl 2 1 -2;
analyze 10; # Min displacement=-10
integrator DisplacementControl 2 1 2;
analyze 10; # Max displacement=10
integrator DisplacementControl 2 1 -2;
analyze 10; # Min displacement=-10
# 4th loading Δe=15mm 3 rounds
integrator DisplacementControl 2 1 2.5;
analyze 10; # Max displacement=15
integrator DisplacementControl 2 1 -3;
analyze 10; # Min displacement=-15
integrator DisplacementControl 2 1 3;
analyze 10; # Max displacement=15
integrator DisplacementControl 2 1 -3;
analyze 10; # Min displacement=-15
integrator DisplacementControl 2 1 3;
analyze 10; # Max displacement=15
integrator DisplacementControl 2 1 -3;
analyze 10; # Min displacement=-15
# 5th loading Δe=20mm 3 rounds
integrator DisplacementControl 2 1 1.75;
analyze 20; # Max displacement=20
integrator DisplacementControl 2 1 -2;
analyze 20; # Min displacement=-20
integrator DisplacementControl 2 1 2;
analyze 20; # Max displacement=20
integrator DisplacementControl 2 1 -2;
analyze 20; # Min displacement=-20
integrator DisplacementControl 2 1 2;
analyze 20; # Max displacement=20
integrator DisplacementControl 2 1 -2;
analyze 20; # Min displacement=-20
# 6th loading Δe=25mm 3 rounds
integrator DisplacementControl 2 1 2.25;
analyze 20; # Max displacement=25
integrator DisplacementControl 2 1 -2.5;
analyze 20; # Min displacement=-25
integrator DisplacementControl 2 1 2.5;
analyze 20; # Max displacement=25
integrator DisplacementControl 2 1 -2.5;
analyze 20; # Min displacement=-25
integrator DisplacementControl 2 1 2.5;
analyze 20; # Max displacement=25
integrator DisplacementControl 2 1 -2.5;
analyze 20; # Min displacement=-25
# 7th loading Δe=30mm 3 rounds
integrator DisplacementControl 2 1 2.75;
analyze 20; # Max displacement=30
integrator DisplacementControl 2 1 -3;
analyze 20; # Min displacement=-30
integrator DisplacementControl 2 1 3;
analyze 20; # Max displacement=30
integrator DisplacementControl 2 1 -3;
analyze 20; # Min displacement=-30
integrator DisplacementControl 2 1 3;
analyze 20; # Max displacement=30
integrator DisplacementControl 2 1 -3;
analyze 20; # Min displacement=-30
puts "Analysis of pushover is completed..."
# Units: N mm second
###################################################################################################
# Set Up & Source Definition
###################################################################################################
wipe # clear memory of past model definitions
model BasicBuilder -ndm 2 -ndf 3; # Define the model builder, ndm = #dimension, ndf = #dofs
source rotSpring2DModIKModel.tcl; # procedure for defining a rotational spring (zero-length element)
###################################################################################################
# Define Analysis Type
###################################################################################################
# Define type of analysis: "pushover" = pushover
set analysisType "pushover";
if {$analysisType == "pushover"} {
set dataDir Concentrated-Pushover-Output; # name of output folder
file mkdir $dataDir; # create output folder
}
###################################################################################################
# Define Building Geometry, Nodes, and Constraints
###################################################################################################
# define nodes
set H 1500;
node 1 0.0 0.0 ;
node 2 0.0 $H ;
node 1001 0.0 0.0 ;
# define constraints
fix 1 1 1 1 ;
fix 2 0 0 0 ;
###################################################################################################
# Define Section Properties and Elements
###################################################################################################
# define material properties
set Es 2.01e5; # steel Young's modulus
# define column section
set Acol 4750; # cross-sectional area
set Icol 71281938; # moment of inertia
set Mycol 187540636.6; # yield moment
# determine stiffness modifications to equate the stiffness of the spring-elastic element-spring
# calculate modified section properties to account for spring stiffness being in series with the elastic element stiffness
set n 1.5; # stiffness multiplier for rotational spring
# calculate modified moment of inertia for elastic elements
set Icolmod [expr $Icol*($n+1.0)/$n]; # modified moment of inertia for columns
# calculate modified rotational stiffness for plastic hinge springs
set Ks_col_1 [expr 1.5*6.0*$Es*$Icol/$H]; # rotational stiffness of Scolumn springs
# set up geometric transformations of element
set PDeltaTransf 1;
geomTransf PDelta $PDeltaTransf; # PDelta transformation
# define elastic column elements using "element" command
# command: element elasticBeamColumn $eleID $iNode $jNode $A $E $I $transfID
element elasticBeamColumn 1 1001 2 $Acol $Es $Icolmod $PDeltaTransf; # Pier 1
###################################################################################################
# Define Rotational Springs for Plastic Hinges
###################################################################################################
# define rotational spring properties and create spring elements using "rotSpring2DModIKModel" procedure
set McMy 1.5; # ratio of capping moment to yield moment, Mc / My
set LS 0.353; # basic strength deterioration (a very large # = no cyclic deterioration)
set LK 0.353; # unloading stiffness deterioration (a very large # = no cyclic deterioration)
set LA 0.353; # accelerated reloading stiffness deterioration (a very large # = no cyclic deterioration)
set LD 0.353; # post-capping strength deterioration (a very large # = no deterioration)
set cS 1; # exponent for basic strength deterioration (c = 1.0 for no deterioration)
set cK 1; # exponent for unloading stiffness deterioration (c = 1.0 for no deterioration)
set cA 1; # exponent for accelerated reloading stiffness deterioration (c = 1.0 for no deterioration)
set cD 1; # exponent for post-capping strength deterioration (c = 1.0 for no deterioration)
set th_pP 0.0067; # plastic rot capacity for pos loading
set th_pN 0.0067; # plastic rot capacity for neg loading
set th_pcP 0.08; # post-capping rot capacity for pos loading
set th_pcN 0.08; # post-capping rot capacity for neg loading
set ResP 0.3; # residual strength ratio for pos loading
set ResN 0.3; # residual strength ratio for neg loading
set th_uP 0.6; # ultimate rot capacity for pos loading
set th_uN 0.6; # ultimate rot capacity for neg loading
set DP 1.0; # rate of cyclic deterioration for pos loading
set DN 1.0; # rate of cyclic deterioration for neg loading
set a_mem [expr ($n+1.0)*($Mycol*($McMy-1.0)) / (10*$Ks_col_1*$th_pP)]; # strain hardening ratio of spring
set b [expr ($a_mem)/(1.0+$n*(1.0-$a_mem))]; # modified strain hardening ratio of spring (Ibarra & Krawinkler 2005, note: Eqn B.5 is incorrect)
# define column springs
# command: rotSpring2DModIKModel id ndR ndC K asPos asNeg MyPos MyNeg LS LK LA LD cS cK cA cD th_p+ th_p- th_pc+ th_pc- Res+ Res- th_u+ th_u- D+ D-
rotSpring2DModIKModel 31 1 1001 $Ks_col_1 0.075 0.075 $Mycol [expr -$Mycol] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
# create region for frame column springs
# command: region $regionID -ele $ele_1_ID $ele_2_ID...
region 1 -ele 31 ;
############################################################################
#Gravity Loads & Gravity Analysis
############################################################################
# define gravity
pattern Plain 1 Linear {
load 2 0 -1000 0
}
# Gravity-analysis: load-controlled static analysis
# define parameters of gravity
constraints Plain
numberer Plain
system BandGeneral
test NormDispIncr 10e-3 6 2
algorithm ModifiedNewton
integrator LoadControl 0.1
analysis Static
analyze 10
# maintain constant gravity loads and reset time to zero
loadConst -time 0.0
puts "Analysis of gravity is completed..."
############################################################################
# Recorders
############################################################################
# record response history
recorder Node -file $dataDir/Vbase.out -time -node 1 -dof 1 reaction;
recorder Node -file $dataDir/disp_2.out -time -node 2 -dof 1 disp;
############################################################################
# Pushover Analysis #
############################################################################
pattern Plain 2 Linear {
load 2 1 0.0 0.0;
}
# 1st loading 0.75Δe=3.75mm
integrator DisplacementControl 2 1 0.75;
analyze 5; # Max displacement=3.75
integrator DisplacementControl 2 1 -1.5;
analyze 5; # Min displacement=-3.75
# 2nd loading Δe=5mm 2 rounds
integrator DisplacementControl 2 1 1.75;
analyze 5; # Max displacement=5
integrator DisplacementControl 2 1 -2;
analyze 5; # Min displacement=-5
integrator DisplacementControl 2 1 2;
analyze 5; # Max displacement=5
integrator DisplacementControl 2 1 -2;
analyze 5; # Min displacement=-5
# 3rd loading Δe=10mm 3 rounds
integrator DisplacementControl 2 1 1.5;
analyze 10; # Max displacement=10
integrator DisplacementControl 2 1 -2;
analyze 10; # Min displacement=-10
integrator DisplacementControl 2 1 2;
analyze 10; # Max displacement=10
integrator DisplacementControl 2 1 -2;
analyze 10; # Min displacement=-10
integrator DisplacementControl 2 1 2;
analyze 10; # Max displacement=10
integrator DisplacementControl 2 1 -2;
analyze 10; # Min displacement=-10
# 4th loading Δe=15mm 3 rounds
integrator DisplacementControl 2 1 2.5;
analyze 10; # Max displacement=15
integrator DisplacementControl 2 1 -3;
analyze 10; # Min displacement=-15
integrator DisplacementControl 2 1 3;
analyze 10; # Max displacement=15
integrator DisplacementControl 2 1 -3;
analyze 10; # Min displacement=-15
integrator DisplacementControl 2 1 3;
analyze 10; # Max displacement=15
integrator DisplacementControl 2 1 -3;
analyze 10; # Min displacement=-15
# 5th loading Δe=20mm 3 rounds
integrator DisplacementControl 2 1 1.75;
analyze 20; # Max displacement=20
integrator DisplacementControl 2 1 -2;
analyze 20; # Min displacement=-20
integrator DisplacementControl 2 1 2;
analyze 20; # Max displacement=20
integrator DisplacementControl 2 1 -2;
analyze 20; # Min displacement=-20
integrator DisplacementControl 2 1 2;
analyze 20; # Max displacement=20
integrator DisplacementControl 2 1 -2;
analyze 20; # Min displacement=-20
# 6th loading Δe=25mm 3 rounds
integrator DisplacementControl 2 1 2.25;
analyze 20; # Max displacement=25
integrator DisplacementControl 2 1 -2.5;
analyze 20; # Min displacement=-25
integrator DisplacementControl 2 1 2.5;
analyze 20; # Max displacement=25
integrator DisplacementControl 2 1 -2.5;
analyze 20; # Min displacement=-25
integrator DisplacementControl 2 1 2.5;
analyze 20; # Max displacement=25
integrator DisplacementControl 2 1 -2.5;
analyze 20; # Min displacement=-25
# 7th loading Δe=30mm 3 rounds
integrator DisplacementControl 2 1 2.75;
analyze 20; # Max displacement=30
integrator DisplacementControl 2 1 -3;
analyze 20; # Min displacement=-30
integrator DisplacementControl 2 1 3;
analyze 20; # Max displacement=30
integrator DisplacementControl 2 1 -3;
analyze 20; # Min displacement=-30
integrator DisplacementControl 2 1 3;
analyze 20; # Max displacement=30
integrator DisplacementControl 2 1 -3;
analyze 20; # Min displacement=-30
puts "Analysis of pushover is completed..."
Re: beamwithhinge without deterioration!!
This is the beam with plastic hinge model
# Units: N mm second
###################################################################################################
# Set Up & Source Definition
###################################################################################################
wipe all; # clear memory of past model definitions
model BasicBuilder -ndm 2 -ndf 3; # Define the model builder, ndm = #dimension, ndf = #dofs
source rotSect2DModIKModel.tcl; # procedure for defining bilinear plastic hinge section
###################################################################################################
# Define Analysis Type
###################################################################################################
# Define type of analysis: "pushover" = pushover
set analysisType "pushover";
if {$analysisType == "pushover"} {
set dataDir Distributed-Pushover-Output; # name of output folder
file mkdir $dataDir; # create output folder
}
###################################################################################################
# Define Building Geometry, Nodes, and Constraints
###################################################################################################
# define nodes
set H 1500;
node 1 0.0 0.0 ;
node 2 0.0 $H ;
# define constraints
fix 1 1 1 1 ;
fix 2 0 0 0 ;
###################################################################################################
# Define Section Properties and Elements
###################################################################################################
# define material properties
set Es 201000.0; # steel Young's modulus
# define column section W24x131 for Story 1 & 2
set Acol 4750; # cross-sectional area
set Icol 71281938; # moment of inertia
set Mycol 187540636.6; # yield moment
# define plastic hinge lengths
set Lp_c1 251; # length of plastic hinge for Story 1 columns [expr 0.004*$H]
# calculate rotational stiffness for plastic hinges
set Ks_col_1 [expr 6.0*$Es*$Icol/$Lp_c1]; # rotational stiffness of Story 1 column hinges
set Kmem_col_1 [expr 6.0*$Es*$Icol/$H]; # rotational stiffness of Story 1 columns
###################################################################################################
# Define Rotational Springs for Plastic Hinges
###################################################################################################
# define rotational spring properties and create spring elements using "rotSect2DModIKModel" procedure
# input values for Story 1 column springs
set McMy 1.5; # ratio of capping moment to yield moment, Mc / My
set LS 0.353; # basic strength deterioration (a very large # = no cyclic deterioration)
set LK 0.353; # unloading stiffness deterioration (a very large # = no cyclic deterioration)
set LA 0.353; # accelerated reloading stiffness deterioration (a very large # = no cyclic deterioration)
set LD 0.353; # post-capping strength deterioration (a very large # = no deterioration)
set cS 1.0; # exponent for basic strength deterioration (c = 1.0 for no deterioration)
set cK 1.0; # exponent for unloading stiffness deterioration (c = 1.0 for no deterioration)
set cA 1.0; # exponent for accelerated reloading stiffness deterioration (c = 1.0 for no deterioration)
set cD 1.0; # exponent for post-capping strength deterioration (c = 1.0 for no deterioration)
set th_pP 0.0067; # plastic rot capacity for pos loading
set th_pN 0.0067; # plastic rot capacity for neg loading
set th_pcP 0.08; # post-capping rot capacity for pos loading
set th_pcN 0.08; # post-capping rot capacity for neg loading
set ResP 0.3; # residual strength ratio for pos loading
set ResN 0.3; # residual strength ratio for neg loading
set th_uP 0.6; # ultimate rot capacity for pos loading
set th_uN 0.6; # ultimate rot capacity for neg loading
set DP 1.0; # rate of cyclic deterioration for pos loading
set DN 1.0; # rate of cyclic deterioration for neg loading
set a_mem [expr ($Mycol*($McMy-1.0)) / ($Kmem_col_1*$th_pP)]; # strain hardening ratio of member
set b [expr ($a_mem)/(1.0+$n_c1*(1.0-$a_mem))]; # modified strain hardening ratio (Ibarra & Krawinkler 2005, note: Eqn B.5 is incorrect)
# define column plastic hinge sections
# Story 1 columns
set sec_c1 101; # section ID for Story 1 columns
rotSect2DModIKModel $sec_c1 $Es $Acol $Ks_col_1 $b $b $Mycol [expr -$Mycol] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
# set up geometric transformations of element
set PDeltaTransf 1;
geomTransf PDelta $PDeltaTransf; # PDelta transformation
# define column elements using "element" command
# Columns Story 1
element beamWithHinges 111 1 2 $sec_c1 $Lp_c1 $sec_c1 0 $Es $Acol $Icol $PDeltaTransf; # Pier 1
############################################################################
# Gravity Loads & Gravity Analysis
############################################################################
# apply gravity loads
#command: pattern PatternType $PatternID TimeSeriesType
pattern Plain 1 Linear {
load 2 0 -1000 0
}
# Gravity-analysis: load-controlled static analysis
# define parameters of gravity
constraints Plain
numberer Plain
system BandGeneral
test NormDispIncr 10e-3 6 2
algorithm ModifiedNewton
integrator LoadControl 0.1
analysis Static
analyze 10
# maintain constant gravity loads and reset time to zero
loadConst -time 0.0
puts "Analysis of gravity is completed..."
############################################################################
# Recorders
############################################################################
# record story 1 column forces in global coordinates
recorder Element -file $dataDir/Forcsec1.out -time -ele 111 section 101 force; # section forces, axial and moment, node i
recorder Element -file $dataDir/Defosec1.out -time -ele 111 section 101 deformation; # section deformations, axial and curvature, node i
#######################################################################################
# #
# Analysis Section #
# #
#######################################################################################
############################################################################
# Pushover Analysis #
############################################################################
pattern Plain 2 Linear {
load 2 1 0.0 0.0;
}
constraints Plain
numberer RCM
system Umfpack
test NormDispIncr 10e-1 200 2
algorithm ModifiedNewton
analysis Static
# 1st loading 0.75Δe=3.75mm
integrator DisplacementControl 2 1 0.75;
analyze 5; # Max displacement=3.75
integrator DisplacementControl 2 1 -1.5;
analyze 5; # Min displacement=-3.75
# 2nd loading Δe=5mm 2 rounds
integrator DisplacementControl 2 1 1.75;
analyze 5; # Max displacement=5
integrator DisplacementControl 2 1 -2;
analyze 5; # Min displacement=-5
integrator DisplacementControl 2 1 2;
analyze 5; # Max displacement=5
integrator DisplacementControl 2 1 -2;
analyze 5; # Min displacement=-5
# 3rd loading Δe=10mm 3 rounds
integrator DisplacementControl 2 1 1.5;
analyze 10; # Max displacement=10
integrator DisplacementControl 2 1 -2;
analyze 10; # Min displacement=-10
integrator DisplacementControl 2 1 2;
analyze 10; # Max displacement=10
integrator DisplacementControl 2 1 -2;
analyze 10; # Min displacement=-10
integrator DisplacementControl 2 1 2;
analyze 10; # Max displacement=10
integrator DisplacementControl 2 1 -2;
analyze 10; # Min displacement=-10
# 4th loading Δe=15mm 3 rounds
integrator DisplacementControl 2 1 2.5;
analyze 10; # Max displacement=15
integrator DisplacementControl 2 1 -3;
analyze 10; # Min displacement=-15
integrator DisplacementControl 2 1 3;
analyze 10; # Max displacement=15
integrator DisplacementControl 2 1 -3;
analyze 10; # Min displacement=-15
integrator DisplacementControl 2 1 3;
analyze 10; # Max displacement=15
integrator DisplacementControl 2 1 -3;
analyze 10; # Min displacement=-15
# 5th loading Δe=20mm 3 rounds
integrator DisplacementControl 2 1 1.75;
analyze 20; # Max displacement=20
integrator DisplacementControl 2 1 -2;
analyze 20; # Min displacement=-20
integrator DisplacementControl 2 1 2;
analyze 20; # Max displacement=20
integrator DisplacementControl 2 1 -2;
analyze 20; # Min displacement=-20
integrator DisplacementControl 2 1 2;
analyze 20; # Max displacement=20
integrator DisplacementControl 2 1 -2;
analyze 20; # Min displacement=-20
# 6th loading Δe=25mm 3 rounds
integrator DisplacementControl 2 1 2.25;
analyze 20; # Max displacement=25
integrator DisplacementControl 2 1 -2.5;
analyze 20; # Min displacement=-25
integrator DisplacementControl 2 1 2.5;
analyze 20; # Max displacement=25
integrator DisplacementControl 2 1 -2.5;
analyze 20; # Min displacement=-25
integrator DisplacementControl 2 1 2.5;
analyze 20; # Max displacement=25
integrator DisplacementControl 2 1 -2.5;
analyze 20; # Min displacement=-25
# 7th loading Δe=30mm 3 rounds
integrator DisplacementControl 2 1 2.75;
analyze 20; # Max displacement=30
integrator DisplacementControl 2 1 -3;
analyze 20; # Min displacement=-30
integrator DisplacementControl 2 1 3;
analyze 20; # Max displacement=30
integrator DisplacementControl 2 1 -3;
analyze 20; # Min displacement=-30
integrator DisplacementControl 2 1 3;
analyze 20; # Max displacement=30
integrator DisplacementControl 2 1 -3;
analyze 20; # Min displacement=-30
puts "Analysis of pushover is completed..."
# Units: N mm second
###################################################################################################
# Set Up & Source Definition
###################################################################################################
wipe all; # clear memory of past model definitions
model BasicBuilder -ndm 2 -ndf 3; # Define the model builder, ndm = #dimension, ndf = #dofs
source rotSect2DModIKModel.tcl; # procedure for defining bilinear plastic hinge section
###################################################################################################
# Define Analysis Type
###################################################################################################
# Define type of analysis: "pushover" = pushover
set analysisType "pushover";
if {$analysisType == "pushover"} {
set dataDir Distributed-Pushover-Output; # name of output folder
file mkdir $dataDir; # create output folder
}
###################################################################################################
# Define Building Geometry, Nodes, and Constraints
###################################################################################################
# define nodes
set H 1500;
node 1 0.0 0.0 ;
node 2 0.0 $H ;
# define constraints
fix 1 1 1 1 ;
fix 2 0 0 0 ;
###################################################################################################
# Define Section Properties and Elements
###################################################################################################
# define material properties
set Es 201000.0; # steel Young's modulus
# define column section W24x131 for Story 1 & 2
set Acol 4750; # cross-sectional area
set Icol 71281938; # moment of inertia
set Mycol 187540636.6; # yield moment
# define plastic hinge lengths
set Lp_c1 251; # length of plastic hinge for Story 1 columns [expr 0.004*$H]
# calculate rotational stiffness for plastic hinges
set Ks_col_1 [expr 6.0*$Es*$Icol/$Lp_c1]; # rotational stiffness of Story 1 column hinges
set Kmem_col_1 [expr 6.0*$Es*$Icol/$H]; # rotational stiffness of Story 1 columns
###################################################################################################
# Define Rotational Springs for Plastic Hinges
###################################################################################################
# define rotational spring properties and create spring elements using "rotSect2DModIKModel" procedure
# input values for Story 1 column springs
set McMy 1.5; # ratio of capping moment to yield moment, Mc / My
set LS 0.353; # basic strength deterioration (a very large # = no cyclic deterioration)
set LK 0.353; # unloading stiffness deterioration (a very large # = no cyclic deterioration)
set LA 0.353; # accelerated reloading stiffness deterioration (a very large # = no cyclic deterioration)
set LD 0.353; # post-capping strength deterioration (a very large # = no deterioration)
set cS 1.0; # exponent for basic strength deterioration (c = 1.0 for no deterioration)
set cK 1.0; # exponent for unloading stiffness deterioration (c = 1.0 for no deterioration)
set cA 1.0; # exponent for accelerated reloading stiffness deterioration (c = 1.0 for no deterioration)
set cD 1.0; # exponent for post-capping strength deterioration (c = 1.0 for no deterioration)
set th_pP 0.0067; # plastic rot capacity for pos loading
set th_pN 0.0067; # plastic rot capacity for neg loading
set th_pcP 0.08; # post-capping rot capacity for pos loading
set th_pcN 0.08; # post-capping rot capacity for neg loading
set ResP 0.3; # residual strength ratio for pos loading
set ResN 0.3; # residual strength ratio for neg loading
set th_uP 0.6; # ultimate rot capacity for pos loading
set th_uN 0.6; # ultimate rot capacity for neg loading
set DP 1.0; # rate of cyclic deterioration for pos loading
set DN 1.0; # rate of cyclic deterioration for neg loading
set a_mem [expr ($Mycol*($McMy-1.0)) / ($Kmem_col_1*$th_pP)]; # strain hardening ratio of member
set b [expr ($a_mem)/(1.0+$n_c1*(1.0-$a_mem))]; # modified strain hardening ratio (Ibarra & Krawinkler 2005, note: Eqn B.5 is incorrect)
# define column plastic hinge sections
# Story 1 columns
set sec_c1 101; # section ID for Story 1 columns
rotSect2DModIKModel $sec_c1 $Es $Acol $Ks_col_1 $b $b $Mycol [expr -$Mycol] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
# set up geometric transformations of element
set PDeltaTransf 1;
geomTransf PDelta $PDeltaTransf; # PDelta transformation
# define column elements using "element" command
# Columns Story 1
element beamWithHinges 111 1 2 $sec_c1 $Lp_c1 $sec_c1 0 $Es $Acol $Icol $PDeltaTransf; # Pier 1
############################################################################
# Gravity Loads & Gravity Analysis
############################################################################
# apply gravity loads
#command: pattern PatternType $PatternID TimeSeriesType
pattern Plain 1 Linear {
load 2 0 -1000 0
}
# Gravity-analysis: load-controlled static analysis
# define parameters of gravity
constraints Plain
numberer Plain
system BandGeneral
test NormDispIncr 10e-3 6 2
algorithm ModifiedNewton
integrator LoadControl 0.1
analysis Static
analyze 10
# maintain constant gravity loads and reset time to zero
loadConst -time 0.0
puts "Analysis of gravity is completed..."
############################################################################
# Recorders
############################################################################
# record story 1 column forces in global coordinates
recorder Element -file $dataDir/Forcsec1.out -time -ele 111 section 101 force; # section forces, axial and moment, node i
recorder Element -file $dataDir/Defosec1.out -time -ele 111 section 101 deformation; # section deformations, axial and curvature, node i
#######################################################################################
# #
# Analysis Section #
# #
#######################################################################################
############################################################################
# Pushover Analysis #
############################################################################
pattern Plain 2 Linear {
load 2 1 0.0 0.0;
}
constraints Plain
numberer RCM
system Umfpack
test NormDispIncr 10e-1 200 2
algorithm ModifiedNewton
analysis Static
# 1st loading 0.75Δe=3.75mm
integrator DisplacementControl 2 1 0.75;
analyze 5; # Max displacement=3.75
integrator DisplacementControl 2 1 -1.5;
analyze 5; # Min displacement=-3.75
# 2nd loading Δe=5mm 2 rounds
integrator DisplacementControl 2 1 1.75;
analyze 5; # Max displacement=5
integrator DisplacementControl 2 1 -2;
analyze 5; # Min displacement=-5
integrator DisplacementControl 2 1 2;
analyze 5; # Max displacement=5
integrator DisplacementControl 2 1 -2;
analyze 5; # Min displacement=-5
# 3rd loading Δe=10mm 3 rounds
integrator DisplacementControl 2 1 1.5;
analyze 10; # Max displacement=10
integrator DisplacementControl 2 1 -2;
analyze 10; # Min displacement=-10
integrator DisplacementControl 2 1 2;
analyze 10; # Max displacement=10
integrator DisplacementControl 2 1 -2;
analyze 10; # Min displacement=-10
integrator DisplacementControl 2 1 2;
analyze 10; # Max displacement=10
integrator DisplacementControl 2 1 -2;
analyze 10; # Min displacement=-10
# 4th loading Δe=15mm 3 rounds
integrator DisplacementControl 2 1 2.5;
analyze 10; # Max displacement=15
integrator DisplacementControl 2 1 -3;
analyze 10; # Min displacement=-15
integrator DisplacementControl 2 1 3;
analyze 10; # Max displacement=15
integrator DisplacementControl 2 1 -3;
analyze 10; # Min displacement=-15
integrator DisplacementControl 2 1 3;
analyze 10; # Max displacement=15
integrator DisplacementControl 2 1 -3;
analyze 10; # Min displacement=-15
# 5th loading Δe=20mm 3 rounds
integrator DisplacementControl 2 1 1.75;
analyze 20; # Max displacement=20
integrator DisplacementControl 2 1 -2;
analyze 20; # Min displacement=-20
integrator DisplacementControl 2 1 2;
analyze 20; # Max displacement=20
integrator DisplacementControl 2 1 -2;
analyze 20; # Min displacement=-20
integrator DisplacementControl 2 1 2;
analyze 20; # Max displacement=20
integrator DisplacementControl 2 1 -2;
analyze 20; # Min displacement=-20
# 6th loading Δe=25mm 3 rounds
integrator DisplacementControl 2 1 2.25;
analyze 20; # Max displacement=25
integrator DisplacementControl 2 1 -2.5;
analyze 20; # Min displacement=-25
integrator DisplacementControl 2 1 2.5;
analyze 20; # Max displacement=25
integrator DisplacementControl 2 1 -2.5;
analyze 20; # Min displacement=-25
integrator DisplacementControl 2 1 2.5;
analyze 20; # Max displacement=25
integrator DisplacementControl 2 1 -2.5;
analyze 20; # Min displacement=-25
# 7th loading Δe=30mm 3 rounds
integrator DisplacementControl 2 1 2.75;
analyze 20; # Max displacement=30
integrator DisplacementControl 2 1 -3;
analyze 20; # Min displacement=-30
integrator DisplacementControl 2 1 3;
analyze 20; # Max displacement=30
integrator DisplacementControl 2 1 -3;
analyze 20; # Min displacement=-30
integrator DisplacementControl 2 1 3;
analyze 20; # Max displacement=30
integrator DisplacementControl 2 1 -3;
analyze 20; # Min displacement=-30
puts "Analysis of pushover is completed..."
Re: beamwithhinge without deterioration!!
file of rotation hinge
proc rotSect2DModIKModel {eleID E A K asPos asNeg MyPos MyNeg LS LK LA LD cS cK cA cD th_pP th_pN th_pcP th_pcN ResP ResN th_uP th_uN DP DN} {
# Create the material and section
uniaxialMaterial Bilin $eleID $K $asPos $asNeg $MyPos $MyNeg $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
uniaxialMaterial Elastic [expr 10*$eleID + 1] [expr $E*$A]; # this is not used as a material, this is an axial-force-strain response
section Aggregator $eleID [expr 10*$eleID + 1] P $eleID Mz; # combine axial and flexural behavior into one section (no P-M interaction here)
}
proc rotSect2DModIKModel {eleID E A K asPos asNeg MyPos MyNeg LS LK LA LD cS cK cA cD th_pP th_pN th_pcP th_pcN ResP ResN th_uP th_uN DP DN} {
# Create the material and section
uniaxialMaterial Bilin $eleID $K $asPos $asNeg $MyPos $MyNeg $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
uniaxialMaterial Elastic [expr 10*$eleID + 1] [expr $E*$A]; # this is not used as a material, this is an axial-force-strain response
section Aggregator $eleID [expr 10*$eleID + 1] P $eleID Mz; # combine axial and flexural behavior into one section (no P-M interaction here)
}
Re: beamwithhinge without deterioration!!
Regarding the concentrated plasticity model:
1) n=1.5 is way to small to provide you accurate results. The spring must be rigid-plastic. This means that in the elastic region the spring should have negligible deformation. Ibarra and Krawinkler (2005) and Zareian and Medina (2010) have suggested n=10. This avoids numerical problems but gives you a 30% error in the elastic flexibility matrix. n=100, in turn, is associated with a 3% error. The paper I suggested you in another post (Ribeiro et. al, 2014), an again here, presents this discussion.
2) It is problably due to the issue in 1) that you have put a "10" here:
set a_mem [expr ($n+1.0)*($Mycol*($McMy-1.0)) / (10*$Ks_col_1*$th_pP)];
Regarding the finite-length plastic hinge model:
1) Again, you should go through the papers below.
In order to apply a moment-curvature relationship (for example obtained through the Bilin Material) in the BeamWithHinges element you should:
i) Create a moment-curvature relationship. This will be assigned to the plastic hinge section and will be integrated over the plastic hinge length Lp. What you have in your model is a moment-rotation relationship! To convert from moment-rotation to moment-curvature you have to multiply your stiffness by Lp and divide your rotations by Lp. Take a look at the example below.
ii) Make sure that you use a Lp that allows for correclty compute the element flexibility. Scott and Ryan (2013) have shown that Lp=L/6 is the only value of Lp that allows for directly recover the correct element flexibility without need for further calibration. If you want to use the Lp value you worked out, which I think is a good idea, you should redefine your integration scheme such that the element flexibility is well computed both in the linear and nonlinear regions. See the paper below and the example to find out how you define your integration scheme similarly to what is done in the article.
2) Assign a zero-length plastic hinge in this model doesn't seem very good.. even if you are sure you will have no nonlinearities in this hinge..
element beamWithHinges 111 1 2 $sec_c1 $Lp_c1 $sec_c1 0 $Es $Acol $Icol $PDeltaTransf;
References:
M.H. Scott, K. Ryan. "Moment-rotation behavior of force-based plastic hinge elements". Earthquake Spectra, 2013; 29:(2)597-607.
F.L.A. Ribeiro, A.R. Barbosa, M.H. Scott, and L.C. Neves. "Deterioration Modeling of Steel Moment Resisting Frame Using Finite-Length Plastic Hinge Force-Based Beam-Column Elements." Journal of Structural Engineering (in press, 2014)
Examples:
1) Define section stiffness and moment-curvature relationship based on the Bilin parameters:
# calculate flexural stiffness for plastic hinges
set Kspr_hinge_beam [expr 6.0*$Es*$I_beam/($LBeam)*$Lp_Beam];
# define plastic hinge properties and create section using "rotSect2DModIKModel" procedure
set McMy 1.05;
set LS [expr 1.1760*1/($Lp_Beam)];
set LK [expr 1.1760*1/($Lp_Beam)];
set LA [expr 1.1760*1/($Lp_Beam)];
set LC [expr 1.1760*1/($Lp_Beam)];
set cS 1.0;
set cK 1.0;
set cA 1.0;
set cD 1.0;
set th_pP [expr 0.02325/($Lp_Beam)];
set th_pN [expr 0.02325/($Lp_Beam)];
set th_pcP [expr 0.1559/($Lp_Beam)];
set th_pcN [expr 0.1559/($Lp_Beam)];
set ResP [expr 0.4];
set ResN [expr 0.4];
set th_uP [expr 0.4/($Lp_Beam)];
set th_uN [expr 0.4/($Lp_Beam)];
set DP 1.0;
set DN 1.0;
# Define strain hardening ratio
set b [expr ($My_beam*($McMy-1.0)) / ($Kspr_beam*$th_pP)];
2) Define your integration scheme similarly to Ribeiro et al (2014):
i) compute parameters Beta1 and Beta2 (and Beta3 if you have different Lp's at both ends) with the expressions provided in the paper
ii) Define the integration scheme. If you use the Modified Gauss-Radau as proposed by Scott and Fenves (2006):
#HingeRadau
set interiorhingeSection 11;
set interior 10;
section Elastic $interiorhingeSection $Es $A_col [expr $beta1*$I_beam];
section Elastic $interior $Es $A_col [expr $beta2*$I_beam];
set Locations "0 [expr (8.0/3*$Lp_Beam)/$LBeam] [expr (4.0*$Lp_Beam+($LBeam-8*$Lp_Beam)/2*(1-1/sqrt(3)))/$LBeam] [expr (4.0*$Lp_Beam+ $LBeam-8*$Lp_Beam)/2*(1+1/sqrt(3)))/$LBeam] [expr ($LBeam-8.0/3*$Lp_Beam)/$LBeam] 1.0";
set weights "[expr $Lp_Beam/$LBeam] [expr 3.0*$Lp_Beam/$LBeam] [expr (($LBeam-8.0*$Lp_Beam)/2)/$LBeam] [expr (($LBeam-8.0*$Lp_Beam)/2) /$LBeam] [expr 3.0*$Lp_Beam/$LBeam] [expr $Lp_Beam/$LBeam]";
set secTags "101 $interiorhingeSection $interior $interior $interiorhingeSection 101";
set integration "UserDefined 6 $secTags $Locations $weights";
element forceBeamColumn 1 1 2 $ColTransfTag $integration ;
Hope this helps.
Let me know if you have questions.
Good luck.
Filipe Ribeiro
1) n=1.5 is way to small to provide you accurate results. The spring must be rigid-plastic. This means that in the elastic region the spring should have negligible deformation. Ibarra and Krawinkler (2005) and Zareian and Medina (2010) have suggested n=10. This avoids numerical problems but gives you a 30% error in the elastic flexibility matrix. n=100, in turn, is associated with a 3% error. The paper I suggested you in another post (Ribeiro et. al, 2014), an again here, presents this discussion.
2) It is problably due to the issue in 1) that you have put a "10" here:
set a_mem [expr ($n+1.0)*($Mycol*($McMy-1.0)) / (10*$Ks_col_1*$th_pP)];
Regarding the finite-length plastic hinge model:
1) Again, you should go through the papers below.
In order to apply a moment-curvature relationship (for example obtained through the Bilin Material) in the BeamWithHinges element you should:
i) Create a moment-curvature relationship. This will be assigned to the plastic hinge section and will be integrated over the plastic hinge length Lp. What you have in your model is a moment-rotation relationship! To convert from moment-rotation to moment-curvature you have to multiply your stiffness by Lp and divide your rotations by Lp. Take a look at the example below.
ii) Make sure that you use a Lp that allows for correclty compute the element flexibility. Scott and Ryan (2013) have shown that Lp=L/6 is the only value of Lp that allows for directly recover the correct element flexibility without need for further calibration. If you want to use the Lp value you worked out, which I think is a good idea, you should redefine your integration scheme such that the element flexibility is well computed both in the linear and nonlinear regions. See the paper below and the example to find out how you define your integration scheme similarly to what is done in the article.
2) Assign a zero-length plastic hinge in this model doesn't seem very good.. even if you are sure you will have no nonlinearities in this hinge..
element beamWithHinges 111 1 2 $sec_c1 $Lp_c1 $sec_c1 0 $Es $Acol $Icol $PDeltaTransf;
References:
M.H. Scott, K. Ryan. "Moment-rotation behavior of force-based plastic hinge elements". Earthquake Spectra, 2013; 29:(2)597-607.
F.L.A. Ribeiro, A.R. Barbosa, M.H. Scott, and L.C. Neves. "Deterioration Modeling of Steel Moment Resisting Frame Using Finite-Length Plastic Hinge Force-Based Beam-Column Elements." Journal of Structural Engineering (in press, 2014)
Examples:
1) Define section stiffness and moment-curvature relationship based on the Bilin parameters:
# calculate flexural stiffness for plastic hinges
set Kspr_hinge_beam [expr 6.0*$Es*$I_beam/($LBeam)*$Lp_Beam];
# define plastic hinge properties and create section using "rotSect2DModIKModel" procedure
set McMy 1.05;
set LS [expr 1.1760*1/($Lp_Beam)];
set LK [expr 1.1760*1/($Lp_Beam)];
set LA [expr 1.1760*1/($Lp_Beam)];
set LC [expr 1.1760*1/($Lp_Beam)];
set cS 1.0;
set cK 1.0;
set cA 1.0;
set cD 1.0;
set th_pP [expr 0.02325/($Lp_Beam)];
set th_pN [expr 0.02325/($Lp_Beam)];
set th_pcP [expr 0.1559/($Lp_Beam)];
set th_pcN [expr 0.1559/($Lp_Beam)];
set ResP [expr 0.4];
set ResN [expr 0.4];
set th_uP [expr 0.4/($Lp_Beam)];
set th_uN [expr 0.4/($Lp_Beam)];
set DP 1.0;
set DN 1.0;
# Define strain hardening ratio
set b [expr ($My_beam*($McMy-1.0)) / ($Kspr_beam*$th_pP)];
2) Define your integration scheme similarly to Ribeiro et al (2014):
i) compute parameters Beta1 and Beta2 (and Beta3 if you have different Lp's at both ends) with the expressions provided in the paper
ii) Define the integration scheme. If you use the Modified Gauss-Radau as proposed by Scott and Fenves (2006):
#HingeRadau
set interiorhingeSection 11;
set interior 10;
section Elastic $interiorhingeSection $Es $A_col [expr $beta1*$I_beam];
section Elastic $interior $Es $A_col [expr $beta2*$I_beam];
set Locations "0 [expr (8.0/3*$Lp_Beam)/$LBeam] [expr (4.0*$Lp_Beam+($LBeam-8*$Lp_Beam)/2*(1-1/sqrt(3)))/$LBeam] [expr (4.0*$Lp_Beam+ $LBeam-8*$Lp_Beam)/2*(1+1/sqrt(3)))/$LBeam] [expr ($LBeam-8.0/3*$Lp_Beam)/$LBeam] 1.0";
set weights "[expr $Lp_Beam/$LBeam] [expr 3.0*$Lp_Beam/$LBeam] [expr (($LBeam-8.0*$Lp_Beam)/2)/$LBeam] [expr (($LBeam-8.0*$Lp_Beam)/2) /$LBeam] [expr 3.0*$Lp_Beam/$LBeam] [expr $Lp_Beam/$LBeam]";
set secTags "101 $interiorhingeSection $interior $interior $interiorhingeSection 101";
set integration "UserDefined 6 $secTags $Locations $weights";
element forceBeamColumn 1 1 2 $ColTransfTag $integration ;
Hope this helps.
Let me know if you have questions.
Good luck.
Filipe Ribeiro
Re: beamwithhinge without deterioration!!
Thank u very much! No words could express my feeling now because no one could help me around my side, so I am really appreciated for your help!
And I Still have some questions about how to define Bilin this material
1) this code is used to simulate a cantilever column with a plastic hinge (wide flange H type steel member). The appearance of the hinge is due to its local bucking. My senior students have the test results, so my first task is to use OS to simulate and compare with such results.
As a result, I find if I Use n=1.5 it will quite in accordance with initial stiffness of the hinge, n=10 it's too large for this plastic hinge stiffness. Moreover, because of such wide flange steel member which leads to a high ratio of Mc/My ( even reach to 1.8~1.9), it would not be simulated just by modified "b" in MK model, so I try a series of values for this "b" and reach my most close value.
Q: So since the n,s and Kmem are related as your paper said, because Ks is known for me, could I use Ks and Kmem to get n and then for modify the I_beam for elastic member?
2) Accually,I have read your paper for many times~ I do not take M-curvature just because of this example here which use beamwithhinge element ( http://opensees.berkeley.edu/wiki/index ... ment_Frame ). The example take the same parameter in Concentrated and distributed hinge models, so I learn it.
Regretfully,I should listen to u ^ _ ^.
And I Still have some questions about how to define Bilin this material
1) this code is used to simulate a cantilever column with a plastic hinge (wide flange H type steel member). The appearance of the hinge is due to its local bucking. My senior students have the test results, so my first task is to use OS to simulate and compare with such results.
As a result, I find if I Use n=1.5 it will quite in accordance with initial stiffness of the hinge, n=10 it's too large for this plastic hinge stiffness. Moreover, because of such wide flange steel member which leads to a high ratio of Mc/My ( even reach to 1.8~1.9), it would not be simulated just by modified "b" in MK model, so I try a series of values for this "b" and reach my most close value.
Q: So since the n,s and Kmem are related as your paper said, because Ks is known for me, could I use Ks and Kmem to get n and then for modify the I_beam for elastic member?
2) Accually,I have read your paper for many times~ I do not take M-curvature just because of this example here which use beamwithhinge element ( http://opensees.berkeley.edu/wiki/index ... ment_Frame ). The example take the same parameter in Concentrated and distributed hinge models, so I learn it.
Regretfully,I should listen to u ^ _ ^.
Re: beamwithhinge without deterioration!!
1) The initial stiffness of the element is supposed to be controlled by the elastic element. Maybe you should look at the EI you are using to define the elastic element.
2) It wasn't me that posted this example so I am not the right person to talk about it. I will let others explain it because they know what is in it better than me.
Filipe Ribeiro
2) It wasn't me that posted this example so I am not the right person to talk about it. I will let others explain it because they know what is in it better than me.
Filipe Ribeiro
Re: beamwithhinge without deterioration!!
1)This initial stiffness is to describe the hinge. In this step study I would get the rotation and moment of hinge. If I use n*E*I/L (n=10) for hinge stiffness the tangent (which means the elastic stiffness of hinge ) showed in moment-rotation figure is too large. So I directly define the hinge rotation stiffness, and use the relationship between n, Ks(stiffness of hinge) and Kmem ( 6*E*I/L) to get the n and then get the modified I_elastic. This why I get n=1.5 for the hinge.
Re: beamwithhinge without deterioration!!
Thank u for your help, and now it's too late in my timezone I get to bed, and I would try your method tomorrow.
Really thanks, your answers solve a lot of my question ^ _ ^
Really thanks, your answers solve a lot of my question ^ _ ^
Re: beamwithhinge without deterioration!!
f.ribeiro wrote:
> 1) The initial stiffness of the element is supposed to be controlled by the
> elastic element. Maybe you should look at the EI you are using to define
> the elastic element.
>
> 2) It wasn't me that posted this example so I am not the right person to
> talk about it. I will let others explain it because they know what is in it
> better than me.
>
> Filipe Ribeiro
Hi Ribeiro
1) Is there any recorders that could output the moment and rotation or curvature of the section of hinge? could u give a example.
2) It seems that u define a new kind of element to present a beam with plastic hinge instead of just using the existing BeamwithHinge element, right?
> 1) The initial stiffness of the element is supposed to be controlled by the
> elastic element. Maybe you should look at the EI you are using to define
> the elastic element.
>
> 2) It wasn't me that posted this example so I am not the right person to
> talk about it. I will let others explain it because they know what is in it
> better than me.
>
> Filipe Ribeiro
Hi Ribeiro
1) Is there any recorders that could output the moment and rotation or curvature of the section of hinge? could u give a example.
2) It seems that u define a new kind of element to present a beam with plastic hinge instead of just using the existing BeamwithHinge element, right?
Re: beamwithhinge without deterioration!!
> #HingeRadau
> set interiorhingeSection 11;
> set interior 10;
> section Elastic $interiorhingeSection $Es $A_col [expr $beta1*$I_beam];
> section Elastic $interior $Es $A_col [expr $beta2*$I_beam];
>
> set Locations "0 [expr (8.0/3*$Lp_Beam)/$LBeam] [expr
> (4.0*$Lp_Beam+($LBeam-8*$Lp_Beam)/2*(1-1/sqrt(3)))/$LBeam] [expr
> (4.0*$Lp_Beam+ $LBeam-8*$Lp_Beam)/2*(1+1/sqrt(3)))/$LBeam] [expr
> ($LBeam-8.0/3*$Lp_Beam)/$LBeam] 1.0";
> set weights "[expr $Lp_Beam/$LBeam] [expr 3.0*$Lp_Beam/$LBeam] [expr
> (($LBeam-8.0*$Lp_Beam)/2)/$LBeam] [expr (($LBeam-8.0*$Lp_Beam)/2) /$LBeam]
> [expr 3.0*$Lp_Beam/$LBeam] [expr $Lp_Beam/$LBeam]";
> set secTags "101 $interiorhingeSection $interior $interior
> $interiorhingeSection 101";
> set integration "UserDefined 6 $secTags $Locations $weights";
> element forceBeamColumn 1 1 2 $ColTransfTag $integration ;
3) I try to use your method; however, I still get the a elastic result by showing force-displacement ( free node displacement and base node reaction )( because I do not know how to get the result of moment and rotation or curvature of hinge region)
And if I use the above concentrated model, I could get a deterioration result.
# Units: N mm second
###################################################################################################
# Set Up & Source Definition
###################################################################################################
wipe all; # clear memory of past model definitions
model BasicBuilder -ndm 2 -ndf 3; # Define the model builder, ndm = #dimension, ndf = #dofs
source rotSect2DModIKModel.tcl; # procedure for defining bilinear plastic hinge section
###################################################################################################
# Define Analysis Type
###################################################################################################
# Define type of analysis: "pushover" = pushover
set analysisType "pushover";
if {$analysisType == "pushover"} {
set dataDir Distributed-Pushover-Output; # name of output folder
file mkdir $dataDir; # create output folder
}
###################################################################################################
# Define Building Geometry, Nodes, and Constraints
###################################################################################################
# define nodes
set H 1500;
node 1 0.0 0.0 ;
node 2 0.0 $H ;
# define constraints
fix 1 1 1 1 ;
fix 2 0 0 0 ;
###################################################################################################
# Define Section Properties and Elements
###################################################################################################
# define material properties
set Es 201000.0; # steel Young's modulus
# define column section W24x131 for Story 1 & 2
set Acol 4750; # cross-sectional area
set Icol 71281938; # moment of inertia
set Mycol 187540636.6; # yield moment
# define plastic hinge lengths
set Lp_c1 251; # length of plastic hinge for Story 1 columns [expr 0.004*$H]
# calculate rotational stiffness for plastic hinges
set Ks_col_1 [expr 6.0*$Es*$Icol/$Lp_c1]; # rotational stiffness of Story 1 column hinges
set Kmem_col_1 [expr 6.0*$Es*$Icol/$H]; # rotational stiffness of Story 1 columns
set n_c1 10
###################################################################################################
# Define Rotational Springs for Plastic Hinges
###################################################################################################
# define rotational spring properties and create spring elements using "rotSect2DModIKModel" procedure
# input values for Story 1 column springs
set McMy 1.5; # ratio of capping moment to yield moment, Mc / My
set LS [expr 0.353/$Lp_c1]; # basic strength deterioration (a very large # = no cyclic deterioration)
set LK [expr 0.353/$Lp_c1]; # unloading stiffness deterioration (a very large # = no cyclic deterioration)
set LA [expr 0.353/$Lp_c1]; # accelerated reloading stiffness deterioration (a very large # = no cyclic deterioration)
set LD [expr 0.353/$Lp_c1]; # post-capping strength deterioration (a very large # = no deterioration)
set cS 1.0; # exponent for basic strength deterioration (c = 1.0 for no deterioration)
set cK 1.0; # exponent for unloading stiffness deterioration (c = 1.0 for no deterioration)
set cA 1.0; # exponent for accelerated reloading stiffness deterioration (c = 1.0 for no deterioration)
set cD 1.0; # exponent for post-capping strength deterioration (c = 1.0 for no deterioration)
set th_pP [expr 0.0067/$Lp_c1]; # plastic rot capacity for pos loading
set th_pN [expr 0.0067/$Lp_c1]; # plastic rot capacity for neg loading
set th_pcP [expr 0.08/$Lp_c1]; # post-capping rot capacity for pos loading
set th_pcN [expr 0.08/$Lp_c1]; # post-capping rot capacity for neg loading
set ResP 0.3; # residual strength ratio for pos loading
set ResN 0.3; # residual strength ratio for neg loading
set th_uP [expr 0.6/$Lp_c1]; # ultimate rot capacity for pos loading
set th_uN [expr 0.6/$Lp_c1]; # ultimate rot capacity for neg loading
set DP 1.0; # rate of cyclic deterioration for pos loading
set DN 1.0; # rate of cyclic deterioration for neg loading
set a_mem [expr ($Mycol*($McMy-1.0)) / ($Kmem_col_1*$th_pP)]; # strain hardening ratio of member
set b [expr ($a_mem)/(1.0+$n_c1*(1.0-$a_mem))]; # modified strain hardening ratio (Ibarra & Krawinkler 2005, note: Eqn B.5 is incorrect)
# define column plastic hinge sections
# Story 1 columns
set sec_c1 101; # section ID for Story 1 columns
rotSect2DModIKModel $sec_c1 $Es $Acol $Ks_col_1 $b $b $Mycol [expr -$Mycol] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
# set up geometric transformations of element
set PDeltaTransf 1;
geomTransf PDelta $PDeltaTransf; # PDelta transformation
# define column elements using "element" command
# Columns Story 1
set beta1 [expr -6*(3*$H*$H*$Lp_c1-24*$Lp_c1*$H*$H+32*$Lp_c1*$Lp_c1*$Lp_c1)/($H*($H-$Lp_c1)*($H-$Lp_c1))]
set beta2 [expr 3*(3*$H*$H*$H-48*$Lp_c1*$H*$H+224*$H*$Lp_c1*$Lp_c1-256*$Lp_c1*$Lp_c1*$Lp_c1)/($H*(3*$H-16*$Lp_c1)*(3*$H-16*$Lp_c1))]
set interiorhingeSection 11;
set interior 10;
section Elastic $interiorhingeSection $Es $Acol [expr $beta1*$Icol];
section Elastic $interior $Es $Acol [expr $beta2*$Icol];
set Locations "0 [expr (8.0/3*$Lp_c1)/$H] [expr (4.0*$Lp_c1+($H-8*$Lp_c1)/2*(1-1/sqrt(3)))/$H] [expr (4.0*$Lp_c1+($H-8*$Lp_c1)/2*(1+1/sqrt(3)))/$H] [expr ($H-8.0/3*$Lp_c1)/$H] 1.0";
set weights "[expr $Lp_c1/$H] [expr 3.0*$Lp_c1/$H] [expr (($H-8.0*$Lp_c1)/2)/$H] [expr (($H-8.0*$Lp_c1)/2) /$H] [expr 3.0*$Lp_c1/$H] [expr $Lp_c1/$H]";
set secTags "101 $interiorhingeSection $interior $interior $interiorhingeSection 101";
set integration "UserDefined 6 $secTags $Locations $weights";
element forceBeamColumn 1 1 2 $PDeltaTransf $integration ;
############################################################################
# Gravity Loads & Gravity Analysis
############################################################################
# apply gravity loads
#command: pattern PatternType $PatternID TimeSeriesType
pattern Plain 1 Linear {
load 2 0 -1000 0
}
# Gravity-analysis: load-controlled static analysis
# define parameters of gravity
constraints Plain
numberer Plain
system BandGeneral
test NormDispIncr 10e-3 6 2
algorithm ModifiedNewton
integrator LoadControl 0.1
analysis Static
analyze 10
# maintain constant gravity loads and reset time to zero
loadConst -time 0.0
puts "Analysis of gravity is completed..."
############################################################################
# Recorders
############################################################################
# record story 1 column forces in global coordinates
#recorder Element -file $dataDir/Forcsec1.out -time -ele 1 section 101 force; # section forces, axial and moment, node i
#recorder Element -file $dataDir/Defosec1.out -time -ele 1 section 101 deformation; # section deformations, axial and curvature, node i
recorder Node -file $dataDir/disp2 -time -node 2 -dof 1 disp
recorder Node -file $dataDir/forc1 -time -node 1 -dof 1 reaction
#######################################################################################
# #
# Analysis Section #
# #
#######################################################################################
############################################################################
# Pushover Analysis #
############################################################################
pattern Plain 2 Linear {
load 2 1 0.0 0.0;
}
constraints Plain
numberer RCM
system Umfpack
test NormDispIncr 10e-1 200 2
algorithm ModifiedNewton
analysis Static
# 1st loading 0.75Δe=3.75mm
integrator DisplacementControl 2 1 0.75;
analyze 5; # Max displacement=3.75
integrator DisplacementControl 2 1 -1.5;
analyze 5; # Min displacement=-3.75
# 2nd loading Δe=5mm 2 rounds
integrator DisplacementControl 2 1 1.75;
analyze 5; # Max displacement=5
integrator DisplacementControl 2 1 -2;
analyze 5; # Min displacement=-5
integrator DisplacementControl 2 1 2;
analyze 5; # Max displacement=5
integrator DisplacementControl 2 1 -2;
analyze 5; # Min displacement=-5
# 3rd loading Δe=10mm 3 rounds
integrator DisplacementControl 2 1 1.5;
analyze 10; # Max displacement=10
integrator DisplacementControl 2 1 -2;
analyze 10; # Min displacement=-10
integrator DisplacementControl 2 1 2;
analyze 10; # Max displacement=10
integrator DisplacementControl 2 1 -2;
analyze 10; # Min displacement=-10
integrator DisplacementControl 2 1 2;
analyze 10; # Max displacement=10
integrator DisplacementControl 2 1 -2;
analyze 10; # Min displacement=-10
# 4th loading Δe=15mm 3 rounds
integrator DisplacementControl 2 1 2.5;
analyze 10; # Max displacement=15
integrator DisplacementControl 2 1 -3;
analyze 10; # Min displacement=-15
integrator DisplacementControl 2 1 3;
analyze 10; # Max displacement=15
integrator DisplacementControl 2 1 -3;
analyze 10; # Min displacement=-15
integrator DisplacementControl 2 1 3;
analyze 10; # Max displacement=15
integrator DisplacementControl 2 1 -3;
analyze 10; # Min displacement=-15
# 5th loading Δe=20mm 3 rounds
integrator DisplacementControl 2 1 1.75;
analyze 20; # Max displacement=20
integrator DisplacementControl 2 1 -2;
analyze 20; # Min displacement=-20
integrator DisplacementControl 2 1 2;
analyze 20; # Max displacement=20
integrator DisplacementControl 2 1 -2;
analyze 20; # Min displacement=-20
integrator DisplacementControl 2 1 2;
analyze 20; # Max displacement=20
integrator DisplacementControl 2 1 -2;
analyze 20; # Min displacement=-20
# 6th loading Δe=25mm 3 rounds
integrator DisplacementControl 2 1 2.25;
analyze 20; # Max displacement=25
integrator DisplacementControl 2 1 -2.5;
analyze 20; # Min displacement=-25
integrator DisplacementControl 2 1 2.5;
analyze 20; # Max displacement=25
integrator DisplacementControl 2 1 -2.5;
analyze 20; # Min displacement=-25
integrator DisplacementControl 2 1 2.5;
analyze 20; # Max displacement=25
integrator DisplacementControl 2 1 -2.5;
analyze 20; # Min displacement=-25
# 7th loading Δe=30mm 3 rounds
integrator DisplacementControl 2 1 2.75;
analyze 20; # Max displacement=30
integrator DisplacementControl 2 1 -3;
analyze 20; # Min displacement=-30
integrator DisplacementControl 2 1 3;
analyze 20; # Max displacement=30
integrator DisplacementControl 2 1 -3;
analyze 20; # Min displacement=-30
integrator DisplacementControl 2 1 3;
analyze 20; # Max displacement=30
integrator DisplacementControl 2 1 -3;
analyze 20; # Min displacement=-30
puts "Analysis of pushover is completed..."
> set interiorhingeSection 11;
> set interior 10;
> section Elastic $interiorhingeSection $Es $A_col [expr $beta1*$I_beam];
> section Elastic $interior $Es $A_col [expr $beta2*$I_beam];
>
> set Locations "0 [expr (8.0/3*$Lp_Beam)/$LBeam] [expr
> (4.0*$Lp_Beam+($LBeam-8*$Lp_Beam)/2*(1-1/sqrt(3)))/$LBeam] [expr
> (4.0*$Lp_Beam+ $LBeam-8*$Lp_Beam)/2*(1+1/sqrt(3)))/$LBeam] [expr
> ($LBeam-8.0/3*$Lp_Beam)/$LBeam] 1.0";
> set weights "[expr $Lp_Beam/$LBeam] [expr 3.0*$Lp_Beam/$LBeam] [expr
> (($LBeam-8.0*$Lp_Beam)/2)/$LBeam] [expr (($LBeam-8.0*$Lp_Beam)/2) /$LBeam]
> [expr 3.0*$Lp_Beam/$LBeam] [expr $Lp_Beam/$LBeam]";
> set secTags "101 $interiorhingeSection $interior $interior
> $interiorhingeSection 101";
> set integration "UserDefined 6 $secTags $Locations $weights";
> element forceBeamColumn 1 1 2 $ColTransfTag $integration ;
3) I try to use your method; however, I still get the a elastic result by showing force-displacement ( free node displacement and base node reaction )( because I do not know how to get the result of moment and rotation or curvature of hinge region)
And if I use the above concentrated model, I could get a deterioration result.
# Units: N mm second
###################################################################################################
# Set Up & Source Definition
###################################################################################################
wipe all; # clear memory of past model definitions
model BasicBuilder -ndm 2 -ndf 3; # Define the model builder, ndm = #dimension, ndf = #dofs
source rotSect2DModIKModel.tcl; # procedure for defining bilinear plastic hinge section
###################################################################################################
# Define Analysis Type
###################################################################################################
# Define type of analysis: "pushover" = pushover
set analysisType "pushover";
if {$analysisType == "pushover"} {
set dataDir Distributed-Pushover-Output; # name of output folder
file mkdir $dataDir; # create output folder
}
###################################################################################################
# Define Building Geometry, Nodes, and Constraints
###################################################################################################
# define nodes
set H 1500;
node 1 0.0 0.0 ;
node 2 0.0 $H ;
# define constraints
fix 1 1 1 1 ;
fix 2 0 0 0 ;
###################################################################################################
# Define Section Properties and Elements
###################################################################################################
# define material properties
set Es 201000.0; # steel Young's modulus
# define column section W24x131 for Story 1 & 2
set Acol 4750; # cross-sectional area
set Icol 71281938; # moment of inertia
set Mycol 187540636.6; # yield moment
# define plastic hinge lengths
set Lp_c1 251; # length of plastic hinge for Story 1 columns [expr 0.004*$H]
# calculate rotational stiffness for plastic hinges
set Ks_col_1 [expr 6.0*$Es*$Icol/$Lp_c1]; # rotational stiffness of Story 1 column hinges
set Kmem_col_1 [expr 6.0*$Es*$Icol/$H]; # rotational stiffness of Story 1 columns
set n_c1 10
###################################################################################################
# Define Rotational Springs for Plastic Hinges
###################################################################################################
# define rotational spring properties and create spring elements using "rotSect2DModIKModel" procedure
# input values for Story 1 column springs
set McMy 1.5; # ratio of capping moment to yield moment, Mc / My
set LS [expr 0.353/$Lp_c1]; # basic strength deterioration (a very large # = no cyclic deterioration)
set LK [expr 0.353/$Lp_c1]; # unloading stiffness deterioration (a very large # = no cyclic deterioration)
set LA [expr 0.353/$Lp_c1]; # accelerated reloading stiffness deterioration (a very large # = no cyclic deterioration)
set LD [expr 0.353/$Lp_c1]; # post-capping strength deterioration (a very large # = no deterioration)
set cS 1.0; # exponent for basic strength deterioration (c = 1.0 for no deterioration)
set cK 1.0; # exponent for unloading stiffness deterioration (c = 1.0 for no deterioration)
set cA 1.0; # exponent for accelerated reloading stiffness deterioration (c = 1.0 for no deterioration)
set cD 1.0; # exponent for post-capping strength deterioration (c = 1.0 for no deterioration)
set th_pP [expr 0.0067/$Lp_c1]; # plastic rot capacity for pos loading
set th_pN [expr 0.0067/$Lp_c1]; # plastic rot capacity for neg loading
set th_pcP [expr 0.08/$Lp_c1]; # post-capping rot capacity for pos loading
set th_pcN [expr 0.08/$Lp_c1]; # post-capping rot capacity for neg loading
set ResP 0.3; # residual strength ratio for pos loading
set ResN 0.3; # residual strength ratio for neg loading
set th_uP [expr 0.6/$Lp_c1]; # ultimate rot capacity for pos loading
set th_uN [expr 0.6/$Lp_c1]; # ultimate rot capacity for neg loading
set DP 1.0; # rate of cyclic deterioration for pos loading
set DN 1.0; # rate of cyclic deterioration for neg loading
set a_mem [expr ($Mycol*($McMy-1.0)) / ($Kmem_col_1*$th_pP)]; # strain hardening ratio of member
set b [expr ($a_mem)/(1.0+$n_c1*(1.0-$a_mem))]; # modified strain hardening ratio (Ibarra & Krawinkler 2005, note: Eqn B.5 is incorrect)
# define column plastic hinge sections
# Story 1 columns
set sec_c1 101; # section ID for Story 1 columns
rotSect2DModIKModel $sec_c1 $Es $Acol $Ks_col_1 $b $b $Mycol [expr -$Mycol] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
# set up geometric transformations of element
set PDeltaTransf 1;
geomTransf PDelta $PDeltaTransf; # PDelta transformation
# define column elements using "element" command
# Columns Story 1
set beta1 [expr -6*(3*$H*$H*$Lp_c1-24*$Lp_c1*$H*$H+32*$Lp_c1*$Lp_c1*$Lp_c1)/($H*($H-$Lp_c1)*($H-$Lp_c1))]
set beta2 [expr 3*(3*$H*$H*$H-48*$Lp_c1*$H*$H+224*$H*$Lp_c1*$Lp_c1-256*$Lp_c1*$Lp_c1*$Lp_c1)/($H*(3*$H-16*$Lp_c1)*(3*$H-16*$Lp_c1))]
set interiorhingeSection 11;
set interior 10;
section Elastic $interiorhingeSection $Es $Acol [expr $beta1*$Icol];
section Elastic $interior $Es $Acol [expr $beta2*$Icol];
set Locations "0 [expr (8.0/3*$Lp_c1)/$H] [expr (4.0*$Lp_c1+($H-8*$Lp_c1)/2*(1-1/sqrt(3)))/$H] [expr (4.0*$Lp_c1+($H-8*$Lp_c1)/2*(1+1/sqrt(3)))/$H] [expr ($H-8.0/3*$Lp_c1)/$H] 1.0";
set weights "[expr $Lp_c1/$H] [expr 3.0*$Lp_c1/$H] [expr (($H-8.0*$Lp_c1)/2)/$H] [expr (($H-8.0*$Lp_c1)/2) /$H] [expr 3.0*$Lp_c1/$H] [expr $Lp_c1/$H]";
set secTags "101 $interiorhingeSection $interior $interior $interiorhingeSection 101";
set integration "UserDefined 6 $secTags $Locations $weights";
element forceBeamColumn 1 1 2 $PDeltaTransf $integration ;
############################################################################
# Gravity Loads & Gravity Analysis
############################################################################
# apply gravity loads
#command: pattern PatternType $PatternID TimeSeriesType
pattern Plain 1 Linear {
load 2 0 -1000 0
}
# Gravity-analysis: load-controlled static analysis
# define parameters of gravity
constraints Plain
numberer Plain
system BandGeneral
test NormDispIncr 10e-3 6 2
algorithm ModifiedNewton
integrator LoadControl 0.1
analysis Static
analyze 10
# maintain constant gravity loads and reset time to zero
loadConst -time 0.0
puts "Analysis of gravity is completed..."
############################################################################
# Recorders
############################################################################
# record story 1 column forces in global coordinates
#recorder Element -file $dataDir/Forcsec1.out -time -ele 1 section 101 force; # section forces, axial and moment, node i
#recorder Element -file $dataDir/Defosec1.out -time -ele 1 section 101 deformation; # section deformations, axial and curvature, node i
recorder Node -file $dataDir/disp2 -time -node 2 -dof 1 disp
recorder Node -file $dataDir/forc1 -time -node 1 -dof 1 reaction
#######################################################################################
# #
# Analysis Section #
# #
#######################################################################################
############################################################################
# Pushover Analysis #
############################################################################
pattern Plain 2 Linear {
load 2 1 0.0 0.0;
}
constraints Plain
numberer RCM
system Umfpack
test NormDispIncr 10e-1 200 2
algorithm ModifiedNewton
analysis Static
# 1st loading 0.75Δe=3.75mm
integrator DisplacementControl 2 1 0.75;
analyze 5; # Max displacement=3.75
integrator DisplacementControl 2 1 -1.5;
analyze 5; # Min displacement=-3.75
# 2nd loading Δe=5mm 2 rounds
integrator DisplacementControl 2 1 1.75;
analyze 5; # Max displacement=5
integrator DisplacementControl 2 1 -2;
analyze 5; # Min displacement=-5
integrator DisplacementControl 2 1 2;
analyze 5; # Max displacement=5
integrator DisplacementControl 2 1 -2;
analyze 5; # Min displacement=-5
# 3rd loading Δe=10mm 3 rounds
integrator DisplacementControl 2 1 1.5;
analyze 10; # Max displacement=10
integrator DisplacementControl 2 1 -2;
analyze 10; # Min displacement=-10
integrator DisplacementControl 2 1 2;
analyze 10; # Max displacement=10
integrator DisplacementControl 2 1 -2;
analyze 10; # Min displacement=-10
integrator DisplacementControl 2 1 2;
analyze 10; # Max displacement=10
integrator DisplacementControl 2 1 -2;
analyze 10; # Min displacement=-10
# 4th loading Δe=15mm 3 rounds
integrator DisplacementControl 2 1 2.5;
analyze 10; # Max displacement=15
integrator DisplacementControl 2 1 -3;
analyze 10; # Min displacement=-15
integrator DisplacementControl 2 1 3;
analyze 10; # Max displacement=15
integrator DisplacementControl 2 1 -3;
analyze 10; # Min displacement=-15
integrator DisplacementControl 2 1 3;
analyze 10; # Max displacement=15
integrator DisplacementControl 2 1 -3;
analyze 10; # Min displacement=-15
# 5th loading Δe=20mm 3 rounds
integrator DisplacementControl 2 1 1.75;
analyze 20; # Max displacement=20
integrator DisplacementControl 2 1 -2;
analyze 20; # Min displacement=-20
integrator DisplacementControl 2 1 2;
analyze 20; # Max displacement=20
integrator DisplacementControl 2 1 -2;
analyze 20; # Min displacement=-20
integrator DisplacementControl 2 1 2;
analyze 20; # Max displacement=20
integrator DisplacementControl 2 1 -2;
analyze 20; # Min displacement=-20
# 6th loading Δe=25mm 3 rounds
integrator DisplacementControl 2 1 2.25;
analyze 20; # Max displacement=25
integrator DisplacementControl 2 1 -2.5;
analyze 20; # Min displacement=-25
integrator DisplacementControl 2 1 2.5;
analyze 20; # Max displacement=25
integrator DisplacementControl 2 1 -2.5;
analyze 20; # Min displacement=-25
integrator DisplacementControl 2 1 2.5;
analyze 20; # Max displacement=25
integrator DisplacementControl 2 1 -2.5;
analyze 20; # Min displacement=-25
# 7th loading Δe=30mm 3 rounds
integrator DisplacementControl 2 1 2.75;
analyze 20; # Max displacement=30
integrator DisplacementControl 2 1 -3;
analyze 20; # Min displacement=-30
integrator DisplacementControl 2 1 3;
analyze 20; # Max displacement=30
integrator DisplacementControl 2 1 -3;
analyze 20; # Min displacement=-30
integrator DisplacementControl 2 1 3;
analyze 20; # Max displacement=30
integrator DisplacementControl 2 1 -3;
analyze 20; # Min displacement=-30
puts "Analysis of pushover is completed..."
Re: beamwithhinge without deterioration!!
Section deformation (axial and curvature) can be obtained with the Element Deformation recorder:
recorder Element -file FileDeformation.out -ele 1 section 1 deformation
End section forces can be obtained with the Element Forces recorder:
recorder Element -file FileForces.out -ele 1 globalForce
The type of element we are using is similar do the BeamWithHinges element implemented in the source code. It uses the same integration scheme (int points locations and weights). The only difference is that we use stiffness modification parameters (Betas) for the elastic sections, in order to get an accurate response when moment-rotation relationships are scaled in order to be used as moment-curvature relationships in the plastic hinge sections.
Filipe Ribeiro
recorder Element -file FileDeformation.out -ele 1 section 1 deformation
End section forces can be obtained with the Element Forces recorder:
recorder Element -file FileForces.out -ele 1 globalForce
The type of element we are using is similar do the BeamWithHinges element implemented in the source code. It uses the same integration scheme (int points locations and weights). The only difference is that we use stiffness modification parameters (Betas) for the elastic sections, in order to get an accurate response when moment-rotation relationships are scaled in order to be used as moment-curvature relationships in the plastic hinge sections.
Filipe Ribeiro