Next: Frequency calculations Up: Filling and solving the Previous: Linear static analysis Contents

### Nonlinear calculations

For nonlinear calculations the solution is found by iteration. Because a step is possibly too large to obtain convergence, the option exists to subdivide the step into a finite number of increments. The size of the initial increment in a step is defined by the user (line beneath *STATIC and *DYNAMIC) and also the number of increments can be controlled by the user (parameter DIRECT). However, in most cases it is advisable to let the program determine the size of the increments, based on the convergence rate of the previous increments. The solution in each increment is obtained by iteration until the residual forces are small enough.

Therefore, the structure of nonlingeo for each increment looks as follows:

- before the first iteration

  - determine the load at the end of the increment (tempload.f)
  - for thermal analyses: determine the sink temperature for forced convection and cavity radiation boundary conditions (radflowload.f)
  - update the coefficients of nonlinear MPC's, if any.
  - if the topology of the MPC's changed (dependence of nonlinear MPC's on other linear or nonlinear ones): call remastruct.
  - prediction of the kinematic vectors
  - determination of the internal forces (results.f). The difference between the internal and the external forces are the residual forces. If the residual forces are small enough, the solution is found. If they are not, iteration goes on until convergence is reached. The residual forces are the driving forces for the next iteration.

- in each iteration

  - for thermal analyses: determine the sink temperature for forced convection and cavity radiation boundary conditions (radflowload.f)
  - update the coefficients of nonlinear MPC's, if any.
  - if the topology of the MPC's changed (dependence of nonlinear MPC's on other linear or nonlinear ones): call remastruct.
  - construct the system of equations and determination of the external forces (mafillsm.f); not done for explicit dynamic calculations.
  - for the first iteration: subtracting the internal from the external forces to obtain the residual forces; for explicit dynamic calculations this includes the determination of the external forces in routine rhs.f
  - solving the system of equations with in spooles.c or preiter.c. For explict dynamic calculations explicit calculation of the solution (no system needs to be solved).
  - calculating the internal forces in results.f
  - deriving the new residual by subtracting the updated internal forces from the external forces. If these are small enough iteration ends. The convergence criteria are closely related to those used in ABAQUS.

- after the final iteration
  - determining the required results for all degrees of freedom, starting from the displacement solution for the active degrees of freedom. This is done in subroutine results.f, including any storage in the .dat file.
  - storing the results in the .frd file. For structures not exhibiting cyclic symmetry this is performed in routine out.f, for cyclic symmetric structures routine frdcyc.c is called before calling out. If an error occurred during the matrix fill the output is reduced to the pure geometry.

Next: Frequency calculations Up: Filling and solving the Previous: Linear static analysis Contents