Pushover Analysis
Moderators: silvia, selimgunay, Moderators
Pushover Analysis
This file was develop by DR. Mackie. I am trying to perform a pushover analysis but this file do not provide an output file. Could you please tell me what is wrong with it?
I will appreciate any help.
Thanks
ModelS.tcl: generic input shell for use with all models
# Units: kip, in
# Kevin Mackie, 2001/02/01
# mackie@ce.berkeley.edu
#
# Takes ground motion and structural input parameters from higher
# level procedure and outputs data to files for computation of UCSD
# output quantities. Performs static pushovers only.
proc ModelS {param_group skew L LoH fy fc rho_s DcDs ksoil wt rhos_trans deck abut ida} {
wipe
set gap_in 6
set g 386.4
set pi [expr acos(1.0)]
set fstub [format "st%04i" $param_group]
# 
# Perform the pushover analysis for yield condition data
# Transverse Direction only
# 
# Modes
source Generatebridge
Generatebridge $skew $L $LoH $fy $fc $rho_s $DcDs $ksoil $wt $rhos_trans $deck $gap_in $abut
set eigenvalues [eigen 3]
set omega1 [expr 2*$pi/sqrt([lindex $eigenvalues 0])]
set omega2 [expr 2*$pi/sqrt([lindex $eigenvalues 1])]
set omega3 [expr 2*$pi/sqrt([lindex $eigenvalues 2])]
recorder Node [format "%smode1.out" $fstub] "eigen 1" node 3 8 13 dof 2
recorder Node [format "%smode2.out" $fstub] "eigen 2" node 3 8 13 dof 2
recorder Node [format "%smode3.out" $fstub] "eigen 3" node 3 8 13 dof 2
# Run a one step gravity load with no loading.
test EnergyIncr 1e9 15 0
algorithm Newton
system SparseGeneral
integrator LoadControl 1 1 .0000001 1
numberer Plain
constraints Transformation
analysis Static
analyze 1
set efile [open [format "%smode2.out" $fstub] "r"]
set linef [gets $efile]
scan $linef "%e %e %e" ph1 ph2 ph3
close $efile
if { [expr abs($ph1+$ph2+$ph3)] < 1e4 } {
puts "WARNING: transverse mode not found in 2nd mode"
}
set mwt1 [expr $ph1*$L/2.0]
set mwt2 [expr $ph2*($L+$L)/2.0]
set mwt3 [expr $ph3*$L/2.0]
set tf [expr ( abs($mwt1)+abs($mwt2)+abs($mwt3) )]
set val1 [expr $mwt1/$tf]
set val2 [expr $mwt2/$tf]
set val3 [expr $mwt3/$tf]
puts "$ph1 $ph2 $ph3"
puts "$val1 $val2 $val3"
set efile [open "eigenvals.out" "w"]
puts $efile "$omega1 $omega2 $omega3"
puts $efile "$val1 $val2 $val3"
close $efile
wipe
puts "Done eigen analysis..."
# 
# Moment curvature
source GenerateSection.tcl
GenerateSection $skew $L $LoH $fy $fc $rho_s $DcDs $ksoil $wt $rhos_trans
set mkfile [open "mk_info" "r"]
source MK.tcl
while {1 != [gets $mkfile line] } {
scan $line "%i %f" tagn axial
MK $tagn $axial
}
wipe
puts "Done Momentcurvature analysis..."
# 
# Pushover
source Generatebridge.tcl
generatebridge $skew $L $LoH $fy $fc $rho_s $DcDs $ksoil $wt $rhos_trans $deck $gap_in $abut
# Record top of column
recorder Node [format "%snd082.out" $fstub] disp load node 8 dof 2
# Record deck movement at abutments
recorder Node [format "%snd031.out" $fstub] disp load node 3 dof 1 2 3
recorder Node [format "%snd131.out" $fstub] disp load node 13 dof 1 2 3
# Record abutment transverse forces
recorder Element 44 file [format "%sef442.out" $fstub] forces
recorder Element 47 file [format "%sef472.out" $fstub] forces
# Record first pile shaft shear
recorder Element 60 file [format "%sef601.out" $fstub] forces
recorder Element 62 file [format "%sef621.out" $fstub] forces
recorder Element 64 file [format "%sef641.out" $fstub] forces
recorder Element 66 file [format "%sef661.out" $fstub] forces
recorder Element 68 file [format "%sef681.out" $fstub] forces
recorder Element 70 file [format "%sef701.out" $fstub] forces
recorder Element 72 file [format "%sef721.out" $fstub] forces
# Use same integrator, test, algorithms, etc as longitudinal
# init Jd min max
integrator LoadControl 0 1 0 0
# tolerance maxIter displayCode
test EnergyIncr 1.0e12 15 0
algorithm Newton
numberer RCM
constraints Plain
system BandGeneral
analysis Static
analyze 1
# 1 for Chopra
#set pushover 1
# 0 for Fajfar
set pushover 0
if { $pushover == 1 } {
# Reference lateral loads
pattern Plain 5 Linear {
# node FX FY FZ MX MY MZ
load 3 0.0 $val1 0.0 0.0 0.0 0.0
load 8 0.0 $val2 0.0 0.0 0.0 0.0
load 13 0.0 $val3 0.0 0.0 0.0 0.0
}
} else {
pattern Plain 5 Linear {
# node FX FY FZ MX MY MZ
load 3 0.0 0.333 0.0 0.0 0.0 0.0
load 8 0.0 0.333 0.0 0.0 0.0 0.0
load 13 0.0 0.333 0.0 0.0 0.0 0.0
}
}
# Load control with variable load steps
# init Jd min max
integrator LoadControl 20.0 3 10.0 20.0
# continue up linear path with load control
analysis Static
analyze 1
# change integrator for displacement monitoring
# dlam1 Jd minLam maxLam
# node dof dU1 Jd minLam maxLam
integrator DisplacementControl 8 2 1.0 1 1.0 20.0
# Perform the pushover analysis under dynamic monitoring of failure
set static_slope 1000
set static_cnt 1
# while { $static_slope > 0.1 && $static_cnt < 900 } {}
while { $static_slope > 0.1 && $static_cnt < 22 } {
set res [analyze 1]
if {$res < 0} {
puts "Pushover analysis failed\n"
set static_slope 10;
}
incr static_cnt
}
puts "Finished transverse pushover analysis..."
wipe
# end of transverse static pushover analysis
# 
#set fstub [format "st%04i" $param_group]
#file delete [format "%snd031.out" $fstub]
#file delete [format "%snd131.out" $fstub]
#file delete [format "%snd082.out" $fstub]
}
I will appreciate any help.
Thanks
ModelS.tcl: generic input shell for use with all models
# Units: kip, in
# Kevin Mackie, 2001/02/01
# mackie@ce.berkeley.edu
#
# Takes ground motion and structural input parameters from higher
# level procedure and outputs data to files for computation of UCSD
# output quantities. Performs static pushovers only.
proc ModelS {param_group skew L LoH fy fc rho_s DcDs ksoil wt rhos_trans deck abut ida} {
wipe
set gap_in 6
set g 386.4
set pi [expr acos(1.0)]
set fstub [format "st%04i" $param_group]
# 
# Perform the pushover analysis for yield condition data
# Transverse Direction only
# 
# Modes
source Generatebridge
Generatebridge $skew $L $LoH $fy $fc $rho_s $DcDs $ksoil $wt $rhos_trans $deck $gap_in $abut
set eigenvalues [eigen 3]
set omega1 [expr 2*$pi/sqrt([lindex $eigenvalues 0])]
set omega2 [expr 2*$pi/sqrt([lindex $eigenvalues 1])]
set omega3 [expr 2*$pi/sqrt([lindex $eigenvalues 2])]
recorder Node [format "%smode1.out" $fstub] "eigen 1" node 3 8 13 dof 2
recorder Node [format "%smode2.out" $fstub] "eigen 2" node 3 8 13 dof 2
recorder Node [format "%smode3.out" $fstub] "eigen 3" node 3 8 13 dof 2
# Run a one step gravity load with no loading.
test EnergyIncr 1e9 15 0
algorithm Newton
system SparseGeneral
integrator LoadControl 1 1 .0000001 1
numberer Plain
constraints Transformation
analysis Static
analyze 1
set efile [open [format "%smode2.out" $fstub] "r"]
set linef [gets $efile]
scan $linef "%e %e %e" ph1 ph2 ph3
close $efile
if { [expr abs($ph1+$ph2+$ph3)] < 1e4 } {
puts "WARNING: transverse mode not found in 2nd mode"
}
set mwt1 [expr $ph1*$L/2.0]
set mwt2 [expr $ph2*($L+$L)/2.0]
set mwt3 [expr $ph3*$L/2.0]
set tf [expr ( abs($mwt1)+abs($mwt2)+abs($mwt3) )]
set val1 [expr $mwt1/$tf]
set val2 [expr $mwt2/$tf]
set val3 [expr $mwt3/$tf]
puts "$ph1 $ph2 $ph3"
puts "$val1 $val2 $val3"
set efile [open "eigenvals.out" "w"]
puts $efile "$omega1 $omega2 $omega3"
puts $efile "$val1 $val2 $val3"
close $efile
wipe
puts "Done eigen analysis..."
# 
# Moment curvature
source GenerateSection.tcl
GenerateSection $skew $L $LoH $fy $fc $rho_s $DcDs $ksoil $wt $rhos_trans
set mkfile [open "mk_info" "r"]
source MK.tcl
while {1 != [gets $mkfile line] } {
scan $line "%i %f" tagn axial
MK $tagn $axial
}
wipe
puts "Done Momentcurvature analysis..."
# 
# Pushover
source Generatebridge.tcl
generatebridge $skew $L $LoH $fy $fc $rho_s $DcDs $ksoil $wt $rhos_trans $deck $gap_in $abut
# Record top of column
recorder Node [format "%snd082.out" $fstub] disp load node 8 dof 2
# Record deck movement at abutments
recorder Node [format "%snd031.out" $fstub] disp load node 3 dof 1 2 3
recorder Node [format "%snd131.out" $fstub] disp load node 13 dof 1 2 3
# Record abutment transverse forces
recorder Element 44 file [format "%sef442.out" $fstub] forces
recorder Element 47 file [format "%sef472.out" $fstub] forces
# Record first pile shaft shear
recorder Element 60 file [format "%sef601.out" $fstub] forces
recorder Element 62 file [format "%sef621.out" $fstub] forces
recorder Element 64 file [format "%sef641.out" $fstub] forces
recorder Element 66 file [format "%sef661.out" $fstub] forces
recorder Element 68 file [format "%sef681.out" $fstub] forces
recorder Element 70 file [format "%sef701.out" $fstub] forces
recorder Element 72 file [format "%sef721.out" $fstub] forces
# Use same integrator, test, algorithms, etc as longitudinal
# init Jd min max
integrator LoadControl 0 1 0 0
# tolerance maxIter displayCode
test EnergyIncr 1.0e12 15 0
algorithm Newton
numberer RCM
constraints Plain
system BandGeneral
analysis Static
analyze 1
# 1 for Chopra
#set pushover 1
# 0 for Fajfar
set pushover 0
if { $pushover == 1 } {
# Reference lateral loads
pattern Plain 5 Linear {
# node FX FY FZ MX MY MZ
load 3 0.0 $val1 0.0 0.0 0.0 0.0
load 8 0.0 $val2 0.0 0.0 0.0 0.0
load 13 0.0 $val3 0.0 0.0 0.0 0.0
}
} else {
pattern Plain 5 Linear {
# node FX FY FZ MX MY MZ
load 3 0.0 0.333 0.0 0.0 0.0 0.0
load 8 0.0 0.333 0.0 0.0 0.0 0.0
load 13 0.0 0.333 0.0 0.0 0.0 0.0
}
}
# Load control with variable load steps
# init Jd min max
integrator LoadControl 20.0 3 10.0 20.0
# continue up linear path with load control
analysis Static
analyze 1
# change integrator for displacement monitoring
# dlam1 Jd minLam maxLam
# node dof dU1 Jd minLam maxLam
integrator DisplacementControl 8 2 1.0 1 1.0 20.0
# Perform the pushover analysis under dynamic monitoring of failure
set static_slope 1000
set static_cnt 1
# while { $static_slope > 0.1 && $static_cnt < 900 } {}
while { $static_slope > 0.1 && $static_cnt < 22 } {
set res [analyze 1]
if {$res < 0} {
puts "Pushover analysis failed\n"
set static_slope 10;
}
incr static_cnt
}
puts "Finished transverse pushover analysis..."
wipe
# end of transverse static pushover analysis
# 
#set fstub [format "st%04i" $param_group]
#file delete [format "%snd031.out" $fstub]
#file delete [format "%snd131.out" $fstub]
#file delete [format "%snd082.out" $fstub]
}

 Posts: 1
 Joined: Tue Sep 20, 2016 12:48 am
Re: Pushover Analysis
Great news you shared. I am a freelance writer and working in the educational field. Students are in a great need of writing help for making a best dissertation paper or for completing their academic papers. I am a freelance writer at dissertation writing service.
Re: Pushover Analysis
What is important in pushover analysis is defining the beam backbone curve for hinge zone. If you define it correctly then most of the work is done. Then you just have to apply forces and get displacements and plot the force vs displacement curve.
Re: Pushover Analysis
Thank you very much. It really helped me.

 Posts: 1
 Joined: Sun Aug 30, 2020 11:44 pm
 Contact:
Re: Pushover Analysis
A very helpful article for me. Thanks!
Read the Latest News On Business, Health, Sports, Entertainment & Much More From Around The World At Newscrable.com

 Posts: 1
 Joined: Mon Sep 14, 2020 8:05 pm
 Contact:
Re: Pushover Analysis
Thanks for sharing and say thanks to DR. Mackie.
The main purpose of the NSP is to present Streamlining, Automation & Effective Management of activity related to Application processing, sanction, and disbursal of centrally sponsored NSP schemes to students.
How to Get Dealership
NSP
How to Get Dealership
NSP
Re: Pushover Analysis
This is nice and excellent information, s for share
https://www.cyberyukti.com/disabledfac ... kare.html
https://www.cyberyukti.com/disabledfac ... kare.html
Re: Pushover Analysis
Thanks for sharing and say thanks to DR. Mackie.
Re: Pushover Analysis
I believe there are many more pleasurable opportunities ahead for individuals that looked at your site.