The terms step, increment, and iteration and two subsidiary terms—frame and attempt can be conceptually confusing to an Abaqus beginner. It is important that you clearly understand the difference between an analysis step, a load increment, and an iteration.
A basic concept in Abaqus is the division of the problem history into steps. A step is any convenient phase of the loading history—a thermal transient, a static, a dynamic transient, etc. In its simplest form, a step can be just a static analysis of a load change from one magnitude to another.
For each step, the user chooses an analysis procedure. This choice defines the type of analysis to perform during the step: static stress analysis, dynamic stress analysis, eigenvalue buckling, transient heat transfer analysis, etc.:
The rest of the step definition consists of load, boundary (in Load module) and output request (in Step module) specifications.
Why we use several steps?
Any real problem will usually consist of more than one step during a simulation. This might consist of a loading step or a step where we apply boundary conditions.
Sometimes, we use the steps to define different phases of loading. An example would be the simulation of a simple bow and arrow:
- Step 1: stringing the bow to pretension the bowstring.
- Step 2: pulling back the string with an arrow, thus storing more strain energy in the system.
- Step 3: releasing the bowstring. The strain energy that stored in the system by pulling back the bowstring in Step 2 imparts kinetic energy to the arrow and causes it to leave the bow.
Sometimes when complex load history is present, we need to define multiple steps to ease the process of solving for Abaqus. As an example, consider a schematic representation of the steps in the manufacture of a stainless steel sink:
The sink is formed from sheet steel using a punch, a die, and a blank holder. This forming simulation will consist of a number of steps:
- Step 1: the application of blank holder pressure
- Step 2: simulating the punching operation
- Step 3: the removal of the tooling, allowing the sink to spring back into its final shape
An increment is part of a step. In nonlinear analyses, the total load applied in a step is broken into smaller increments so that the nonlinear solution path can be followed. Therefore, “Increment” is the part of the total load that is applied gradually.
In Abaqus/Standard you suggest the size of the first increment, and Abaqus/Standard automatically chooses the size of the subsequent increments. In Abaqus/Explicit the default time incrementation is fully automatic and does not require user intervention (however you can change it). Because the explicit method is conditionally stable, there is a stability limit for the time increment. It mainly depends on the length of the smallest element.
When you know what an increment is, you can assume that a solution step (we use the term often when talking about numerical algorithms) is almost the same as that of an increment in Abaqus. To clarify with an example, if we apply a load in 1000 solution steps for a time period of 5 s, then the time step size or increment is 0.005 s.
At the end of each increment, the structure is in (approximate) equilibrium and results are available for writing to the output database or results in files. The increments at which you select results to be written to the output database file are called “frames”. The max no. of frames in an analysis can be no. of increments but due to saving storage memory, you can request fewer frames:
If you would have observed so far, we keep moving deeper after every definition. I mean, “Step” is the general and logical categorization of the problem at hand. “Increment” in one step deeper and is a subset of a “Step”. All of these terms are applicable both in explicit and implicit methods.
Then comes “Iteration” where we go further into a “Step”. This term is meaningful just when we are using an implicit solver (Abaqus/standard).
As you know, in the case of an implicit solver, we seek the equilibrium after at every increment by checking the difference between externally applied force and internal reaction force. This difference is called residual.
Abaqus uses a tolerance value (a value close to zero) defined in its solver settings. Till the difference between the forces come under this tolerance value, the solver carries several “iterations”. Therefore, Abaqus carry out iterations within an increment in order to attain equilibrium.
There are no iterations in an ABAQUS/Explicit analysis.
As explained before, Abaqus/Standard choose the size of the increments automatically (except for the first increment). Every increment size selection in Abaqus is called an “attempt”. If Abaqus is unable to find a solution with selected increment size after iterating several times, it makes a cutback in the increment size and begins a new attempt. There are no attempts in an Abaqus/Explicit analysis.