Topic: Problems and question: Load control, elements, material models, output

We tried to use oofem for the material nonlinear modeling of plain and reinforced concrete structures and
encountered several difficulties and questions:


  Load control

The load control mechanisms behaved unsatifactory in our tests in several ways:

  • If direct load control is used and one steps doesn't converge, a stiffness matrix update is made and iteration begins again which is desirable. But a stiffness update is also done if elastic stiffness is used (stiffMode 2) which makes no sense. Furthermore, solution process doesn't stop after a second bunch of maxIter iterations, even if nothing changed (which is of course always the case for elastic stiffness mode) and calculation cycles forever if not stopped manually.

    For us it would be desirable that, when convergence of one load step cannot be achieved anymore, the calculation would continue with the next step. (Which of course means, that one has to check afterwards, whether the errors are only slightly about the convergence limit and the calculation converges in subsequent steps.)

  • If using direct load control the minStepLength parameter is ignored despite being mentioned in the documentation (actual step length is always 1.0) yielding a warning.

  • The arclength method (indirect load control) didn't work always as expected. It did not yield the maximum loads that could be achieved with direct load control in larger models, is very susceptible for small changes in starting values (namely stepLength) by either failing with "negative discriminant" error message or, for smaller values of stepLength doesn't get to the possible maximum load. Did we something wrong?

The following file is a small example showing some of the behavior:

File example.in, with different options for load control

example.out
example
NonLinearStatic nsteps 1 nmsteps 1
# direct load control 
# - not converging, does never stop
# - steplength parameter ignored
nsteps  100  controllmode 1 rtolv 1e-04 MaxIter 100 stiffmode 2 lstype 0  steplength 0.1
# indirect load control
# - different steplength/minsteplength options tested
#nsteps  100  controllmode 0 rtolv 1e-04 MaxIter 1000 stiffmode 2 lstype 0  steplength 5e-5 minsteplength 5e-6
domain 3D
OutputManager tstep_all dofman_all element_all
ndofman 8 nelem 1 ncrosssect 1 nmat 1 nbc 2 nltf 1 nic 0
node 1 coords 3  0.0   0.0   0.0  bc 3 1 1 1
node 2 coords 3  0.01  0.0   0.0  bc 3 0 1 1
node 3 coords 3  0.01  0.01  0.0  bc 3 0 0 1 
node 4 coords 3  0.0   0.01  0.0  bc 3 1 0 1 
node 5 coords 3  0.0   0.0   0.01 bc 3 1 1 0 load 1 2
node 6 coords 3  0.01  0.0   0.01 bc 3 0 1 0 load 1 2
node 7 coords 3  0.01  0.01  0.01 bc 3 0 0 0 load 1 2
node 8 coords 3  0.0   0.01  0.01 bc 3 1 0 0 load 1 2
lspace 1 nodes 8 1 2 3 4 5 6 7 8  crossSect 1 mat 1 NIP 8
SimpleCS 1 thick 1.0
microplane_m4 1 d 0. nmp 61 n 0.2 E 2.5e+4 k1 1.e-4 k2 1000. k3 10. k4 150.  c3 4.0 c20 0.14 talpha 1.e-5
BoundaryCondition 1 prescribedvalue 0. loadTimeFunction 1
NodalLoad 2 components 3 0. 0. -2.500000e-05 loadTimeFunction 1
ConstantFunction 1 f(t) 1.0

  Elements

We often have problems with shear locking when using standard linear elements. Are the any plans to implement
non-conforming quadrilateral elements (4-node) that work in 3D domains (plate/shell/elements) or non-conforming linear
(8-node) bric elements? Unfortunately higher order (e.g. quadratric) elements wouldn't help because the introduce
difficulties concerning consisting cracking modeling in concrete.

Furthermore, are there plans to implement conforming quadrilateral elements for 3D domains?

  Materials

When working with reinforcement steels according to norms it is necessary to describe their material behaviour
as trilinear (1D, trusses) curve with elastic, hardening, and perfectly plastic part, or bilinear with strength
limit at the end of the hardening part. Can this be achieved with one of the implemented material models?

  Output

Is it possible the get further outputs, namely the error forces at nodes?

2

Re: Problems and question: Load control, elements, material models, output

stm wrote:

We tried to use oofem for the material nonlinear modeling of plain and reinforced concrete structures and
encountered several difficulties and questions:


  Load control

The load control mechanisms behaved unsatifactory in our tests in several ways:
If direct load control is used and one steps doesn't converge, a stiffness matrix update is made and iteration begins again which is desirable. But a stiffness update is also done if elastic stiffness is used (stiffMode 2) which makes no sense. Furthermore, solution process doesn't stop after a second bunch of maxIter iterations, even if nothing changed (which is of course always the case for elastic stiffness mode) and calculation cycles forever if not stopped manually.

For us it would be desirable that, when convergence of one load step cannot be achieved anymore, the calculation would continue with the next step. (Which of course means, that one has to check afterwards, whether the errors are only slightly about the convergence limit and the calculation converges in subsequent steps.)

Well, it depend which solver you are actually using.
In case of alm solver, if the convergence is not obtained within a given limit (error, max number of iterations) the solver tries to shorten load increment and switches to tangent stiffness, this is repeated four times, and if the convergence is not reached, the last achieved state is accepted regardless of error achieved and solution continues with a next step.
In case of NR (newton-raphson) solver, the step could not be reduced as the load increment is prescribed and loading is generally assumed to be non-proportional, so only equilibrium search is repeated with tangent stiffness updated each iteration to improve convergence. It is true, that some material models do not provide tangent stiffness formula, so when asked for tangent stiffness, they may return elastic stiffness, and this can lead to the behavior you describe. This ts not the problem of solver, but rather of material model.

I agree that the internal logic is not perfect for everybody, but what I can recommend is to break loading into several metasteps, save solution state (context) during computation, and if some problems in convergence appear you can restart the solution from saved state and before restarting, change load control parameters of future load steps .

If using direct load control the minStepLength parameter is ignored despite being mentioned in the documentation (actual step length is always 1.0) yielding a warning.

Right, direct load control assumes that the loading increment applied is given and could not be changed as in general, non-proportional loading is assumed.

The arclength method (indirect load control) didn't work always as expected. It did not yield the maximum loads that could be achieved with direct load control in larger models, is very susceptible for small changes in starting values (namely stepLength) by either failing with "negative discriminant" error message or, for smaller values of stepLength doesn't get to the possible maximum load. Did we something wrong?

This typically happens, when you control the solution process by badly chosen parameter. In general, within each step the alm requires to be controlled by a parameter which monotonically grows. By default, this parameter (arc length) is defined as a norm of displacement vector (plus a norm of load vector multiplied by scaling coefficient Phi) - but in many cases this parameter is not monotonically growing, then you have to select something else - particular displacement in displacement controlled test, crack opening, etc.

  Elements

We often have problems with shear locking when using standard linear elements. Are the any plans to implement
non-conforming quadrilateral elements (4-node) that work in 3D domains (plate/shell/elements) or non-conforming linear
(8-node) bric elements? Unfortunately higher order (e.g. quadratric) elements wouldn't help because the introduce
difficulties concerning consisting cracking modeling in concrete.

Furthermore, are there plans to implement conforming quadrilateral elements for 3D domains?


  Materials

When working with reinforcement steels according to norms it is necessary to describe their material behaviour
as trilinear (1D, trusses) curve with elastic, hardening, and perfectly plastic part, or bilinear with strength
limit at the end of the hardening part. Can this be achieved with one of the implemented material models?

  Output

Is it possible the get further outputs, namely the error forces at nodes?

All this is possible, but requires some programming work. We can certainly provide help in implementing new features, but not willing to actually do it alone.