lumped plasticity model & pushover

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

Moderators: silvia, selimgunay, Moderators

Post Reply
sualim
Posts: 27
Joined: Tue Jul 29, 2014 9:37 pm
Location: yonsei university

lumped plasticity model & pushover

Post by sualim »

Hi, I bulit up 2D RC frame (6 story 6 bay) using hysteretic loop

the hysteretic loop's parameters were derived from fema 356 (chapter.6, table 6-7~ table 6-8)

And I want to compare a pushover curve of non retrifited model with a pushover curve of retrifited model

The analysis of non retrofited model was well.

But analysis of retrofited model failed. (I tried to analysis retrofited only one column among 42 columns.)

Difference between the two models is hysteretic loop's paremeters.

I think ... Stiffness and strength difference between hysteresis curve of non retrofied model and hysteresis curve of retrofied model is large

so I tried to changing paremeters of analysis command (constraints / system / algorithm)

but all failed..ㅠㅠ

I cannot post my script here but I can email it

please give me any reply... thank you
kesavapraba
Posts: 46
Joined: Mon Jan 22, 2018 1:38 am

Re: lumped plasticity model & pushover

Post by kesavapraba »

Dear friend
Please attach detailed account of your error message from opensees in FB or Dropbox, and share the link here
sualim
Posts: 27
Joined: Tue Jul 29, 2014 9:37 pm
Location: yonsei university

Re: lumped plasticity model & pushover

Post by sualim »

thank you for your reply

below is the pushover analysis script

# displacement parameters
set IDctrlNode 17; # node where disp is read for disp control
set IDctrlDOF 1; # degree of freedom read for disp control (1 = x displacement)
set HBuilding 18000
set Dincr [expr 1]; # displacement increment
set Dmax [expr 3.000000e-02*$HBuilding]; # maximum displacement of pushover: 5 roof drift
set TestType NormDispIncr; # Convergence-test type
set algorithmType KrylovNewton
set maxNumIter 2000;
set Tol 1.000000e-05;
set printFlag 5;


# analysis commands
integrator DisplacementControl $IDctrlNode $IDctrlDOF $Dincr; # use displacement-controlled analysis
constraints Transformation # how it handles boundary conditions
system BandGeneral # how to store and solve the system of equations in the analysis (large model: try UmfPack)
algorithm KrylovNewton
numberer RCM # renumber dofs to minimize band-width (optimization)
test NormDispIncr $Tol $maxNumIter $printFlag; # tolerance, max iterations, printFlag
analysis Static # define type of analysis: static for pushover
set Nsteps [expr int($Dmax/$Dincr)]; # number of pushover analysis steps
set ok [analyze $Nsteps]; # this will return zero if no convergence problems were encountered

if {$ok != 0} { # if analysis fails, we try some other stuff, performance is slower inside this loop
puts "analysis fails... Start loop"
set ok 0;
set controlDisp 0.0;
set D0 0.0; # analysis starts from zero
set Dstep [expr ($controlDisp-$D0)/($Dmax-$D0)]

while {$Dstep < 1.0 && $ok == 0} {
set controlDisp [nodeDisp $IDctrlNode $IDctrlDOF ]
set Dstep [expr ($controlDisp-$D0)/($Dmax-$D0)]
set ok [analyze 1 ]

if {$ok != 0} {
puts "Trying NewtonLineSearch 0.5...";
test NormDispIncr $Tol $maxNumIter $printFlag
algorithm NewtonLineSearch .5;
set ok [analyze 1 ]
algorithm $algorithmType;
};
if {$ok != 0} {
puts "Trying NewtonLineSearch 0.6...";
test NormDispIncr $Tol $maxNumIter $printFlag
algorithm NewtonLineSearch .6;
set ok [analyze 1 ]
algorithm $algorithmType;
};
if {$ok != 0} {
puts "Trying NewtonLineSearch 0.7...";
test NormDispIncr $Tol $maxNumIter $printFlag
algorithm NewtonLineSearch .7;
set ok [analyze 1 ]
algorithm $algorithmType;
};
if {$ok != 0} {
puts "Trying NewtonLineSearch 0.8...";
test NormDispIncr $Tol $maxNumIter $printFlag
algorithm NewtonLineSearch .8;
set ok [analyze 1 ]
algorithm $algorithmType;
};
if {$ok != 0} {
puts "Trying ModifiedNewton .."
test NormDispIncr $Tol $maxNumIter $printFlag
algorithm ModifiedNewton
set ok [analyze 1 ]
algorithm $algorithmType;
test NormDispIncr $Tol $maxNumIter $printFlag;
};
if {$ok != 0} {
puts "Trying Newton with Initial Tangent tol 1.0e-4 .."
test NormDispIncr 1.000000e-04 10000 $printFlag
algorithm Newton -initial
set ok [analyze 1 ]
algorithm $algorithmType;
test NormDispIncr $Tol $maxNumIter $printFlag;
};

}; # end while loop
}; # end if ok !0
puts "Pushover analysis completed!!!"
}



And the error massage is as follows

T1 = 1.2126680538986943 s
T2 = 0.41079807521771056 s
Model Built
Running Pushover...
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0332701 (max: 1e-005, Norm deltaR: 811949)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.639649 (max: 1e-005, Norm deltaR: 775.426)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.279977 (max: 1e-005, Norm deltaR: 970.659)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 24.5119 (max: 1e-005, Norm deltaR: 1.76659)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 14.8782 (max: 1e-005, Norm deltaR: 966.381)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0073189 (max: 1e-005, Norm deltaR: 51871.5)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0267467 (max: 1e-005, Norm deltaR: 204.405)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.187583 (max: 1e-005, Norm deltaR: 256.597)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.410903 (max: 1e-005, Norm deltaR: 1.1873e+006)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0432267 (max: 1e-005, Norm deltaR: 1.13184e+006)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.00845821 (max: 1e-005, Norm deltaR: 403.856)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.00894185 (max: 1e-005, Norm deltaR: 8.95462)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.00454013 (max: 1e-005, Norm deltaR: 275.621)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.15519 (max: 1e-005, Norm deltaR: 217.67)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0273083 (max: 1e-005, Norm deltaR: 255.075)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.163919 (max: 1e-005, Norm deltaR: 96.1319)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0119286 (max: 1e-005, Norm deltaR: 53.3517)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 94.2465 (max: 1e-005, Norm deltaR: 542.735)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 1.80781 (max: 1e-005, Norm deltaR: 1.5172)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0408831 (max: 1e-005, Norm deltaR: 109.066)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.000291316 (max: 1e-005, Norm deltaR: 190.724)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 1.16511 (max: 1e-005, Norm deltaR: 56.1159)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.529071 (max: 1e-005, Norm deltaR: 0.880609)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.00618671 (max: 1e-005, Norm deltaR: 289.808)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0249061 (max: 1e-005, Norm deltaR: 1.28128)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 9.77724e-005 (max: 1e-005, Norm deltaR: 3.33889)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 10.3719 (max: 1e-005, Norm deltaR: 1.15424)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.00427068 (max: 1e-005, Norm deltaR: 98.2562)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.00116474 (max: 1e-005, Norm deltaR: 63.7288)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 10.4495 (max: 1e-005, Norm deltaR: 77.0028)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.457557 (max: 1e-005, Norm deltaR: 882.05)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 5.3094 (max: 1e-005, Norm deltaR: 20.286)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0146711 (max: 1e-005, Norm deltaR: 35.1011)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0617741 (max: 1e-005, Norm deltaR: 67.8948)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.333704 (max: 1e-005, Norm deltaR: 1121.84)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 2.9439 (max: 1e-005, Norm deltaR: 32.634)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.00562185 (max: 1e-005, Norm deltaR: 1614.12)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.300733 (max: 1e-005, Norm deltaR: 229.681)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0143914 (max: 1e-005, Norm deltaR: 364.815)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.00135852 (max: 1e-005, Norm deltaR: 35.9349)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.275291 (max: 1e-005, Norm deltaR: 6.45087)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0144134 (max: 1e-005, Norm deltaR: 203.046)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.903039 (max: 1e-005, Norm deltaR: 1.15147)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0691308 (max: 1e-005, Norm deltaR: 5.10626)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0326314 (max: 1e-005, Norm deltaR: 32.3417)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 1.34885 (max: 1e-005, Norm deltaR: 143.151)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0238247 (max: 1e-005, Norm deltaR: 7.48727)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0590643 (max: 1e-005, Norm deltaR: 27.6088)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0311652 (max: 1e-005, Norm deltaR: 76.8412)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.459563 (max: 1e-005, Norm deltaR: 122.829)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.255394 (max: 1e-005, Norm deltaR: 3.64096)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.00738626 (max: 1e-005, Norm deltaR: 252.612)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.022459 (max: 1e-005, Norm deltaR: 10.3148)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0683001 (max: 1e-005, Norm deltaR: 71.4894)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.00015516 (max: 1e-005, Norm deltaR: 62.9689)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 0.0129223 (max: 1e-005, Norm deltaR: 141.274)
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current Norm: 20.3268 (max: 1e-005, Norm deltaR: 41.8827)
Pushover analysis completed!!!


the analysis failed on degradation of strength (in that time, roof drift ratio is 1%)

I want to show some figure likes hysteretic loop and pushover curve of non retrofit verses retrofit

could someone give me email address?

when I changed the hystreretic loop paremeter (members have some strength after strength degradaiton)

the analysis was well

so, I think... the pushover failed in the middle, because of members having zero strength . am I right???

please give me some advise.
Prafullamalla
Posts: 160
Joined: Mon Feb 02, 2015 6:32 pm

Re: lumped plasticity model & pushover

Post by Prafullamalla »

the analysis says " Pushover analysis completed!!!" at the bottom of analysis
Prafulla Malla, Nepal
Praf_malla@hotmail.com
sualim
Posts: 27
Joined: Tue Jul 29, 2014 9:37 pm
Location: yonsei university

Re: lumped plasticity model & pushover

Post by sualim »

hi Prafullamalla

the analysis said that.. but pushover curve was so strange and value of base shear was lower than not retrofited model.

pushover curve was similar to below



     ..
    .  .
   .  
  .
 .
.      ..............................

the maximum value of (base shear / total weight) = not retrofited model 0.108 (10.8%) & retrofited model 0.057 (5.7%)

so, I think... the pushover failed in the middle
kesavapraba
Posts: 46
Joined: Mon Jan 22, 2018 1:38 am

Re: lumped plasticity model & pushover

Post by kesavapraba »

Dear Friend
Did your other algorithms, as mentioned in the pushover script above, give the same errors?
You can play with load increment DIncr.Or,
Sometime the material which are used in the model may be the problem for convergence problem, like if it has any sharp changes in its definition. In that case you can try any close alternate material with smooth transition curves.
sualim
Posts: 27
Joined: Tue Jul 29, 2014 9:37 pm
Location: yonsei university

Re: lumped plasticity model & pushover

Post by sualim »

Dear kesavapraba

the results of other algorithms likes newton, ModifiedNewton were worse (I got more and same error massages)

you said " In that case you can try any close alternate material with smooth transition curves."

but the hysteretic loop of members could not change because I followed the fema356 and guidelines for the retrofied buildings.

so, Is the meaning that opensees is not suitable for my model??
Prafullamalla
Posts: 160
Joined: Mon Feb 02, 2015 6:32 pm

Re: lumped plasticity model & pushover

Post by Prafullamalla »

The pushover analysis is complete. Once the material reaches nearly complete degradtion, it becomes like liquid, i.e, no strength at all. So, there is deflection for nearly zero load. Did , you use the concrete material. and it depends upon the minimum concrete in the descending portion and other parameters of concrete. You can also neglect the value of result once there is too steep descending
Prafulla Malla, Nepal
Praf_malla@hotmail.com
kesavapraba
Posts: 46
Joined: Mon Jan 22, 2018 1:38 am

Re: lumped plasticity model & pushover

Post by kesavapraba »

Dear Sualim
I assume that the hysteretic loop that you mentioned means the backbone curve for the pushover curve. A hysteretic loop is required only during the cyclic analysis. The backbone curve in your case is multilinear, so there is a possibility of getting convergence error in such cases. The question is not about the ability of either OpenSees or FEMA356. You can still solve the problem in OpenSees (It is versatile in my perspective!) by suitably identifying proper analysis parameters such as load step, tolerance limit, or algorithm etc. All You can do is to understand the error and debug the code step-by-step by changing the above-mentioned parameters.
sualim
Posts: 27
Joined: Tue Jul 29, 2014 9:37 pm
Location: yonsei university

Re: lumped plasticity model & pushover

Post by sualim »

Thanks kesavapraba and Prafullamalla
I already tried to find proper analysis parameters
I combined the following command

Constraint : plain / transformation / penalty (1e16)
System : bandgeneral / umfpack
Algorithm : newton / krylovnewton / modifiednewton

So, penalty / umfpack / kryovnewton was the best combination for my model
Is there another analysis command for using pushover analysis?

I used uniaxialMatertial Hysteretic and points of the command are calculated by using fema 356 (chapter.6, table 6-7~ table 6-8)
As you know, the shape is below

     .
    . .
   .  .
  .    ......
 .       |

(x axis : deformation(rad) / y axis : moment(kn.m) )

And hysteretic loop of retrofitted model is below


     ................ (part of strenth increase)
     .
    . 
   .  
  .   
 . 

They have strength increase after yield strength ( the stiffness is 1% of initial stiffness)

So, I anticipated a retrofitted model analysis would be better than not retrofit model analysis.
Because Stiffness degradation of non-retrofitted model occurs more rapidly than retrofitted model, I thought it would be easy to converge.

I don't know what to do .. I did all I could to do
kesavapraba
Posts: 46
Joined: Mon Jan 22, 2018 1:38 am

Re: lumped plasticity model & pushover

Post by kesavapraba »

Dear Friend
What uniaxialmaterial model did you use for retrofitted structure? It seems from your post that the retrofit model behaves something like elasto-plastic with strain hardening type. So, you may avoid convergence problem if you model that behaviour as Steel02 uniaxialMaterial as per OpenSees. Try it if you have not done already.
Prafullamalla
Posts: 160
Joined: Mon Feb 02, 2015 6:32 pm

Re: lumped plasticity model & pushover

Post by Prafullamalla »

Is it possible to share your code?
Prafulla Malla, Nepal
Praf_malla@hotmail.com
sualim
Posts: 27
Joined: Tue Jul 29, 2014 9:37 pm
Location: yonsei university

Re: lumped plasticity model & pushover

Post by sualim »

dear Prafullamalla

could you give me your email address??
Prafullamalla
Posts: 160
Joined: Mon Feb 02, 2015 6:32 pm

Re: lumped plasticity model & pushover

Post by Prafullamalla »

Prafulla Malla, Nepal
Praf_malla@hotmail.com
Post Reply