Convergence problems with force-based elements

Forum for asking and answering questions related to use of the OpenSeesPy module

Moderators: silvia, selimgunay, Moderators

Post Reply
aaataha
Posts: 9
Joined: Sun Oct 13, 2019 1:44 pm

Convergence problems with force-based elements

Post by aaataha » Fri Aug 28, 2020 8:04 am

Hi,

I am modelling a 5-story, 2-bay and 1-bay in the horizontal two directions, RC structure. For performing a nonlinear seismic analysis, I once used a dispbeamcolumn element and then forcebeamcolumn element for modeling both beams and columns. In terms of convergence, the dispbeamcolumn element was okay, but the model with the forcebeamcolumn element is not converging no matter how many integration points I used (I used the max allowable no. of integration points) and used an analysis convergence approach that incorporates different nonlinear algorithms, largely reduced analysis time steps and largely increased tolerance values. But non of this worked. What could be the problem? I appreciate any help in advance.

This is the unconfined concrete material for covers:
uniaxialMaterial Concrete02 10 -40000.00 -0.002000 -8000.00 -0.004000 0.1 -4000.00 3000000.00

the confined concrete material for the core:
uniaxialMaterial Concrete02 20 -44720.00 -0.003180 -44720.00 -0.007690 0.1 -4000.00 3000000.00

the steel material:
uniaxialMaterial Steel02 11 400000.00 200000000.00 0.05 20.0 0.925 0.15 0.005 1.0 0.005 1.0

The column cross-section:
section Fiber 10 {
# define the core patch
patch quad 20 20 20 -0.195 -0.195 0.195 -0.195 0.195 0.195 -0.195 0.195
# define the cover patches
patch quad 10 5 20 -0.225 -0.195 -0.195 -0.195 -0.195 0.195 -0.225 0.195
patch quad 10 5 20 0.195 -0.195 0.225 -0.195 0.225 0.195 0.195 0.195
patch quad 10 20 5 -0.225 -0.225 0.225 -0.225 0.225 -0.195 -0.225 -0.195
patch quad 10 20 5 -0.225 0.195 0.225 0.195 0.225 0.225 -0.225 0.225
# Define reinforcing bars
layer straight 11 3 0.000491 -0.195 -0.195 0.195 -0.195
layer straight 11 2 0.000491 -0.195 0.000 0.195 0.000
layer straight 11 3 0.000491 -0.195 0.195 0.195 0.195
};
uniaxialMaterial Elastic 110 85429.69
uniaxialMaterial Elastic 210 2109375.00
section Aggregator 310 210 Vy 210 Vz 110 T -section 10

The dispbeamcolumn element for columns (each column is defined using 3 elements and 3 integration points) :
element dispBeamColumn 11111 0011 11111 3 310 1 -integration Lobatto

the forcebeamcolumn element for columns (each column is defined using 1 element and 10 integration points):
element forceBeamColumn 11111 0011 0111 10 310 1

mhscott
Posts: 444
Joined: Tue Jul 06, 2004 3:38 pm
Location: Corvallis, Oregon USA
Contact:

Re: Convergence problems with force-based elements

Post by mhscott » Fri Aug 28, 2020 8:24 am

This forum is generally for OpenSeesPy (Python) specific questions.

But, perhaps you can make all your uniaxialMaterials Elastic and see if you have convergence problems.
Here are some steps to follow: https://wp.me/pbejzW-1C

It's difficult to say what the problem is based on your post. A screen shot of the output would help.
Was my answer helpful to you? https://www.buymeacoffee.com/mhscott
Do you need extra help with OpenSees? https://courses.silviasbrainery.com/

Michael H. Scott, Ph.D.
OpenSees blog: www.portwooddigital.com

aaataha
Posts: 9
Joined: Sun Oct 13, 2019 1:44 pm

Re: Convergence problems with force-based elements

Post by aaataha » Fri Aug 28, 2020 8:31 am

mhscott wrote:
Fri Aug 28, 2020 8:24 am
This forum is generally for OpenSeesPy (Python) specific questions.

But, perhaps you can make all your uniaxialMaterials Elastic and see if you have convergence problems.
Here are some steps to follow: https://wp.me/pbejzW-1C

It's difficult to say what the problem is based on your post. A screen shot of the output would help.
Sorry for posting here.
I already carried out analysis of the model using a dispbeamcolumn element and it was okay. The only change was replacing the dispbeamcolumn element with a forcebeamcolumn element. This is the analysis output ..

WARNING - ForceBeamColumn3d::update - failed to get compatible element forces & deformations for element: 11111(dW: << 1.83431e-009, dW0: 0.0173102)
WARNING - ForceBeamColumn3d::update - failed to get compatible element forces & deformations for element: 11121(dW: << 1.77563e-006, dW0: 0.0141372)
WARNING - ForceBeamColumn3d::update - failed to get compatible element forces & deformations for element: 11211(dW: << 2.54958e-007, dW0: 0.0318291)
WARNING - ForceBeamColumn3d::update - failed to get compatible element forces & deformations for element: 11221(dW: << 2.59173e-005, dW0: 0.315433)
WARNING - ForceBeamColumn3d::update - failed to get compatible element forces & deformations for element: 11321(dW: << 2.65351e-006, dW0: 0.0124833)
WARNING - ForceBeamColumn3d::update - failed to get compatible element forces & deformations for element: 11111(dW: << 1.83431e-009, dW0: 0.000750978)
WARNING - ForceBeamColumn3d::update - failed to get compatible element forces & deformations for element: 11121(dW: << 1.77563e-006, dW0: 0.000139)
WARNING - ForceBeamColumn3d::update - failed to get compatible element forces & deformations for element: 11211(dW: << 2.54958e-007, dW0: 0.00364059)
WARNING - ForceBeamColumn3d::update - failed to get compatible element forces & deformations for element: 11221(dW: << 2.59173e-005, dW0: 0.00767979)
WARNING - ForceBeamColumn3d::update - failed to get compatible element forces & deformations for element: 11321(dW: << 2.65351e-006, dW0: 0.00086629)
Domain::update - domain failed in update
AlphaOS::newStep() - failed to update the domain
DirectIntegrationAnalysis::analyze() - the Integrator failed at time 0.141
OpenSees > analyze failed, returned: -2 error flag
Trying OSG ...

mhscott
Posts: 444
Joined: Tue Jul 06, 2004 3:38 pm
Location: Corvallis, Oregon USA
Contact:

Re: Convergence problems with force-based elements

Post by mhscott » Fri Aug 28, 2020 8:32 am

Try with Newmark instead of alphaOS. Also, see if you have issues with all elastic materials.
Was my answer helpful to you? https://www.buymeacoffee.com/mhscott
Do you need extra help with OpenSees? https://courses.silviasbrainery.com/

Michael H. Scott, Ph.D.
OpenSees blog: www.portwooddigital.com

aaataha
Posts: 9
Joined: Sun Oct 13, 2019 1:44 pm

Re: Convergence problems with force-based elements

Post by aaataha » Fri Aug 28, 2020 8:38 am

mhscott wrote:
Fri Aug 28, 2020 8:32 am
Try with Newmark instead of alphaOS. Also, see if you have issues with all elastic materials.
I use newmark as the primary integrator. But then I use a convergence approach that incorporates different nonlinear algorithms, integrators, time step sizes and tolerance values. Here it is:

# %%% DYNAMIC ANALYSIS PARAMETERS %%%

constraints Transformation;
numberer Plain;
system BandSPD
set Tol 1.0e-3;
set maxNumIter 30;
set printFlag 0;
set NewmarkGamma 0.5;
set NewmarkBeta 0.25;
set TestType RelativeNormDispIncr;
set algorithmType Newton;
test $TestType $Tol $maxNumIter $printFlag;
algorithm $algorithmType;
integrator Newmark $NewmarkGamma $NewmarkBeta;
analysis Transient;

# %%% DYNAMIC ANALAYSIS %%%
set ok [analyze $Nsteps $dtAnalysis];
if {$ok != 0} {
set ok 0;
set controlTime [getTime];
while {($controlTime<$TmaxAnalysis) && $ok == 0} {
set ok [analyze 1 $dtAnalysis];
set controlTime [getTime];
if {$ok != 0} {
puts "Trying Newton with Initial Tangent ..";
test RelativeNormDispIncr 5.0e-3 20 0;
algorithm Newton -initial;
set ok [analyze 1 $dtAnalysis];
};
if {$ok != 0} {
puts "Relieving Convergence Criteria 1 ..";
test RelativeEnergyIncr 1.0e-3 40 5;
algorithm Newton -initial;
set ok [analyze 1 $dtAnalysis];
};
if {$ok != 0} {
puts "Relieving Convergence Criteria 2 ..";
test RelativeEnergyIncr 5.0e-1 40 5;
algorithm Newton -initial;
set ok [analyze 1 $dtAnalysis];
};
if {$ok != 0} {
puts "Trying Newton ..";
test RelativeNormDispIncr 1.0e-3 20 0;
algorithm Newton;
set ok [analyze 1 $dtAnalysis];
};
if {$ok != 0} {
puts "Trying Bisection ...";
algorithm NewtonLineSearch <-type Bisection>;
set ok [analyze 1 $dtAnalysis]
algorithm $algorithmType;
};
if {$ok != 0} {
puts "Trying Secant ...";
algorithm NewtonLineSearch <-type Secant>;
set ok [analyze 1 $dtAnalysis]
algorithm $algorithmType;
};
if {$ok != 0} {
puts "Trying RegulaFalsi ...";
algorithm NewtonLineSearch <-type RegulaFalsi>;
set ok [analyze 1 $dtAnalysis]
algorithm $algorithmType;
};
# if {$ok != 0} {
# puts "Trying KrylovNewton ...";
# algorithm KrylovNewton;
# set ok [analyze 1 $dtAnalysis]
# algorithm $algorithmType;
# };
# if {$ok != 0} {
# puts "Trying Newton ...";
# algorithm Newton;
# set ok [analyze 1 $dtAnalysis]
# algorithm $algorithmType;
# };
if {$ok != 0} {
puts "Trying BFGS ...";
algorithm BFGS;
set ok [analyze 1 $dtAnalysis]
algorithm $algorithmType;
};
if {$ok != 0} {
puts "Trying Broyden ...";
algorithm Broyden;
set ok [analyze 1 $dtAnalysis]
algorithm $algorithmType;
};
if {$ok != 0} {
puts "Trying HHT 0.9 ...";
integrator HHT 0.9;
set ok [analyze 1 $dtAnalysis]
# integrator TRBDF2;
integrator Newmark $NewmarkGamma $NewmarkBeta;
};
if {$ok != 0} {
puts "Trying OS ...";
integrator AlphaOS 1.00;
algorithm Linear;
set ok [analyze 1 $dtAnalysis]
# integrator TRBDF2;
integrator Newmark $NewmarkGamma $NewmarkBeta;
algorithm $algorithmType;
};
if {$ok != 0} {
puts "Trying OSG ...";
integrator AlphaOSGeneralized 1.00;
algorithm Linear;
set ok [analyze 1 $dtAnalysis]
# integrator TRBDF2;
integrator Newmark $NewmarkGamma $NewmarkBeta;
algorithm $algorithmType;
};
if {$ok != 0} {
puts "Trying more iterations...";
test $TestType $Tol 1000 $printFlag;
set ok [analyze 1 $dtAnalysis]
test $TestType $Tol $maxNumIter $printFlag;
};
if {$ok != 0} {
puts "Trying tolerance 1.0e-3 ...";
test $TestType 1.0e-3 $maxNumIter 0;
set ok [analyze 1 [expr $dtAnalysis/2.0]]
test $TestType $Tol $maxNumIter $printFlag;
};
if {$ok != 0} {
puts "Trying tolerance 1.0e-3 ...";
test $TestType 1.0e-3 $maxNumIter 0;
set ok [analyze 1 [expr $dtAnalysis/4.0]]
test $TestType $Tol $maxNumIter $printFlag;
};
if {$ok != 0} {
puts "Trying tolerance 1.0e-3 ...";
test $TestType 1.0e-3 $maxNumIter 0;
set ok [analyze 1 [expr $dtAnalysis/8.0]]
test $TestType $Tol $maxNumIter $printFlag;
};
if {$ok != 0} {
puts "Trying tolerance 1.0e-3 ...";
test $TestType 1.0e-3 $maxNumIter 0;
set ok [analyze 1 [expr $dtAnalysis/16.0]]
test $TestType $Tol $maxNumIter $printFlag;
};
if {$ok != 0} {
puts "Trying tolerance 1.0e-3 ...";
test $TestType 1.0e-3 $maxNumIter 0;
set ok [analyze 1 [expr $dtAnalysis/32.0]]
test $TestType $Tol $maxNumIter $printFlag;
};
if {$ok != 0} {
puts "Trying tolerance 1.0e-3 ...";
test $TestType 1.0e-3 $maxNumIter 0;
set ok [analyze 1 [expr $dtAnalysis/64.0]]
test $TestType $Tol $maxNumIter $printFlag;
};
if {$ok != 0} {
puts "Trying tolerance 5.0e-3 ...";
test $TestType 5.0e-3 $maxNumIter 0;
set ok [analyze 1 [expr $dtAnalysis/64.0]]
test $TestType $Tol $maxNumIter $printFlag;
};
if {$ok != 0} {
puts "Trying tolerance 1.0e-2 ...";
test $TestType 1.0e-2 $maxNumIter 0;
set ok [analyze 1 [expr $dtAnalysis/64.0]]
test $TestType $Tol $maxNumIter $printFlag;
};
if {$ok != 0} {
puts "Trying tolerance 5.0e-2 ...";
test $TestType 5.0e-2 $maxNumIter 0;
set ok [analyze 1 [expr $dtAnalysis/64.0]]
test $TestType $Tol $maxNumIter $printFlag;
};
if {$ok != 0} {
puts "Trying tolerance 1.0e-1 ...";
test $TestType 1.0e-1 $maxNumIter 0;
set ok [analyze 1 [expr $dtAnalysis/64.0]]
test $TestType $Tol $maxNumIter $printFlag;
};
if {$ok != 0} {
puts "Trying tolerance 5.0e-1 ...";
test $TestType 5.0e-1 $maxNumIter 0;
set ok [analyze 1 [expr $dtAnalysis/64.0]]
test $TestType $Tol $maxNumIter $printFlag;
};
if {$ok != 0} {
puts "Trying tolerance 1.0 ...";
test $TestType 1.0 $maxNumIter 0;
set ok [analyze 1 [expr $dtAnalysis/64.0]]
test $TestType $Tol $maxNumIter $printFlag;
};
if {$ok != 0} {
puts "Trying tolerance 2.0 ...";
test $TestType 2.0 $maxNumIter 0;
set ok [analyze 1 [expr $dtAnalysis/64.0]]
test $TestType $Tol $maxNumIter $printFlag;
};
test $TestType $Tol $maxNumIter $printFlag;
algorithm $algorithmType;
};
};
puts "End of Dynamic analysis"
wipe;

mhscott
Posts: 444
Joined: Tue Jul 06, 2004 3:38 pm
Location: Corvallis, Oregon USA
Contact:

Re: Convergence problems with force-based elements

Post by mhscott » Fri Aug 28, 2020 8:39 am

OK, try making the fibers elastic. This will help determine if it's a model issue of an element issue.
Was my answer helpful to you? https://www.buymeacoffee.com/mhscott
Do you need extra help with OpenSees? https://courses.silviasbrainery.com/

Michael H. Scott, Ph.D.
OpenSees blog: www.portwooddigital.com

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

Re: Convergence problems with force-based elements

Post by selimgunay » Thu Sep 03, 2020 7:26 pm

There are some recommendations here starting with page 12 on the type and sequence of nonlinear equation solvers, convergence test type, convergence tolerance and integration time step to be used with adaptive solution strategies:

https://www.researchgate.net/profile/Kh ... alyses.pdf

mhscott
Posts: 444
Joined: Tue Jul 06, 2004 3:38 pm
Location: Corvallis, Oregon USA
Contact:

Re: Convergence problems with force-based elements

Post by mhscott » Fri Sep 04, 2020 7:14 am

What type of damping are you using? Rayleigh or modal?
Was my answer helpful to you? https://www.buymeacoffee.com/mhscott
Do you need extra help with OpenSees? https://courses.silviasbrainery.com/

Michael H. Scott, Ph.D.
OpenSees blog: www.portwooddigital.com

Post Reply