1 (edited by johnnyontheweb 29-01-2019 12:10:45)

Topic: NLstatic 1.IND results

I'm working with nonlinearstatic analysis with CALM solver. In CalmLS.C, line 244, what if p=0 ?

EDIT: I also noticed that there's no way to have loss of strength with

NonLinearStatic nsteps 21 deltat 0.0500000 rtolv 1e-3 controlmode 1 refloadmode 1 initialGuess 1 maxiter 500

In my model, only forces are applied. In this condition, using

NonLinearStatic nsteps 21 deltat 0.0500000 rtolv 1e-3 controlmode 0 psi 0 stepLength 0.0500000 refloadmode 1 initialGuess 1 maxiter 500

EDIT2: I forgot to specify that I cannot attach the model because it relies on a custom simple bilinear spring with strength drop after failure. I know that it is a non-smooth behaviour and this is not suitable for Newton-Raphson solvers, that's why I need to perform the analysis in arc-lenght control but with applied forces.

the results are all zeros. Can anyone help?

Re: NLstatic 1.IND results

Hi,

do you have the same troubles even without the bilinear spring? Can you upload the input file? It is very hard to say without it.

Martin

3 (edited by johnnyontheweb 29-01-2019 16:39:11)

Re: NLstatic 1.IND results

Hi Martin,
yes, same issue with the elastic model. Please find it attached. Please disregard the lumpedmasselements, they are not needed for this analysis - and they don't interefere.

Post's attachments

steelFrame.in 13.46 kb, 3 downloads since 2019-01-29 

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

Re: NLstatic 1.IND results

Hi,

please, find attached a working file. I don't know what you exatly want to do. In the example, the hyper-plane control, when only selected DOFs (dof 1 of node 95) are taken account in ALM step length condition. It corresponds to the displacement control (PSI = 0). If you exmplain how you want to control the loading or what you want to simulate we can improve it.


M.

Post's attachments

steelFrame.in 13.29 kb, 5 downloads since 2019-01-29 

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

5 (edited by johnnyontheweb 29-01-2019 22:39:55)

Re: NLstatic 1.IND results

Thanks for the help.
Just to clarify:

1. then, you must always specify a dof for the arc-length method? if it is so, why there's the option hpcmode 0 ? what is that option for? and for which cases?

2. what exactly "donotfixload" does? in the manual, it is written that this prevents the load level to be reset, but here we have a single metastep.

3. what exactly happens when psi > 0 ? I cannot figure out how the solution is controlled. ("For nonzero values the load control applies together with displacement control (ALM)." says the manual). Anyway, I cannot figure out how to impose that the analysis arrive at least at 100% of the load - this is due to the autostepping I suppose.

4. I noticed you corrected the NodalLoad records, the intended function was no. 2 since load has to be applied with a ramp. This is different of what I would have done with direct control.

I'm trying to perform a pushover analysis on the steel frame. Springs have discontinuities (after failure, the strenght drops to a residual value).
IMHO the calm solver must be improved with some warning or errors - currently, it is difficult to set an NL analysis by reading the manual and the code. In my test, deltaLambda in calmls.c was always 0, and in "computeDeltaLambda" function there are many division by zero is the analysis is not preperly set (see here and here).

EDIT: anyway, I reverted the modifications I made to the code, since I'm not sure of them. Hence, returning to my nl model, I cannot get easily a convergence. Many iterations are perfomed with the same result - see below, same residuals every 2 iterations:

CALMLS:       224             1.251010e-001   6.207579e+000   1.276643e+000
CALMLS:       225             4.367693e-001   1.777724e+000   4.582599e+000
CALMLS:       226             1.251010e-001   6.207579e+000   1.279821e+000
CALMLS:       227             4.367693e-001   1.777724e+000   4.542186e+000
CALMLS:       228             1.251010e-001   6.207579e+000   1.283015e+000
CALMLS:       229             4.367693e-001   1.777724e+000   4.502479e+000
CALMLS:       230             1.251010e-001   6.207579e+000   1.286226e+000
CALMLS:       231             4.367693e-001   1.777724e+000   4.463461e+000
CALMLS:       232             1.251010e-001   6.207579e+000   1.289452e+000
CALMLS:       233             4.367693e-001   1.777724e+000   4.425113e+000
CALMLS:       234             1.251010e-001   6.207579e+000   1.292695e+000
CALMLS:       235             4.367693e-001   1.777724e+000   4.387419e+000

Re: NLstatic 1.IND results

I would recommend you to read something about arc-length first. What is implemented in OOFEM is quite standard and you can find some theory, for example, here https://scholar.harvard.edu/files/vasio … Length.pdf
See equation (2.12) for the meaning of psi. 
I guess you have divison by zero, because you reference load is zero in the first step. The solver then tries to find a load mutiplicator such that the prescrbed displacement is obtained, but since the reference load is zero itself, the multiplicator is inf.

Re: NLstatic 1.IND results

Thanks for the reference, I just realized the matter on the zero initial load. I knew a little bit the arc-lenght analysis, but I have never had such problems with other solvers (for instance, ABAQUS will let you start with a ramp for the loads, simply because the first step is not at time = 0 as in NonLinearStatic).

All fine, but which settings would you suggest to obtain the solution I want? With psi=0 I completely miss the first points of the curve (the ones in the elastic regime) - I need to constraint the solution to start from a small load.

Re: NLstatic 1.IND results

Now I get it: in my command, the keyword "refloadmode 1" is not compatible with CALM solver. I think that it must be automatically removed programmatically or an error must be risen if calm is used.

From my tests it seems that the values of the load is not important... the solver is sensible only to the stepLenght. Other questions:
1. is there the possibility to stop the analysis after the monitored point has reached a certain displacement (or displacement magnitude)?

2. some of the trials continue to stop exhibiting the beaviour reported above, same residuals every 2 iterations... can perturbations be used in such case?

3. I get the error "error encountered at front 49" using Spooles linear system solver after the writing "Iteration reset".
4. DSS solver enters in a infinite loop while "Numerical LDL factorization" is repeatedly displayed.
Hence, only the default solver seems to be ok, but this is a strong limitation with huge models.

thanks in advance

9

Re: NLstatic 1.IND results

HI Giovanni,
I guess you are still confused on what calm solver is doing. Attached is the file, illustrating that "refloadmode 1" works. I have attached both nlinearstatic and StaticStructural versions.
To explain a bit, the total load vector ft in CALM is ft = fp + c*f, where fp is permanent, non scaling load, c is scalar parameter referred as load level, and f is vector of proportional loading. The "refloadmode" parameter defines, how the proportional load vector is assembled. if equal to 0, then it is obtained as a load vector at given time, when equal to 1 then obtained as incremental load vector at given time. Note that reference load vector is assembled only once (for all steps in metastep).

The CALM is based on indirect control, ie. you can control the solution process by load or displacement increments or by combination of both, this depend on definition of Psi. So if you set Psi = 0, then the solution is controlled by the norm of displacement vector increment. You can alter which DOFs enter the norm by using HPC parameter. By default, all DOFs are used, but you can easily select a particular one and thus achieve displacement controlled solution only by s single dof.   

Note: StaticStructural requires to flag load entering reference load with reference keyword. It seems that StaticStructural reports wrong load level, but results in outfile are ok.

Regarding the problems you have with linear solver: If you are using full NRM (ie tangent stiffness) then near the limit point your stiffness matrix is close to singular and linear solver may have problem with it. If this is the case, you have to switch to using secant or initial stiffness close to limit points.   
Regarding the
Hope that it will help,
Borek

Post's attachments

test.in 703 b, 1 downloads since 2019-02-09 

test2.in 714 b, 1 downloads since 2019-02-09 

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

Re: NLstatic 1.IND results

Borek, many thanks for your illuminating post.

Regarding the problems with linear solvers: I have elasto-plastic spring elements, which actually supports only tangent approach (because they are cyclic). Is there an example of non-linear element (not material) which returns the secant matrix? I need a reference to write the code.

Secondly, what is the key "reference" on NodalLoad?

thanks in advance