Chapter 1
INTRODUCTION AND STRUCTURAL ANALYSIS
Many practical problems in engineering are either extremely difficult or impossible to solve by conventional analytical methods. Such methods involve finding mathematical equations which define the required variables. For example, the distribution of stresses and displacements in a solid component, or of pressure and velocities in the flow of a fluid, might be required. In the past it was common practice to simplify such problems to the point where an analytical solution could be obtained which, it was hoped, bore some resemblance to the solution of the real problem. Because of the uncertainties involved in such a procedure, large āfactors of safetyā were introduced, which could often be described more accurately as factors of ignorance. With the relatively recent advent of high-speed electronic digital computers, however, the emphasis in engineering analysis has moved towards more versatile numerical methods. One class of such methods has been given the name finite element methods.
Finite element methods originated in the field of structural analysis and have been widely developed and exploited in the aerospace industries since the 1950s and 1960s. Such methods are firmly established in civil and aeronautical engineering. Finite element methods are also widely used by mechanical engineers, particularly for the analysis of stress in solid components. Their success has been such that experimental methods involving brittle coatings, strain gauges or photoelastic effects are now to a large extent obsolete. Problems in fluid mechanics and heat transfer are, however, less commonly solved by finite element methods. One possible reason for this is that such problems are made difficult not so much by geometric complexities as by the nature of the physical processes involved.
All finite element methods involve dividing the physical systems, such as structures, solid or fluid continua, into small subregions or elements. Each element is an essentially simple unit, the behaviour of which can be readily analysed. The complexities of the overall systems are accommodated by using large numbers of elements, rather than by resorting to the sophisticated mathematics required by many analytical solutions. One of the main attractions of finite element methods is the ease with which they can be applied to problems involving geometrically complicated systems. The price that must be paid for flexibility and simplicity of individual elements is in the amount of numerical computation required. Very large sets of simultaneous algebraic equations have to be solved, and this can only be done economically with the aid of digital computers. Fortunately, finite element methods may be readily programmed for this purpose.
The object of this book is to provide an introduction to finite element methods, particularly those applicable to continuum mechanics problems of stress analysis, fluid mechanics and heat transfer. For the most part, only the simplest of such methods are described in detail. Problems considered are mainly of the equilibrium type, involving either statically loaded components or steady fluid flows. Also, although finite element methods are applicable to either one-, two- or three-dimensional problems, the main emphasis here is on two-dimensional ones. A number of practical case studies, including computer programs and numerical results, are examined in detail, and problems and solutions are provided at the ends of the chapters.
After a brief review of the subject of computer programming, the remainder of this chapter is devoted to simple types of structural analysis which serve to introduce finite element methods. In Chapter 2 a wide range of continuum mechanics problems is reviewed, and finite element methods for solving them are described in subsequent chapters.
1.1. Computer Programming
In this book a considerable amount of attention is given to computer programs for solving engineering problems using finite element methods. The programming language used is Fortran, whose name is derived from Formula translation, and which is particularly suitable for engineering and scientific applications. The programs presented here were run using a Fortran 95 compiler. While more recent versions of Fortran have been published, the enhancements they offer are not of significance to the type of simple programming of numerical computation procedures employed here.
The Fortran language is almost entirely independent of the particular computer used. Modern computers, whether desktop or laptop, work in binary arithmetic. Both numbers and characters are represented and stored as a number of binary digits or ābitsā, and these bits are grouped together in ābytesā (1 byte = 8 bits). Individual numbers are usually represented by either 32 bits (4 bytes) or 64 bits (8 bytes) depending on both the computer and whether the double precision option is selected in the Fortran program. If the number of bits is small the precision of stored numbers is relatively low and significant roundoff errors may be accumulated in the course of a calculation, depending on the method of calculation used. All the case studies described in this book were run using 32-bit number storage. For reasons to be discussed later this is generally adequate, particularly given the numerical methods used.
The style of writing Fortran programs should be such as to make the coding simple to follow and check, and at the same time efficient in terms of execution time and memory. With these requirements in mind the programs in this book use variable names which are readily identifiable with the physical or mathematical quantities they represent. Whenever possible the same names are used throughout, their definitions being listed at the beginning of the book. Large programs are divided into shorter subprograms which can be written, developed and tested separately. Also, comment statements are used liberally, both to explain the coding and to separate successive sets of statements for improved readability. For the same reason, a uniform system of statement numbering is used within each subprogram, input and output FORMAT statements being numbered from 51 and 61 respectively. This last convention is a hangover from the Fortran tradition in which the (magnetic tape) unit number for input was 5, while that for output was 6, the same digits being used to start the corresponding FORMAT statement numbers.
Using either a desktop or laptop, input data for a program can be entered from the keyboard as required. Alternatively, a data file can be prepared and stored before the program is run. In this book, the latter approach is adopted. This is because in practice, programs need to be run several times, with mostly the same input data, requiring only small changes to the data file. Similarly, computed results can be output to either the computer screen or a stored file. The latter is preferred here because the file provides a potentially permanent record. The convention is adopted of naming the input file DATA and the main output file RESULTS.
1.2. Structural Analysis
The analysis of engineering structures provides a natural introduction to finite element methods. In this section the analysis of very simple structures is considered, and a case study concerning a simple rigid-jointed structure is described in Section 1.3.
1.2.1. Pin-jointed structures
Among the simplest types of structures are frameworks consisting of relativ...