Next: Frequency calculations
Up: Filling and solving the
Previous: Linear static analysis
Contents
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
guido dhondt
2007-02-18