Steps and meta steps in OOFEM

OOFEM makes use of the socalled meta steps to allow the user defining different computing conditions in the same model.

As the Programmers’ manual states:
“The solution steps are grouped together into so called meta steps. The meta step can be thought as a sequence of solution steps, with the same set of atributes […]”
Therefore, we can define several meta steps and several steps, with the number of steps being always equal or greater than the number of meta steps. This is interesting when, for example, we need to define different computing parameters at different stages of our model.
Let’s think of a model where we have snapback and, therefore, we cannot perform our computation with a direct control of displacement or loading. In this type of cases, it is usual to make use of the Arc Length method. In this case, we could use the Arc Length method from the very beginning of our computing and only one metastep should be required. But usually before finding a problem of this kind, the load/displacement can be applied using a direct control, which is much more efficient and less time consuming than the Arc Length method. Therefore, in order to save time, we can define two meta steps, one for a first stage using a direct control and another one for a second stage using the Arc Length method.
To understand this better, let’s use the following example (in this example, the use of meta steps is not very useful, since both meta steps are defined with very similar parameters, but it can help to understand the concepts defined above):

testMetaSteps.out
playing with steps and metasteps
# rectangular specimen
#
# 4------------------3
# | |
# 1------------------2
#
NonLinearStatic nsteps 10 nmsteps 2 nmodules 1
nsteps 3 controlmode 1 rtolv 0.001 MaxIter 2000 stiffmode 1 refloadmode 1
nsteps 7 controlmode 1 rtolv 0.00001 MaxIter 2000 stiffmode 1 refloadmode 1
vtkxml tstep_all domain_all primvars 1 1 vars 2 1 4 stype 2
domain 2dPlaneStress
OutputManager tstep_all dofman_all element_all
ndofman 4 nelem 1 ncrosssect 1 nmat 1 nbc 3 nic 0 nltf 3
Node 1 coords 3 0.0 0.0 0.0 bc 2 1 1
Node 2 coords 3 4.0 0.0 0.0 bc 2 0 1 load 1 2
Node 3 coords 3 4.0 3.0 0.0 bc 2 0 0 load 2 2 3
Node 4 coords 3 0.0 3.0 0.0 bc 2 1 0 load 1 3
PlaneStress2d 1 nodes 4 1 2 3 4 mat 1 NIP 4 crossSect 1
SimpleCS 1 thick 1.0 width 1.0
IsoLE 1 d 0. E 15.0 n 0.25 talpha 1.0
BoundaryCondition 1 loadTimeFunction 1 prescribedvalue 0.0
NodalLoad 2 loadTimeFunction 2 Components 2 1.0 0.0
NodalLoad 3 loadTimeFunction 3 Components 2 0.0 1.0
ConstantFunction 1 f(t) 1.0
PiecewiseLinFunction 2 npoints 2 t 3 0. 1. 9. f(t) 3 0. 1. 1.
PiecewiseLinFunction 3 npoints 2 t 3 0. 4. 9. f(t) 3 0. 0. 1.

In this model, a simple quadrilateral 2D element under plane stress is loaded with two different loads. One of them, that in the X direction, starts at t=0 and reaches its maximum value at t=1; this value remains constant until t=9. The other load, that in the Y direction, starts at t=4 and increases its value linearly until t=9. The following figures show the shape of these functions.

In this model, two metasteps are defined, one for the first three steps and another one for the seven remaining steps. The following figure sketches this.

Leave a comment