Incremental updating in Adaptive Pushover Analysis

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

Moderators: silvia, selimgunay, Moderators

Post Reply
aydindaei
Posts: 22
Joined: Sat Jul 29, 2017 11:48 pm

Incremental updating in Adaptive Pushover Analysis

Post by aydindaei » Sat Dec 30, 2017 11:27 am

Hi everybody,
As you know Total updating in Adaptive pushover analysis encounters with divergence in some structures specially high-rise buildings.So we can use Incremental updating instead.Can anybody help me to write the script of this analysis?

polimeruvijay
Posts: 43
Joined: Fri Jan 29, 2016 10:20 pm

Re: Incremental updating in Adaptive Pushover Analysis

Post by polimeruvijay » Mon Jan 01, 2018 5:54 am

Dear Aydindaei

Eventhough the below code is written for eqrthquake, it will help you understand, implementing adaptive step size in the pushover analyses

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------




set filename "DtStepSize.dat"
set DtStepSizeID [open $filename r]; #Load the vector with the step sizes
set DtStepSizeValues [read $DtStepSizeID]
close $DtStepSizeID



if {$ok != 0} { ; # if analysis was not successful.
# change some analysis parameters to achieve convergence
# performance is slower inside this loop
# Time-controlled analysis
set ok 0;
set controlTime [getTime];
while {$controlTime < $TmaxAnalysis && $ok == 0} {

set ok [analyze 1 $DtAnalysis]
set controlTime [getTime]
set ok [analyze 1 $DtAnalysis]
puts "Current Time in the Domain = $controlTime ---------------------------------------------------------------";
if {$ok != 0} {

foreach DtStepFactor $DtStepSizeValues {

set DtStepFactored [expr $DtAnalysis*$DtStepFactor]

puts "******************************************************************************************************************************************************";
puts "********* DtStepFactored = $DtStepFactored and TmaxAnalysis = $TmaxAnalysis";
puts "******************************************************************************************************************************************************";


if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test EnergyIncr $Tol_2 100 0
algorithm Newton -initial
set ok [analyze 1 $DtStepFactored]
test $TestType $Tol_2 $maxNumIter 0
algorithm $algorithmType
}

if {$ok != 0} {
puts "Trying Simple Newton .."
test EnergyIncr $Tol_2 100 0
algorithm Newton
set ok [analyze 1 $DtStepFactored]
algorithm $algorithmType
}

if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 $DtStepFactored]
algorithm $algorithmType
}

if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1 $DtStepFactored]
algorithm $algorithmType
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch 0.6
set ok [analyze 1 $DtStepFactored]
algorithm $algorithmType
}


if {$ok == 0} {
test $TestType $Tol_1 $maxNumIter 0
break
}
}
}
}
}; # end if ok !0

Post Reply