We have seen in the previous chapters that the solution to the nonlinear equilibrium equations is basically achieved using the Newton–Raphson iterative method. In addition, in a finite element context it is advisable to apply the external forces in a series of increments. This has the advantage of enhancing the converging properties of the solution and, where appropriate, provides possible intermediate equilibrium states. Moreover, for path-dependent materials such as those exhibiting plasticity, these intermediate states represent the loading path which needs to be accurately followed. Furthermore, it is clear that the two fundamental quantities that facilitate the Newton–Raphson solution are the residual force and the tangent matrix. In this chapter we shall describe the MATLAB implementation of the solution procedure in the teaching program FLagSHyP (Finite element Large Strain Hyperelasto-plastic Program).
It is expected that the reader already has some familiarity with the computer implementation of the finite element method in the linear context. Consequently, this chapter will emphasize only those aspects of the implementation that are of particular relevance in the nonlinear finite deformation context.
The program description includes user instructions, a dictionary of variables and functions, and sample input and output for a few typical examples. The program can deal with three-dimensional truss elements and a number of twodimensional and three-dimensional elements, together with a variety of compressible and nearly incompressible hyperelastic constitutive equations including simple Von Mises hyperelastic–plastic behavior. It can be obtained, together with sample data, as a download from the website www.flagshyp.com. Alternatively, it can be obtained by email request to any of the authors: firstname.lastname@example.org, email@example.com or firstname.lastname@example.org.
The master m-file FLagSHyP.m, which controls the overall organization of the program, is divided into three sections. The first section includes a series of statements designed to add the necessary directories to the path of the program. The second section includes the function input_data_and_initialisation.m, which is devoted to the reading of input/control data and the initialization of critical variables including equivalent nodal forces and the initial tangent stiffness matrix. The third section calls one of the three fundamental algorithms incorporated into FLagSHyP, depending on the problem-dependent control variables chosen by the user:
ALG1 The function Newton_Raphson_algorithm.m is the basic Newton–Raphson algorithm, to be explained thoroughly in the remainder of this chapter.