Specially concentrated braced frame

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

Moderators: silvia, selimgunay, Moderators

Post Reply
SHAIJALKM
Posts: 3
Joined: Wed Sep 16, 2020 8:46 pm

Specially concentrated braced frame

Post by SHAIJALKM » Mon Sep 21, 2020 3:05 am

# --------------------------------------------------------------------------------------------------
# 2D model of 1-Story 1-Bay Special Concentric Braced Frame - dynamic and pushover analysis
#---------------------------------------------------------------------------------------------------
# Braces are defined with 10 force beam-column elements (with 3 IPs)
# Gusset plates are modeled with: (i) force based beam-column elements (with 2 IPs), (ii) rotational hinge
# Rigid portions of gusset plates, beams and columns are defined with rigid elastic elements.
# Geometric imperfection of braces is out-of-plane parabolic in shape with the inital imperfection of Leff/1000.

# Created by: Vesna Terzic, UC Berkeley, 2013
# Units: kips, inches, seconds

# Element ID conventions:
# 1x = frame columns
# 2a = frame beams
# 3a00 = braces
# 4ab = gusset plates
# 5a, 6a, 7ab = rigid elements of beams, columns and braces
#
# where:
# x = Pier #
# a, b = integers describing the location (see description where elements are defined)

foreach GP_Model { "RH" "GP" } {
# GP stands for gusset plate connection model based on Uriz report: PEER 2008/08
# RH stands for gusset plate connection model that uses rotational spring based on: Po-Chien Hsiao, Dawn E. Lehman, Charles W. Roeder, (2012), "Improved analytical model for special concentrically braced frames", Journal of Constructional Steel Research 73 (21012) 80-94
###################################################################################################
# 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 WSection.tcl; # procedure for creating standard steel W section
source HSSsection.tcl; # procedure for creating standard steel HSS section
source GPsection.tcl; # procedure for creating gusset plate section

###################################################################################################
# Define Analysis Type and create output folder
###################################################################################################
# Define type of analysis: "pushover" = pushover; "dynamic" = dynamic
set analysisType "dynamic";

if {$analysisType == "pushover"} {
if { $GP_Model == "GP" } {
set dataDir Pushover-Output-GP; # name of output folder
} else {
set dataDir Pushover-Output-RH;
}
file mkdir $dataDir; # create output folder
}
if {$analysisType == "dynamic"} {
if { $GP_Model == "GP" } {
set dataDir Dynamic-Output-GP; # name of output folder
} else {
set dataDir Dynamic-Output-RH;
}
set subDir1 DriftAcceleration
set subDir2 ForceDeformation
file mkdir $dataDir/$subDir1; # create output folder
file mkdir $dataDir/$subDir2;
}

###################################################################################################
# Define Building Geometry, Nodes, and Constraints
###################################################################################################
# define structure-geometry parameters
set NStories 3; # number of stories
set NBays 1; # number of frame bays
set WBay 300.; # bay width in inches
set HStory 150.; # 1st story height in inches
set HBuilding [expr (($NStories)*$HStory)]; # height of building

# calculate locations frame nodes:
set Pier1 0.0; # leftmost column line
set Pier2 [expr $Pier1 + $WBay];
set Floor1 0.0; # ground floor
set Floor2 [expr $Floor1 + $HStory]; # first floor
set Floor3 [expr $Floor2 + $HStory]; # second floor
set Floor4 [expr $Floor3 + $HStory]; # Third floor

# joint offset distance for beams, columns, and braces (from gusset plate geometry)
set jOff_col_b 44.81; # joint offset at the bottom of the column (gusset-plate conection)
set jOff_beam_m 50.56; # joint offset from the middle node of beam (gusset-plate conection)
set jOff_brace_b 26.2; # joint offset at the bottom of a braces in X and Y direction (from work point to yield line)
set jOff_brace_t 31.95; # joint offset at the top of a brace in X and Y direction (from work point to yield line)
set jOff_beam_e 7.61; # joint offset for the beam at its ends (from column centerline to the shear tab hinge line)
set jOff_beam_ex 44.81; # joint offset at the bottom of the column (gusset-plate conection)
set jOff_col_t 13.355; # joint offset for a column at the beam-column conection (Dbeam/2)

# end node ofsets of the braces (from a work point to the beginning of the brace)
set nOff_brace_b 28.68; # bottom of a brace in X and Y direction
set nOff_brace_t 34.43; # top of a brace in X and Y direction

# brace effective lenght, number of elements per braace, and initial imperfection
set PI [expr 2.*asin(1.0)]
set alpha [expr $PI/4.]
set Leff [expr ($WBay/2.)/cos($alpha)-$nOff_brace_b/cos($alpha)-$nOff_brace_t/cos($alpha)]; #effective brace lenght
set noEle 10; # number of elements per brace
set p_ratio 1000.; #coresponds to 0.05% of the effective lenght
set p [expr 1./$p_ratio*$Leff]; #imperfection of the brace

# floor masses
set g 386.4; # acceleration due to gravity
set NodalMass2H 2.513; # horizontal mass
set NodalMass2V 0.21; # veritcal mass
set NodalMass3H 2.513; # horizontal mass
set NodalMass3V 0.21; # veritcal mass
set NodalMass4H 2.513; # horizontal mass
set NodalMass4V 0.21; # veritcal mass

# define nodes and assign masses to beam-column intersections of frame
# command: node nodeID xcoord ycoord -mass mass_dof1 mass_dof2 mass_dof3
node 1 $Pier1 $Floor1;
node 2 $Pier2 $Floor1;
node 3 $Pier1 $Floor2 -mass [expr $NodalMass2H/3.] [expr $NodalMass2V*0.375] 0.0;
node 4 [expr $WBay/2.0] $Floor2 0.0 -mass [expr $NodalMass2H/3.] [expr $NodalMass2V*0.25] 0.0;
node 5 $Pier2 $Floor2 0.0 -mass [expr $NodalMass2H/3.] [expr $NodalMass2V*0.375] 0.0;
node 6 $Pier1 $Floor3 -mass [expr $NodalMass3H/3.] [expr $NodalMass3V*0.375] 0.0;
node 7 [expr $WBay/2.0] $Floor3 0.0 -mass [expr $NodalMass3H/3.] [expr $NodalMass3V*0.25] 0.0;
node 8 $Pier2 $Floor3 0.0 -mass [expr $NodalMass3H/3.] [expr $NodalMass3V*0.375] 0.0;
node 9 $Pier1 $Floor4 -mass [expr $NodalMass4H/3.] [expr $NodalMass4V*0.375] 0.0;
node 10 [expr $WBay/2.0] $Floor4 0.0 -mass [expr $NodalMass4H/3.] [expr $NodalMass4V*0.25] 0.0;
node 12 $Pier2 $Floor4 0.0 -mass [expr $NodalMass4H/3.] [expr $NodalMass4V*0.375] 0.0;


# define extra nodes in the beam
# at shear tabs (pin connection)
node 921 [expr $Pier1+$jOff_beam_e] $Floor4
node 922 [expr $Pier1+$jOff_beam_e] $Floor4
node 1221 [expr $Pier2-$jOff_beam_e] $Floor4
node 1222 [expr $Pier2-$jOff_beam_e] $Floor4
# at gusset plate conection
node 1021 [expr $WBay/2.0-$jOff_beam_m] $Floor4
node 1022 [expr $WBay/2.0+$jOff_beam_m] $Floor4
node 721 [expr $WBay/2.0-$jOff_beam_m] $Floor3
node 722 [expr $WBay/2.0+$jOff_beam_m] $Floor3
node 421 [expr $WBay/2.0-$jOff_beam_m] $Floor2
node 422 [expr $WBay/2.0+$jOff_beam_m] $Floor2

# define extra nodes in the columns
# nodes at the base ground floor
node 11 $Pier1 [expr $Floor1+$jOff_col_b]
node 21 $Pier2 [expr $Floor1+$jOff_col_b]
# nodes at the beam-column conection ground floor
node 31 $Pier1 [expr $Floor2-$jOff_col_t]
node 51 $Pier2 [expr $Floor2-$jOff_col_t]
# nodes at the beam-column conection first floor
node 32 $Pier1 [expr $Floor2+$jOff_col_b]
node 52 $Pier2 [expr $Floor2+$jOff_col_b]
# nodes at the beam-column conection first floor
node 61 $Pier1 [expr $Floor3-$jOff_col_t]
node 81 $Pier2 [expr $Floor3-$jOff_col_t]
# nodes at the beam-column conection second floor
node 62 $Pier1 [expr $Floor3+$jOff_col_b]
node 82 $Pier2 [expr $Floor3+$jOff_col_b]
# nodes at the beam-column conection first floor
node 91 $Pier1 [expr $Floor4-$jOff_col_t]
node 121 $Pier2 [expr $Floor4-$jOff_col_t]

# define extra nodes in the beams
# nodes at the beam-column conection floor 2
node 34 [expr $Pier1+$jOff_beam_ex] $Floor2
node 54 [expr $Pier2-$jOff_beam_ex] $Floor2
# nodes at the beam-column conection floor 3
node 64 [expr $Pier1+$jOff_beam_ex] $Floor3
node 84 [expr $Pier2-$jOff_beam_ex] $Floor3



# define extra nodes for rigid links in the braces in ground floor:
if { $GP_Model == "GP" } {
node 13 [expr $Pier1+$jOff_brace_b] [expr $Floor1+$jOff_brace_b]
node 431 [expr $Pier1+$WBay/2.0-$jOff_brace_t] [expr $Floor2-$jOff_brace_t]
node 23 [expr $Pier2-$jOff_brace_b] [expr $Floor1+$jOff_brace_b]
node 432 [expr $Pier2-$WBay/2.0+$jOff_brace_t] [expr $Floor2-$jOff_brace_t]
} else {
node 13 [expr $Pier1+$nOff_brace_b] [expr $Floor1+$nOff_brace_b]
node 431 [expr $Pier1+$WBay/2.0-$nOff_brace_t] [expr $Floor2-$nOff_brace_t]
node 23 [expr $Pier2-$nOff_brace_b] [expr $Floor1+$nOff_brace_b]
node 432 [expr $Pier2-$WBay/2.0+$nOff_brace_t] [expr $Floor2-$nOff_brace_t]
}
# define extra nodes for rigid links in the braces in first floor:
if { $GP_Model == "GP" } {
node 33 [expr $Pier1+$jOff_brace_b] [expr $Floor2+$jOff_brace_b]
node 731 [expr $Pier1+$WBay/2.0-$jOff_brace_t] [expr $Floor3-$jOff_brace_t]
node 53 [expr $Pier2-$jOff_brace_b] [expr $Floor2+$jOff_brace_b]
node 732 [expr $Pier2-$WBay/2.0+$jOff_brace_t] [expr $Floor3-$jOff_brace_t]
} else {
node 33 [expr $Pier1+$nOff_brace_b] [expr $Floor2+$nOff_brace_b]
node 731 [expr $Pier1+$WBay/2.0-$nOff_brace_t] [expr $Floor3-$nOff_brace_t]
node 53 [expr $Pier2-$nOff_brace_b] [expr $Floor2+$nOff_brace_b]
node 732 [expr $Pier2-$WBay/2.0+$nOff_brace_t] [expr $Floor3-$nOff_brace_t]
}
# define extra nodes for rigid links in the braces in second floor:
if { $GP_Model == "GP" } {
node 63 [expr $Pier1+$jOff_brace_b] [expr $Floor3+$jOff_brace_b]
node 1031 [expr $Pier1+$WBay/2.0-$jOff_brace_t] [expr $Floor4-$jOff_brace_t]
node 83 [expr $Pier2-$jOff_brace_b] [expr $Floor3+$jOff_brace_b]
node 1032 [expr $Pier2-$WBay/2.0+$jOff_brace_t] [expr $Floor4-$jOff_brace_t]
} else {
node 63 [expr $Pier1+$nOff_brace_b] [expr $Floor3+$nOff_brace_b]
node 1031 [expr $Pier1+$WBay/2.0-$nOff_brace_t] [expr $Floor4-$nOff_brace_t]
node 83 [expr $Pier2-$nOff_brace_b] [expr $Floor3+$nOff_brace_b]
node 1032 [expr $Pier2-$WBay/2.0+$nOff_brace_t] [expr $Floor4-$nOff_brace_t]
}

# define extra nodes along the braces:
#----------------------------------------------
# nodeID convention: "3acd" where and a = left or right
# "a" convention: 1 = left; 2 = right;
# cd = node numbering for the brace (can be between 1 and 99)

# nodes of the left brace of storey 1
# puts "brace 11"
set orient "pos"
set shift 3100
set Xi [expr $Pier1+$nOff_brace_b]; # x coordinate of node 3101
set Yi [expr $Floor1+$nOff_brace_b]; # y coordinate of node 3101
set eleL [expr $Leff/$noEle]
for { set i 1 } { $i <= [expr $noEle+1] } { incr i} {
#local coordinates
set xm [expr $eleL*($i-1)]
set ym [expr 4.*$p/$Leff*$xm*(1.-$xm/$Leff)];
#global coordinates
if {$orient == "pos"} {
set Xm [expr $Xi+cos($alpha)*$xm-sin($alpha)*$ym];
set Ym [expr $Yi+sin($alpha)*$xm+cos($alpha)*$ym];
} else {
set Xm [expr $Xi-cos($alpha)*$xm-sin($alpha)*$ym];
set Ym [expr $Yi+sin($alpha)*$xm-cos($alpha)*$ym];
}
if { $i == [expr $noEle+1] } {
set Xm [expr $Pier1+$WBay/2.0-$nOff_brace_t]; # x coordinate of the last node
set Ym [expr $Floor2-$nOff_brace_t]; # y coordinate of the last node
}
#define nodes
node [expr $shift+$i] $Xm $Ym
#puts "node: [expr $shift+$i] $Xm $Ym $Zm"
}

# nodes of the right brace of storey 1
# puts "brace 12"
set orient "neg"
set shift 3200
set Xi [expr $Pier2-$nOff_brace_b]; # x coordinate of node 3201
set Yi [expr $Floor1+$nOff_brace_b]; # y coordinate of node 3201
for { set i 1 } { $i <= [expr $noEle+1] } { incr i} {
#local coordinates
set xm [expr $eleL*($i-1)]
set ym [expr 4.*$p/$Leff*$xm*(1.-$xm/$Leff)];
#global coordinates
if {$orient == "pos"} {
set Xm [expr $Xi+cos($alpha)*$xm-sin($alpha)*$ym];
set Ym [expr $Yi+sin($alpha)*$xm+cos($alpha)*$ym];
} else {
set Xm [expr $Xi-cos($alpha)*$xm-sin($alpha)*$ym];
set Ym [expr $Yi+sin($alpha)*$xm-cos($alpha)*$ym];
}
if { $i == [expr $noEle+1] } {
set Xm [expr $Pier2-$WBay/2.0+$nOff_brace_t]; # x coordinate of the last node
set Ym [expr $Floor2-$nOff_brace_t]; # y coordinate of of the last node
}
#define nodes
node [expr $shift+$i] $Xm $Ym
#puts "node: [expr $shift+$i] $Xm $Ym $Zm"
}
# nodes of the left brace of storey 2
# puts "brace 21"
set orient "pos"
set shift 3300
set Xi [expr $Pier1+$nOff_brace_b]; # x coordinate of node 3301
set Yi [expr $Floor2+$nOff_brace_b]; # y coordinate of node 3301
set eleL [expr $Leff/$noEle]
for { set i 1 } { $i <= [expr $noEle+1] } { incr i} {
#local coordinates
set xm [expr $eleL*($i-1)]
set ym [expr 4.*$p/$Leff*$xm*(1.-$xm/$Leff)];
#global coordinates
if {$orient == "pos"} {
set Xm [expr $Xi+cos($alpha)*$xm-sin($alpha)*$ym];
set Ym [expr $Yi+sin($alpha)*$xm+cos($alpha)*$ym];
} else {
set Xm [expr $Xi-cos($alpha)*$xm-sin($alpha)*$ym];
set Ym [expr $Yi+sin($alpha)*$xm-cos($alpha)*$ym];
}
if { $i == [expr $noEle+1] } {
set Xm [expr $Pier1+$WBay/2.0-$nOff_brace_t]; # x coordinate of the last node
set Ym [expr $Floor3-$nOff_brace_t]; # y coordinate of the last node
}
#define nodes
node [expr $shift+$i] $Xm $Ym
#puts "node: [expr $shift+$i] $Xm $Ym $Zm"
}


# nodes of the right brace of storey 2
# puts "brace 22"
set orient "neg"
set shift 3500
set Xi [expr $Pier2-$nOff_brace_b]; # x coordinate of node 3501
set Yi [expr $Floor2+$nOff_brace_b]; # y coordinate of node 3501
for { set i 1 } { $i <= [expr $noEle+1] } { incr i} {
#local coordinates
set xm [expr $eleL*($i-1)]
set ym [expr 4.*$p/$Leff*$xm*(1.-$xm/$Leff)];
#global coordinates
if {$orient == "pos"} {
set Xm [expr $Xi+cos($alpha)*$xm-sin($alpha)*$ym];
set Ym [expr $Yi+sin($alpha)*$xm+cos($alpha)*$ym];
} else {
set Xm [expr $Xi-cos($alpha)*$xm-sin($alpha)*$ym];
set Ym [expr $Yi+sin($alpha)*$xm-cos($alpha)*$ym];
}
if { $i == [expr $noEle+1] } {
set Xm [expr $Pier2-$WBay/2.0+$nOff_brace_t]; # x coordinate of the last node
set Ym [expr $Floor3-$nOff_brace_t]; # y coordinate of of the last node
}
#define nodes
node [expr $shift+$i] $Xm $Ym
#puts "node: [expr $shift+$i] $Xm $Ym $Zm"
}
# nodes of the left brace of storey 3
# puts "brace 31"
set orient "pos"
set shift 3600
set Xi [expr $Pier1+$nOff_brace_b]; # x coordinate of node 3601
set Yi [expr $Floor3+$nOff_brace_b]; # y coordinate of node 3601
set eleL [expr $Leff/$noEle]
for { set i 1 } { $i <= [expr $noEle+1] } { incr i} {
#local coordinates
set xm [expr $eleL*($i-1)]
set ym [expr 4.*$p/$Leff*$xm*(1.-$xm/$Leff)];
#global coordinates
if {$orient == "pos"} {
set Xm [expr $Xi+cos($alpha)*$xm-sin($alpha)*$ym];
set Ym [expr $Yi+sin($alpha)*$xm+cos($alpha)*$ym];
} else {
set Xm [expr $Xi-cos($alpha)*$xm-sin($alpha)*$ym];
set Ym [expr $Yi+sin($alpha)*$xm-cos($alpha)*$ym];
}
if { $i == [expr $noEle+1] } {
set Xm [expr $Pier1+$WBay/2.0-$nOff_brace_t]; # x coordinate of the last node
set Ym [expr $Floor4-$nOff_brace_t]; # y coordinate of the last node
}
#define nodes
node [expr $shift+$i] $Xm $Ym
#puts "node: [expr $shift+$i] $Xm $Ym $Zm"
}

# nodes of the right brace of storey 3
# puts "brace 12"
set orient "neg"
set shift 3800
set Xi [expr $Pier2-$nOff_brace_b]; # x coordinate of node 3801
set Yi [expr $Floor3+$nOff_brace_b]; # y coordinate of node 3801
for { set i 1 } { $i <= [expr $noEle+1] } { incr i} {
#local coordinates
set xm [expr $eleL*($i-1)]
set ym [expr 4.*$p/$Leff*$xm*(1.-$xm/$Leff)];
#global coordinates
if {$orient == "pos"} {
set Xm [expr $Xi+cos($alpha)*$xm-sin($alpha)*$ym];
set Ym [expr $Yi+sin($alpha)*$xm+cos($alpha)*$ym];
} else {
set Xm [expr $Xi-cos($alpha)*$xm-sin($alpha)*$ym];
set Ym [expr $Yi+sin($alpha)*$xm-cos($alpha)*$ym];
}
if { $i == [expr $noEle+1] } {
set Xm [expr $Pier2-$WBay/2.0+$nOff_brace_t]; # x coordinate of the last node
set Ym [expr $Floor4-$nOff_brace_t]; # y coordinate of of the last node
}
#define nodes
node [expr $shift+$i] $Xm $Ym
#puts "node: [expr $shift+$i] $Xm $Ym $Zm"
}

# assign boundary condidtions
#-------------------------------------------------------
# command: fix nodeID dxFixity dyFixity rzFixity
# fixity values: 1 = constrained; 0 = unconstrained

# fix the base of the frame;
fix 1 1 1 1
fix 2 1 1 1

# define constraints for pined beam-to-column connection
equalDOF 922 921 1 2
equalDOF 1222 1221 1 2

# define constraints for zeroLenght elements used to model rotational hinge
if { $GP_Model == "RH" } {
equalDOF 13 3101 1 2
equalDOF 23 3201 1 2
equalDOF 431 [expr 3101+$noEle] 1 2
equalDOF 432 [expr 3201+$noEle] 1 2
equalDOF 33 3301 1 2
equalDOF 53 3501 1 2
equalDOF 731 [expr 3301+$noEle] 1 2
equalDOF 732 [expr 3501+$noEle] 1 2
equalDOF 63 3601 1 2
equalDOF 83 3801 1 2
equalDOF 1031 [expr 3601+$noEle] 1 2
equalDOF 1032 [expr 3801+$noEle] 1 2
}

###################################################################################################
# Define Materials and Sections
###################################################################################################

# define material for nonlinear beams and columns
set matID_BC 1
set matID_fatBC 2
set Es 29000.0; # modulus of elasticity for steel
set Fy 50.0; # yield stress of steel
set b 0.003; # strain hardening ratio
uniaxialMaterial Steel02 $matID_BC $Fy $Es $b 20 0.925 0.15 0.0005 0.01 0.0005 0.01
uniaxialMaterial Fatigue $matID_fatBC $matID_BC


# define material for braces
set matID_Brace 3
set matID_fatBrace 4
set Fy_b 46.0; # yield stress of steel
set E0 0.095
set m -0.5
uniaxialMaterial Steel02 $matID_Brace $Fy_b $Es $b 20 0.925 0.15 0.0005 0.01 0.0005 0.01
uniaxialMaterial Fatigue $matID_fatBrace $matID_Brace -E0 $E0 -m $m -min -1.0 -max 0.04
#uniaxialMaterial Fatigue $matID_fatBrace $matID_Brace -E0 $E0 -m $m

# define material for gusset plates
# GP_Model == GP
set matID_GP 5
set Fy_gp 50.0
uniaxialMaterial Steel02 $matID_GP $Fy_gp $Es $b 20 0.925 0.15 0.0005 0.01 0.0005 0.01
# GP_Model == RH
# rotational hinge (dir 6)
set matID_RHb 11
set matID_RHt 12
set My_b 772.
set My_t 772.
set Krot_b 18045.12
set Krot_t 15571.02
set b 0.01
uniaxialMaterial Steel02 $matID_RHb $My_b $Krot_b $b 20 0.925 0.15 0.0005 0.01 0.0005 0.01
uniaxialMaterial Steel02 $matID_RHt $My_t $Krot_t $b 20 0.925 0.15 0.0005 0.01 0.0005 0.01

# define material for ghost truss
set matID_GT 6
uniaxialMaterial Elastic $matID_GT 100.0

# define material for rigid truss elements
set matID_RT 7
uniaxialMaterial Elastic $matID_RT $Es

# define sections
#-----------------
set secTagC 10
set secTagC1 60
set secTagB 20
set secTagBr 30
set secTagGPb 40
set secTagGPt 50

# command: WSection secID matID d bf tf tw nfdw nftw nfbf nftf
# column: W14x257
WSection $secTagC $matID_fatBC 17.54 16.36 2.47 1.54 8 1 1 4
# column: W14x176
WSection $secTagC1 $matID_fatBC 15.22 15.65 1.31 0.83 8 1 1 4
# beam: W27x114
WSection $secTagB $matID_fatBC 27.29 10.07 0.93 0.57 8 1 1 4



# define sections for braces
# command: HSSsection secID matID d t nfdy nfty nfdz nftz
# HSS10x10x0.625
HSSsection $secTagBr $matID_fatBrace 10 0.625 5 4 5 2


# define sections for gusset plates
# command: GPsection secID matID d t nfd nft
# bottom of the brace
GPsection $secTagGPb $matID_GP 1.375 49. 8 1
# top of the brace
GPsection $secTagGPt $matID_GP 1.375 49. 8 1

###################################################################################################
# Define Geometric Transformation
###################################################################################################
set transfTag_C 1
set transfTag_Brace 2
set transfTag_B 3

# rigid links of columns; columns
geomTransf PDelta $transfTag_C

# braces, gusset plates
geomTransf Corotational $transfTag_Brace

# beams
geomTransf PDelta $transfTag_B

###################################################################################################
# Define Elements
###################################################################################################

set tol 1.e-8
set maxIter 10

# define columns of a braced frame:
#----------------------------------
# eleID convention: "1xy", 1 = column, x=Pier, y=Floor #
# command arguments: $eleID $iNode $jNode $numIntgrPts $secTag $transfTag
element forceBeamColumn 111 11 31 4 $secTagC $transfTag_C -iter $maxIter $tol
element forceBeamColumn 112 32 61 4 $secTagC1 $transfTag_C -iter $maxIter $tol
element forceBeamColumn 113 62 91 4 $secTagC1 $transfTag_C -iter $maxIter $tol
element forceBeamColumn 121 21 51 4 $secTagC $transfTag_C -iter $maxIter $tol
element forceBeamColumn 122 52 81 4 $secTagC1 $transfTag_C -iter $maxIter $tol
element forceBeamColumn 123 82 121 4 $secTagC1 $transfTag_C -iter $maxIter $tol



# define beams of a braced frame:
#--------------------------------
# eleID convention: "2xya", 2 = beam, x=Pier, y=Floor a = location of the beam
# "a" convention: 1 = left end of bay; 2 = right end of bay;
# command arguments: $eleID $iNode $jNode $numIntgrPts $secTag $transfTag
element forceBeamColumn 2121 34 421 3 $secTagB $transfTag_B -iter $maxIter $tol
element forceBeamColumn 2222 422 54 3 $secTagB $transfTag_B -iter $maxIter $tol
element forceBeamColumn 2131 64 721 3 $secTagB $transfTag_B -iter $maxIter $tol
element forceBeamColumn 2232 722 84 3 $secTagB $transfTag_B -iter $maxIter $tol
element forceBeamColumn 2141 922 1021 3 $secTagB $transfTag_B -iter $maxIter $tol
element forceBeamColumn 2242 1022 1222 3 $secTagB $transfTag_B -iter $maxIter $tol

# define braces:
#----------------
# eleID convention: "3acd", 3 = brace, a = location of the brace
# "a" convention: 1 = left brace; 2 = right brace;
# cd = element numbering for the brace (can be between 1 and 99)
# command arguments: $eleID $iNode $jNode $numIntgrPts $secTag $transfTag
set NIP 3

# storey 1 - left brace
set shift 3100
for { set i 1 } { $i <= [expr $noEle] } { incr i} {
element forceBeamColumn [expr $shift+$i] [expr $shift+$i] [expr $shift+$i+1] $NIP $secTagBr $transfTag_Brace -iter $maxIter $tol
}

# storey 1 - right brace
set shift 3200
for { set i 1 } { $i <= [expr $noEle] } { incr i} {
element forceBeamColumn [expr $shift+$i] [expr $shift+$i] [expr $shift+$i+1] $NIP $secTagBr $transfTag_Brace -iter $maxIter $tol
}
# storey 2 - left brace
set shift 3300
for { set i 1 } { $i <= [expr $noEle] } { incr i} {
element forceBeamColumn [expr $shift+$i] [expr $shift+$i] [expr $shift+$i+1] $NIP $secTagBr $transfTag_Brace -iter $maxIter $tol
}

# storey 2 - right brace
set shift 3500
for { set i 1 } { $i <= [expr $noEle] } { incr i} {
element forceBeamColumn [expr $shift+$i] [expr $shift+$i] [expr $shift+$i+1] $NIP $secTagBr $transfTag_Brace -iter $maxIter $tol
}
# storey 3 - left brace
set shift 3600
for { set i 1 } { $i <= [expr $noEle] } { incr i} {
element forceBeamColumn [expr $shift+$i] [expr $shift+$i] [expr $shift+$i+1] $NIP $secTagBr $transfTag_Brace -iter $maxIter $tol
}

# storey 3 - right brace
set shift 3800
for { set i 1 } { $i <= [expr $noEle] } { incr i} {
element forceBeamColumn [expr $shift+$i] [expr $shift+$i] [expr $shift+$i+1] $NIP $secTagBr $transfTag_Brace -iter $maxIter $tol
}

# define gusset plates:
#----------------------
# define gusset plates for first storey
if { $GP_Model == "GP" } {
# eleID convention: "4xyab", 4 = gusset plate, a, b = location of the gusset plate
# x=Pier, y=Floor
# "a" convention: 1 = left brace; 2 = right brace;
# "b" convention: 1 = bottom; 2 = top
# command arguments: $eleID $iNode $jNode $numIntgrPts $secTag $transfTag
set NIP 2
# left brace
set shift 3100
element forceBeamColumn 41111 13 [expr $shift+1] $NIP $secTagGPb $transfTag_Brace
element forceBeamColumn 41212 [expr $shift+$noEle+1] 431 $NIP $secTagGPt $transfTag_Brace
# right brace
set shift 3200
element forceBeamColumn 42121 23 [expr $shift+1] $NIP $secTagGPb $transfTag_Brace
element forceBeamColumn 42222 [expr $shift+$noEle+1] 432 $NIP $secTagGPt $transfTag_Brace
} else {
# command arguemnts: $eleTag $iNode $jNode -mat $matTag1 $matTag2 ... -dir $dir1 $dir2
# left brace
set shift 3100
element zeroLength 41111 13 [expr $shift+1] -mat $matID_RHb -dir 6
element zeroLength 41212 [expr $shift+$noEle+1] 431 -mat $matID_RHt -dir 6
# right brace
set shift 3200
element zeroLength 42121 23 [expr $shift+1] -mat $matID_RHb -dir 6
element zeroLength 42222 [expr $shift+$noEle+1] 432 -mat $matID_RHt -dir 6
}
# define gusset plates for second storey
if { $GP_Model == "GP" } {
# eleID convention: "4xyab", 4 = gusset plate, a, b = location of the gusset plate
# x=Pier, y=Floor
# "a" convention: 1 = left brace; 2 = right brace;
# "b" convention: 1 = bottom; 2 = top
# command arguments: $eleID $iNode $jNode $numIntgrPts $secTag $transfTag
set NIP 2
# left brace
set shift 3300
element forceBeamColumn 41211 33 [expr $shift+1] $NIP $secTagGPb $transfTag_Brace
element forceBeamColumn 41312 [expr $shift+$noEle+1] 731 $NIP $secTagGPt $transfTag_Brace
# right brace
set shift 3500
element forceBeamColumn 42221 53 [expr $shift+1] $NIP $secTagGPb $transfTag_Brace
element forceBeamColumn 42322 [expr $shift+$noEle+1] 732 $NIP $secTagGPt $transfTag_Brace
} else {
# command arguemnts: $eleTag $iNode $jNode -mat $matTag1 $matTag2 ... -dir $dir1 $dir2
# left brace
set shift 3300
element zeroLength 41211 33 [expr $shift+1] -mat $matID_RHb -dir 6
element zeroLength 41312 [expr $shift+$noEle+1] 731 -mat $matID_RHt -dir 6
# right brace
set shift 3500
element zeroLength 42221 53 [expr $shift+1] -mat $matID_RHb -dir 6
element zeroLength 42322 [expr $shift+$noEle+1] 732 -mat $matID_RHt -dir 6
}
# define gusset plates for third storey
if { $GP_Model == "GP" } {
# eleID convention: "4xyab", 4 = gusset plate, a, b = location of the gusset plate
# x=Pier, y=Floor
# "a" convention: 1 = left brace; 2 = right brace;
# "b" convention: 1 = bottom; 2 = top
# command arguments: $eleID $iNode $jNode $numIntgrPts $secTag $transfTag
set NIP 2
# left brace
set shift 3600
element forceBeamColumn 41311 63 [expr $shift+1] $NIP $secTagGPb $transfTag_Brace
element forceBeamColumn 41412 [expr $shift+$noEle+1] 1031 $NIP $secTagGPt $transfTag_Brace
# right brace
set shift 3800
element forceBeamColumn 42321 83 [expr $shift+1] $NIP $secTagGPb $transfTag_Brace
element forceBeamColumn 42422 [expr $shift+$noEle+1] 1032 $NIP $secTagGPt $transfTag_Brace
} else {
# command arguemnts: $eleTag $iNode $jNode -mat $matTag1 $matTag2 ... -dir $dir1 $dir2
# left brace
set shift 3600
element zeroLength 41311 63 [expr $shift+1] -mat $matID_RHb -dir 6
element zeroLength 41412 [expr $shift+$noEle+1] 1031 -mat $matID_RHt -dir 6
# right brace
set shift 3800
element zeroLength 42321 83 [expr $shift+1] -mat $matID_RHb -dir 6
element zeroLength 42422 [expr $shift+$noEle+1] 1032 -mat $matID_RHt -dir 6
}
# define rigid links:
#-----------------------
set Jrigid 1.0e4
set G [expr $Es/2.0/(1+0.3)]

#braces
#-----------
set Arigid [expr 25.7*10.]; # area of the brace multiplied by 10
set Irigid [expr 548.*10]; # I of the brace multiplied by 10
# eleID convention: "5xya", 5 = rigid link for braces, a = location of the rigid link
# x=Pier, y=Floor
# "a" convention: 1 = left-botom; 2 = left-top; 3 = right-bottom; 4 = right-top;
# define rigid links for first storey
# comand arguemnts: $eleTag $iNode $jNode $A $E $Iy $transfTag
element elasticBeamColumn 5111 1 13 $Arigid $Es $Irigid $transfTag_Brace
element elasticBeamColumn 5122 431 4 $Arigid $Es $Irigid $transfTag_Brace
element elasticBeamColumn 5213 2 23 $Arigid $Es $Irigid $transfTag_Brace
element elasticBeamColumn 5224 432 4 $Arigid $Es $Irigid $transfTag_Brace
# define rigid links for second storey
# comand arguemnts: $eleTag $iNode $jNode $A $E $Iy $transfTag
element elasticBeamColumn 5121 3 33 $Arigid $Es $Irigid $transfTag_Brace
element elasticBeamColumn 5132 731 7 $Arigid $Es $Irigid $transfTag_Brace
element elasticBeamColumn 5223 5 53 $Arigid $Es $Irigid $transfTag_Brace
element elasticBeamColumn 5234 732 7 $Arigid $Es $Irigid $transfTag_Brace
# define rigid links for third storey
# comand arguemnts: $eleTag $iNode $jNode $A $E $Iy $transfTag
element elasticBeamColumn 5131 6 63 $Arigid $Es $Irigid $transfTag_Brace
element elasticBeamColumn 5142 1031 10 $Arigid $Es $Irigid $transfTag_Brace
element elasticBeamColumn 5233 8 83 $Arigid $Es $Irigid $transfTag_Brace
element elasticBeamColumn 5244 1032 10 $Arigid $Es $Irigid $transfTag_Brace

#beams
#-----------
set Arigid [expr 24.7*10.]; # area of the beam multiplied by 10
set IrigidZ [expr 2850.*10]; # Iz of the beam multiplied by 10
set IrigidY [expr 106.*10]; # Iy of the beam multiplied by 10

# eleID convention: "6xya", 6 = rigid link of beams, , a = location of the rigid link
# "a" convention: 1 = left; 2 = right; 3 = left-middle; 4 = right-middle;
# x=Pier, y=Floor
# define rigid links for second floor
# comand arguemnts: $eleTag $iNode $jNode $A $E $Iz $transfTag
element elasticBeamColumn 6121 3 34 $Arigid $Es $IrigidZ $transfTag_B
element elasticBeamColumn 6222 54 5 $Arigid $Es $IrigidZ $transfTag_B
element elasticBeamColumn 6123 421 4 $Arigid $Es $IrigidZ $transfTag_B
element elasticBeamColumn 6224 4 422 $Arigid $Es $IrigidZ $transfTag_B
# define rigid links for third floor
# comand arguemnts: $eleTag $iNode $jNode $A $E $Iz $transfTag
element elasticBeamColumn 6131 6 64 $Arigid $Es $IrigidZ $transfTag_B
element elasticBeamColumn 6232 84 8 $Arigid $Es $IrigidZ $transfTag_B
element elasticBeamColumn 6133 721 7 $Arigid $Es $IrigidZ $transfTag_B
element elasticBeamColumn 6234 7 722 $Arigid $Es $IrigidZ $transfTag_B
# define rigid links for fourth floor
# comand arguemnts: $eleTag $iNode $jNode $A $E $Iz $transfTag
element elasticBeamColumn 6141 9 921 $Arigid $Es $IrigidZ $transfTag_B
element elasticBeamColumn 6242 1221 12 $Arigid $Es $IrigidZ $transfTag_B
element elasticBeamColumn 6143 1021 10 $Arigid $Es $IrigidZ $transfTag_B
element elasticBeamColumn 6244 10 1022 $Arigid $Es $IrigidZ $transfTag_B

#columns
#-----------
set Arigid [expr 51.8*10.]; # area of the column multiplied by 10
set IrigidZ [expr 2140.*10]; # Iz of the column multiplied by 10
set IrigidY [expr 838.*10]; # Iy of the column multiplied by 10

# eleID convention: "7xya", 7 = rigid link of columns, x = pier, y = floor #, a = location of the rigid link
# "a" convention: 1 = botom; 2 = top;
# define rigid links for first storey
# comand arguemnts: $eleTag $iNode $jNode $A $E $Iz $transfTag
element elasticBeamColumn 7111 1 11 $Arigid $Es $IrigidZ $transfTag_C
element elasticBeamColumn 7122 31 3 $Arigid $Es $IrigidZ $transfTag_C
element elasticBeamColumn 7211 2 21 $Arigid $Es $IrigidZ $transfTag_C
element elasticBeamColumn 7222 51 5 $Arigid $Es $IrigidZ $transfTag_C
# define rigid links for second storey
# comand arguemnts: $eleTag $iNode $jNode $A $E $Iz $transfTag
element elasticBeamColumn 7121 3 32 $Arigid $Es $IrigidZ $transfTag_C
element elasticBeamColumn 7132 61 6 $Arigid $Es $IrigidZ $transfTag_C
element elasticBeamColumn 7221 5 52 $Arigid $Es $IrigidZ $transfTag_C
element elasticBeamColumn 7232 81 8 $Arigid $Es $IrigidZ $transfTag_C
# define rigid links for third storey
# comand arguemnts: $eleTag $iNode $jNode $A $E $Iz $transfTag
element elasticBeamColumn 7131 6 62 $Arigid $Es $IrigidZ $transfTag_C
element elasticBeamColumn 7142 91 9 $Arigid $Es $IrigidZ $transfTag_C
element elasticBeamColumn 7231 8 82 $Arigid $Es $IrigidZ $transfTag_C
element elasticBeamColumn 7242 121 12 $Arigid $Es $IrigidZ $transfTag_C

# ghost trusses to the braces (with very small stiffness) to diminish convergence problems
# eleID convention: "8xya", 8 = ghost truss to braces, x = pier, y = floor #, a = location of the rigid link
# "a" convention: 1 = left; 2 = right;
#------------------------------
set Agt 0.05; #truss area
# braces
# define ghost trusses for first storey
element corotTruss 8111 3101 [expr 3101+$noEle] $Agt $matID_GT
element corotTruss 8212 3201 [expr 3201+$noEle] $Agt $matID_GT
# define ghost trusses for second storey
element corotTruss 8121 3301 [expr 3301+$noEle] $Agt $matID_GT
element corotTruss 8222 3501 [expr 3501+$noEle] $Agt $matID_GT
# define ghost trusses for third storey
element corotTruss 8131 3601 [expr 3601+$noEle] $Agt $matID_GT
element corotTruss 8232 3801 [expr 3801+$noEle] $Agt $matID_GT

# add rigid truss elemnts to assure that the beam nodes move horizontaly together
#--------------------------------------------------------------------------------
set ArigidT 1000.0; # define area of truss section (make much larger than A of frame elements)
# eleID convention: "9xya", 9 = truss to beam, x = pier, y = floor #, a = location of the rigid link
# "a" convention: 1 = left; 2 = right;
# define trusses for second floor
# command: element truss $eleID $iNode $jNode $A $materialID
element truss 9121 3 4 $ArigidT $matID_RT;
element truss 9222 4 5 $ArigidT $matID_RT;
# define trusses for second floor
# command: element truss $eleID $iNode $jNode $A $materialID
element truss 9131 6 7 $ArigidT $matID_RT;
element truss 9232 7 8 $ArigidT $matID_RT;
# define trusses for third floor
# command: element truss $eleID $iNode $jNode $A $materialID
element truss 9141 9 10 $ArigidT $matID_RT;
element truss 9242 10 12 $ArigidT $matID_RT;

############################################
# Display the model
############################################
recorder display "Model" 10 10 500 500 -wipe
prp 0 0 50
vup 0 1 0
vpn 0 0 1
display 1 2 10

############################################################################
# Gravity Loads & Gravity Analysis
############################################################################

pattern Plain 101 Linear {

# distributed loads
#eleLoad -ele $eleTag1 <$eleTag2 ....> -type -beamUniform $Wz <$Wx>
set MgF [expr $WBay/($WBay-2.*$jOff_beam_m-2.*$jOff_beam_e)]; # magnifying factor to accont for the load that can not be applied on the rigid portions of elements
set dl_F2 [expr -0.11238*$MgF]; # distributed load at Floor

# Floor 2 loads
eleLoad -ele 2121 2222 -type -beamUniform $dl_F2
# Floor 3 loads
eleLoad -ele 2131 2232 -type -beamUniform $dl_F2
# Floor 4 loads
eleLoad -ele 2141 2242 -type -beamUniform $dl_F2

}
set ViewScale 5;
#DisplayModel3D DeformedShape $ViewScale ; # display deformed shape, the scaling factor needs to be adjusted for each model

# Gravity-analysis: load-controlled static analysis
set Tol 1.0e-6; # convergence tolerance for test
constraints Plain; # how it handles boundary conditions
#constraints Penalty 1.0e15 1.0e15;
numberer RCM; # renumber dof's to minimize band-width (optimization)
system BandGeneral; # how to store and solve the system of equations in the analysis (large model: try UmfPack)
test NormDispIncr $Tol 10; # determine if convergence has been achieved at the end of an iteration step
algorithm Newton ; # use Newton's solution algorithm: updates tangent stiffness at every iteration
set NstepGravity 10; # apply gravity in 10 steps
set DGravity [expr 1.0/$NstepGravity]; # load increment
integrator LoadControl $DGravity; # determine the next time step for an analysis
analysis Static; # define type of analysis static or transient
analyze $NstepGravity; # apply gravity

# maintain constant gravity loads and reset time to zero
loadConst -time 0.0
puts "Model Built"

############################################################################
# Eigenvalue Analysis
############################################################################
set pi [expr 2.0*asin(1.0)]; # Definition of pi
set nEigenI 1; # mode i = 1
set nEigenJ 3; # mode j = 2
set lambdaN [eigen [expr $nEigenJ]]; # eigenvalue analysis for nEigenJ modes
set lambdaI [lindex $lambdaN [expr 0]]; # eigenvalue mode i = 1
set lambdaJ [lindex $lambdaN [expr $nEigenJ-2]]; # eigenvalue mode j = 2
set w1 [expr pow($lambdaI,0.5)]; # w1 (1st mode circular frequency)
set w2 [expr pow($lambdaJ,0.5)]; # w2 (2nd mode circular frequency)
set T1 [expr 2.0*$pi/$w1]; # 1st mode period of the structure
set T2 [expr 2.0*$pi/$w2]; # 2nd mode period of the structure
puts "T1 = $T1 s"; # display the first mode period in the command window
puts "T2 = $T2 s"; # display the second mode period in the command window

# # Display the first two mode shapes
# #--------------------------------------------
# recorder display "Mode 1" 10 10 500 500 -wipe
# prp 0 0 50
# vup 0 1 0
# vpn 0 0 1
# display -1 2 50

# recorder display "Mode 2" 10 520 500 500 -wipe
# prp 0 0 50
# vup 0 1 0
# vpn 0 0 1
# display -2 2 20

############################################################################
# Pushover Analysis #
############################################################################
if {$analysisType == "pushover"} {
puts "Running Pushover..."
# assign lateral loads and create load pattern: use ASCE 7-10 distribution

pattern Plain 200 Linear {
load 3 0.5 0.0 0.0 ;
load 5 0.5 0.0 0.0 ;
}

# recorde disp at node 3 and reactions at the bottom nodels
recorder Node -file "$dataDir/node3D.out" -time -node 3 -dof 1 disp
recorder Node -file "$dataDir/reactions.out" -time -node 1 2 -dof 1 reaction

# displacement parameters
set IDctrlNode 3; # node where disp is read for disp control
set IDctrlDOF 1; # degree of freedom read for disp control (1 = x displacement)
set Dmax [expr 0.01*HBuilding]; # maximum displacement of pushover
set Dincr [expr $Dmax/1000.]; # displacement increment

# pushover analysis commands
constraints Plain;
numberer RCM;
system BandGeneral;
test NormUnbalance 1.0e-6 10;
algorithm Newton;
integrator DisplacementControl $IDctrlNode $IDctrlDOF $Dincr;
analysis Static;
set ok 0
set currentDisp 0.0
while {$ok == 0 && $currentDisp < $Dmax} {
set ok [analyze 1]
if {$ok != 0} {
test NormDispIncr 1.0e-6 1000 1
algorithm Newton –initial
set ok [analyze 1]
test NormDispIncr 1.0e-6 10
algorithm Newton
}
set currentDisp [nodeDisp $IDctrlNode 1]
}

puts "node3disp: [nodeDisp 3 1], node4disp: [nodeDisp 4 1], node5disp: [nodeDisp 5 1]"
puts "TargetDisp: $Dmax"
}

############################################################################
# Transient Analysis #
############################################################################
if {$analysisType == "dynamic"} {
puts "Running Transient analysis..."
# record drift histories
# drift recorder command: recorder Drift -file $filename -iNode $NodeI_ID -jNode $NodeJ_ID -dof $dof -perpDirn $Record.drift.perpendicular.to.this.direction
recorder Drift -file "$dataDir/$subDir1/Drift.out" -iNode 1 -jNode 3 -dof 1 -perpDirn 2;
# record forces and deformations of columns
recorder Element -xml "$dataDir/$subDir2/Column_Force.out" -time -ele 11 12 force
recorder Element -xml "$dataDir/$subDir2/Column_basDef.out" -time -ele 11 12 basicDeformation
# record forces and deformations of beams
recorder Element -xml "$dataDir/$subDir2/Beam_Force.out" -time -ele 21 22 force
recorder Element -xml "$dataDir/$subDir2/Beam_basDef.out" -time -ele 21 22 basicDeformation
# record reactions
recorder Node -xml "$dataDir/$subDir2/Reaction.out" -time -node 1 2 -dof 1 2 3 reaction
# record nodal displacements
recorder Node -xml "$dataDir/$subDir2/dispT.out" -time -node 3 4 5 -dof 1 2 3 disp
# record displacements at the middle nodes of braces
set lst [list [expr 3100+$noEle/2+1] [expr 3200+$noEle/2+1]]
eval recorder Node -xml "$dataDir/$subDir2/Braces_MN_Disp.out" -time -node $lst -dof 1 2 3 disp
# record section forces and deformation at the middle of the braces
eval recorder Element -xml "$dataDir/$subDir2/Brace_MN_ForceDeformation.out" -time -ele $lst section 1 forceAndDeformation
# record stress-strain of the outer most fiber at the section at the middle of the element
eval recorder Element -xml "$dataDir/$subDir2/Brace_MN_StressStrain37.out" -time -ele $lst section 1 fiber 37 stressStrain
eval recorder Element -xml "$dataDir/$subDir2/Brace_MN_StressStrain55.out" -time -ele $lst section 1 fiber 55 stressStrain
# record basic deformations of the middle brace element
eval recorder Element -xml "$dataDir/$subDir2/Brace_MN_BasicDef.out" -time -ele $lst basicDeformation

source Dynamic.EQ.tcl
}
}

wipe



This code is for 1 Bay 3 Story special concentrically braced frame. When i running this code , it shows lot of error. " FatigueMaterial: material tag 4 failed from excessive strain" is major error . I am using inverted V bracing in all stories. Please help me to rectify this error.

selimgunay
Posts: 883
Joined: Mon Sep 09, 2013 8:50 pm
Location: University of California, Berkeley

Re: Specially concentrated braced frame

Post by selimgunay » Mon Sep 21, 2020 11:05 pm

uniaxialMaterial Fatigue $matID_fatBrace $matID_Brace -E0 $E0 -m $m -min -1.0 -max 0.04

You may need to increase the max value

SHAIJALKM
Posts: 3
Joined: Wed Sep 16, 2020 8:46 pm

Re: Specially concentrated braced frame

Post by SHAIJALKM » Tue Sep 22, 2020 7:31 am

selimgunay wrote:
Mon Sep 21, 2020 11:05 pm
uniaxialMaterial Fatigue $matID_fatBrace $matID_Brace -E0 $E0 -m $m -min -1.0 -max 0.04

You may need to increase the max value
i changed this code to " uniaxialMaterial Fatigue $matID_fatBrace $matID_Brace -E0 $E0 -m $m -min -1.0 -max 1.0 ".Then it shows "FatigueMaterial: material tag 4 failed at pseudo peak" and "FatigueMaterial: material tag 4 failed from excessive strain".
Thanks for your reply sir

Post Reply