Topic: NonLinearStatic issue with nmsteps > 1

Hello all,
I have a building model in which I need to apply first vertical loads, then proceed with pushover (apply forces in displ. control, node 125 in X dir.). Analyses are set as:

NonLinearStatic nsteps 211 nmsteps 2 nmodules 2 
nsteps 11 deltat 0.1 rtolv 0.1 controlmode 1 refloadmode 1 initialGuess 1 manrmsteps 1 maxiter 30
nsteps 200 deltat 0.002 rtolv 0.1 controlmode 0 refloadmode 1 psi 0 stepLength 0.002 minsteplength 0.0001 reqIterations 30 maxrestarts 5 hpcmode 1 hpc 2 125 1 hpcw 1 1 maxiter 30

Vertical loads are associated to function 5, and lateral load with function 4, which starts at t=1.

PiecewiseLinFunction 4 npoints 2 t 2 1e0 2e0  f(t) 2 0e0 1e0 
PiecewiseLinFunction 5 npoints 2 t 2 0e0 1e0  f(t) 2 0e0 1e0 

I get strange results:
- from t=0 to t=1, nothing happens; all displacements in the model are 0;
- at t>1, model starts to move in X dir. At t=1.002, I see about the 50% of the lateral load already applied to the model.
- at t=1.02, model starts to move in vertical direction, it seems vertical loads started to be applied...

I'm not able to share the NL model because it's using external elements, but I suspect something is wrong with analysis settings above, can you help? I attach an elastic file, that does not show the problem at t=1.02, but the first 2 are identical.

ps. I've already tried to change order of PiecewiseLinFunction , but as expected nothing changes.

Post's attachments

test.in 24.31 kb, 3 downloads since 2021-03-05 

You don't have the permssions to download the attachments of this post.

Re: NonLinearStatic issue with nmsteps > 1

Anyone? I believe this is something trivial in the model attached.
Are timeseries correct?

thanks in advance

Re: NonLinearStatic issue with nmsteps > 1

Please see the attached file. It is a similar case to yours and it works fine.

Post's attachments

oneelement_elastic.txt 1.52 kb, 2 downloads since 2021-03-09 

You don't have the permssions to download the attachments of this post.

4 (edited by johnnyontheweb 10-03-2021 10:34:10)

Re: NonLinearStatic issue with nmsteps > 1

Thanks for your reply, but still the same problem:

- in this sample you have 2 PiecewiseLinFunctions with same time steps and different values. I tried to use equal time steps in my functions, but nothing changed

- the first NodalLoad is applied in step 0 (only 1 step). Is this required or steps can be more than one in 1st stage?

- it seems "nsteps" in the line "nonLinearStatic nmsteps 2 nsteps 1 nmodules 2 printstiff" is completely neglected by the solver.

- using "manrmsteps 1" is equivalent to "manrmsteps 0" (in other words, to not specify this flag)?

I attach a simpler model I made with a single element. I cannot see any different, except that you specified "stiffmode 0", but from the manual it seems it's the default.

Post's attachments

beam.in 1.85 kb, 3 downloads since 2021-03-10 

You don't have the permssions to download the attachments of this post.

5 (edited by johnnyontheweb 11-03-2021 13:43:45)

Re: NonLinearStatic issue with nmsteps > 1

In addition, the flag "keepll" should be documented - is it necessary in this case?

Another different with your file is "refloadmode 1" in mine.

Finally found - it seems a matter of tolerances: if tolerance is too high, NRsolver does not even try to apply the load. This is unsafe and must be considered to be corrected.

EDIT: I cannot complete the 2nd stage analysis with Psi=0 in CALM, but it works with values like 0.01 or 0.1. I read that this means to use someway also force control - I definitely ask a clarification on this, especially why with psi>0 I'm not able anymore to control the final displacement value (final displ. != stepLen * nSteps). thanks in advance

6

Re: NonLinearStatic issue with nmsteps > 1

well, I run your beam.in example using the git version:
1) I got hundreds of warnings related to evaluation of PieceWiseLTF outside its definition range. So I have to extended the definition range.
2) you are right. the problem of not applying load is in high value of tolerance you have used. The norm of difference between applied load and equivalent nodal forces (from the previous step) is below the tolerance. It a a bug, that in this case the loading is not applied.
3) I am able to continue with second metastep using displacement control and (Psi=0). This is most likely due to the fix I made in 1)  See attached input.
4) In ALM you control loading by increments of arc length. For PSI=0  this corresponds to norm (length) of dipslacemen increment vector. And only in special case of using hpc for one DOF the arc length corresponds to displacement increment of that DOF. The problem with Psi >0 is that in this case the arc-length is computed as a generalized norm from displacement and force vectors (such as l = sqrt(r^T . r+Psi*F^T . F), so it has no longer the meaning of displacement.

Post's attachments

beam.in 1.91 kb, 2 downloads since 2021-03-12 

You don't have the permssions to download the attachments of this post.

7 (edited by johnnyontheweb 12-03-2021 17:10:31)

Re: NonLinearStatic issue with nmsteps > 1

Thanks for the reply.
1) Despite the warnings, I know that OOFEM extrapolates from time-series, hence the values considered are in any case correct.
2) yes, I noticed this by myself in the meanwhile - if the code can be amended, where would you change the function NRSolver :: solve to force a calculation if it is the 1st step? I need just some hints.
If it is not suitable to change the code, I suppose "miniter 1" in input deck will fix this.

4) thanks for explanation. I noticed that with my NL elements, only using psi > 0 leads to convergence, but the final displacement is completely out of control (typically, small final displs are reached).

EDIT:
2) now I see: https://github.com/oofem/oofem/commit/5 … 7e744b3e94