Ebook
Programming the Finite Element Method, 4th EditionISBN: 9780470011249
646 pages
June 2005

Acknowledgement.
1. Preliminaries: Computer Strategies.
1.1 Introduction.
1.2 Hardware.
1.3 Memory management.
1.4 Vector processors.
1.5 Parallel processors.
1.6 BLAS libraries.
1.7 MPI libraries.
1.8 Applications software.
1.8.1 Arithmetic.
1.8.2 Conditions.
1.8.3 Loops.
1.9 Array features.
1.9.1 Dynamic arrays.
1.9.2 Broadcasting.
1.9.3 Constructors.
1.9.4 Vector subscripts.
1.9.5 Array sections.
1.9.6 Wholearray manipulations.
1.9.7 Intrinsic procedures for arrays.
1.9.8 Additional Fortran 95 features.
1.9.9 Subprogram libraries.
1.9.10 Structured programming.
1.10 Conclusions.
References.
2. Spatial Discretisation by Finite Elements.
2.1 Introduction.
2.2 Rod element.
2.2.1 Rod stiffness matrix.
2.2.2 Rod mass element.
2.3 The eigenvalue equation.
2.4 Beam element.
2.4.1 Beam element stiffness matrix.
2.4.2 Beam element mass matrix.
2.5 Beam with an axial force.
2.6 Beam on an elastic foundation.
2.7 General remarks on the discretisation process.
2.8 Alternative derivation of element stiffness.
2.9 Twodimensional elements: plane strain and plane stress.
2.10 Energy approach.
2.11 Plane element mass matrix.
2.12 Axisymmetric stress and strain.
2.13 Threedimensional stress and strain.
2.14 Platebending element.
2.15 Summary of element equations for solids.
2.16 Flow of fluids: Navier–Stokes equations.
2.17 Simplified flow equations.
2.17.1 Steady state.
2.17.2 Transient state.
2.17.3 Advection.
2.18 Further coupled equations: Biot consolidation.
2.19 Conclusions.
References.
3. Programming Finite Element Computations.
3.1 Introduction.
3.2 Local coordinates for quadrilateral elements.
3.2.1 Numerical integration for quadrilaterals.
3.2.2 Analytical integration for quadrilaterals .
3.3 Local coordinates for triangular elements.
3.3.1 Numerical integration for triangles.
3.4 Multielement assemblies.
3.5 “Elementbyelement” or “Meshfree” techniques.
3.5.1 Conjugate gradient method.
3.5.2 Preconditioning.
3.5.3 Unsymmetric systems.
3.5.4 Symmetric nonpositive definite equations.
3.5.5 Symmetric eigenvalue systems.
3.6 Incorporation of boundary conditions.
3.7 Programming using building blocks.
3.7.1 Black box routines.
3.7.2 Special purpose routines.
3.7.3 Plane elastic analysis using quadrilateral elements.
3.7.4 Plane elastic analysis using triangular elements.
3.7.5 Axisymmetric strain of elastic solids.
3.7.6 Plane steady laminar fluid flow.
3.7.7 Mass matrix formation.
3.7.8 Higherorder 2D elements.
3.7.9 Threedimensional elements.
3.7.10 Assembly of elements.
3.8 Solution of equilibrium equations.
3.9 Evaluation of eigenvalues and eigenvectors.
3.9.1 Jacobi algorithm.
3.9.2 Lanczos algorithm.
3.10 Solution of first order time dependent problems.
3.11 Solution of coupled Navier–Stokes problems.
3.12 Solution of coupled transient problems.
3.12.1 Absolute load version.
3.12.2 Incremental load version.
3.13 Solution of second order time dependent problems.
3.13.1 Modal superposition.
3.13.2 Newmark or Crank–Nicolson method.
3.13.3 Wilson’s method.
3.13.4 Explicit methods and other storagesaving strategies.
References.
4. Static Equilibrium of Structures.
4.1 Introduction.
Program 4.1 Onedimensional analysis of axially loaded elastic rods using 2node rod elements.
Program 4.2 Analysis of elastic pinjointed frames using 2node rod elements in two or three dimensions.
Program 4.3 Analysis of elastic beams using 2node beam elements (elastic foundation optional).
Program 4.4 Analysis of elastic rigidjointed frames using 2node beam/rod elements in two or three dimensions.
Program 4.5 Analysis of elastic–plastic beams or rigidjointed frames using 2node beam or beam/rod elements in one, two or three dimensions.
Program 4.6 Stability (buckling) analysis of elastic beams using 2node beam elements (elastic foundation optional).
Program 4.7 Analysis of plates using 4node rectangular plate elements. Homogeneous material with identical elements. Mesh numbered in x or ydirection.
4.2 Concluding remarks.
4.3 Exercises.
References.
5. Static Equilibrium of Linear Elastic Solids.
5.1 Introduction.
Program 5.1 Plane or axisymmetric strain analysis of an elastic solid using 3, 6, 10, or 15node rightangled triangles or 4, 8, or 9node rectangular quadrilaterals. Mesh numbered in x(r) or y(z)direction.
Program 5.2 Nonaxisymmetric analysis of an axisymmetric elastic solid using 8node rectangular quadrilaterals. Mesh numbered in r or zdirection.
Program 5.3 Threedimensional analysis of an elastic solid using 8, 14, or 20node brick hexahedra. Mesh numbered in xz planes then in the ydirection. Program 5.4 General two (plane strain) or threedimensional analysis of elastic solids.
Program 5.5 Threedimensional strain of an elastic solid using 8, 14, or 20node brick hexahedra. Mesh numbered in xz planes then in the ydirection. No global stiffness matrix assembly. Diagonally preconditioned conjugate gradient solver.
Program 5.6 Threedimensional strain of an elastic solid using 8, 14, or 20node brick hexahedra. Mesh numbered in xz planes then in the ydirection. No global stiffness matrix assembly. Diagonally preconditioned conjugate gradient solver. Vectorised version.
5.2 Exercises.
References.
6. Material Nonlinearity.
6.1 Introduction.
6.2 Stress–strain behaviour.
6.3 Stress invariants.
6.4 Failure criteria.
6.4.1 Von Mises.
6.4.2 Mohr–Coulomb and Tresca.
6.5 Generation of body loads.
6.6 Viscoplasticity.
6.7 Initial stress.
6.8 Corners on the failure and potential surfaces.
Program 6.1 Plane strain bearing capacity analysis of an elastic–plastic (von Mises) material using 8node rectangular quadrilaterals. Viscoplastic strain method.
Program 6.2 Plane strain bearing capacity analysis of an elastic–plastic (von Mises) material using 8node rectangular quadrilaterals. Viscoplastic strain method. No global stiffness matrix assembly. Diagonally preconditioned conjugate gradient solver.
Program 6.3 Plane strain slope stability analysis of an elastic–plastic (Mohr–Coulomb) material using 8node rectangular quadrilaterals. Viscoplastic strain method.
Program 6.4 Plane strain earth pressure analysis of an elastic–plastic (Mohr–Coulomb) material using 8node rectangular quadrilaterals. Initial stress method.
6.9 Elastoplastic rate integration.
6.9.1 Forward Euler method.
6.9.2 Backward Euler method.
6.10 Tangent stiffness approaches.
6.10.1 Inconsistent tangent matrix.
6.10.2 Consistent tangent matrix.
6.10.3 Convergence criterion.
Program 6.5 Plane strain bearing capacity analysis of an elastic–plastic (von Mises) material using 8node rectangular quadrilaterals. Initial stress method. Tangent stiffness. Consistent return algorithm.
Program 6.6 Plane strain bearing capacity analysis of an elastic–plastic (von Mises) material using 8node rectangular quadrilaterals. Initial stress method. Tangent stiffness. Consistent return algorithm. No global stiffness matrix assembly. Diagonally preconditioned conjugate gradient solver.
6.11 The geotechnical processes of embanking and excavation.
6.11.1 Embanking.
Program 6.7 Plane strain construction of an elastic–plastic (Mohr–Coulomb) embankment in layers on a foundation using 8node quadrilaterals. Viscoplastic strain method.
6.11.2 Excavation.
Program 6.8 Plane strain construction of an elastic–plastic (Mohr–Coulomb) excavation in layers using 8node quadrilaterals. Viscoplastic strain method.
6.12 Undrained analysis.
Program 6.9 Axisymmetric “undrained” strain of an elastic–plastic (Mohr–Coulomb) solid using 8node rectangular quadrilaterals. Viscoplastic strain method.
Program 6.10 Threedimensional strain analysis of an elastic–plastic (Mohr–Coulomb) slope using 20node hexahedra. Viscoplastic strain method.
Program 6.11 Threedimensional strain analysis of an elastic–plastic (Mohr–Coulomb) slope using 20node hexahedra. Viscoplastic strain method. No global stiffness matrix assembly. Diagonally preconditioned conjugate gradient solver.
6.13 Exercises.
References.
7. Steady State Flow.
7.1 Introduction.
Program 7.1 Onedimensional analysis of steady seepage using 2node line elements.
Program 7.2 Plane or axisymmetric analysis of steady seepage using 4node rectangular quadrilaterals. Mesh numbered in x(r) or y(z) direction.
Program 7.3 Analysis of plane freesurface flow using 4node quadrilaterals. “Analytical” form of element conductivity matrix.
Program 7.4 General two (plane) or threedimensional analysis of steady seepage.
Program 7.5 General two (plane) or threedimensional analysis of steady seepage.
No global conductivity matrix assembly. Diagonally preconditioned conjugate gradient solver.
7.2 Exercises.
References.
8. Transient Problems: First Order (Uncoupled).
8.1 Introduction.
Program 8.1 Onedimensional consolidation analysis using 2node line elements. Implicit time integration using the “theta” method.
Program 8.2 Plane or axisymmetric consolidation analysis using 4node rectangular quadrilaterals. Mesh numbered in x(r) or y(z)direction. Implicit time integration using the “theta” method.
8.2 Meshfree Strategies in Transient Analysis.
Program 8.3 Plane or axisymmetric consolidation analysis using 4node rectangular quadrilaterals. Mesh numbered in x(r) or y(z)direction. Implicit time integration using the “theta” method. No global stiffness matrix assembly. Diagonal preconditioner conjugate gradient solver.
Program 8.4 Plane or axisymmetric analysis of the consolidation equation using 4node rectangular quadrilaterals. Mesh numbered in x(r) or y(z)direction. Explicit time integration using the “theta = 0” method.
Program 8.5 Plane or axisymmetric analysis of the consolidation equation using 4node rectangular quadrilaterals. Mesh numbered in x(r) or y(z)direction. “theta” method using an elementbyelement product algorithm.
8.3 Comparison of Programs 8.2, 8.3, 8.4, and 8.5.
Program 8.6 General two (plane) or threedimensional analysis of the consolidation equation. Implicit time integration using the “theta” method.
Program 8.7 Plane analysis of the diffusion–convection equation using 4node rectangular quadrilaterals. Implicit time integration using the “theta” method. Selfadjoint transformation.
Program 8.8 Plane analysis of the diffusion–convection equation using 4node rectangular quadrilaterals. Implicit time integration using the “theta” method. Untransformed solution.
8.4 Exercises.
References.
9. Coupled Problems.
9.1 Introduction.
Program 9.1 Analysis of the plane steady state Navier–Stokes equation using 8node rectangular quadrilaterals for velocities coupled to 4node rectangular quadrilaterals for pressures. Mesh numbered in x or ydirection. Freedoms numbered in the order upv.
Program 9.2 Analysis of the plane steady state Navier–Stokes equation using 8node rectangular quadrilaterals for velocities coupled to 4node rectangular quadrilaterals for pressures. Mesh numbered in x or ydirection. Freedoms numbered in the order upv. Elementbyelement solution using BiCGStab(l) with no preconditioning. No global matrix assembly.
Program 9.3 Plane strain consolidation analysis of a Biot poroelastic solid using 8node rectangular quadrilaterals for displacements coupled to 4node rectangular quadrilaterals for pressures. Freedoms numbered in the order uvu_{w}. Incremental version.
Program 9.4 Plane strain consolidation analysis of a Biot poroelasticplastic (Mohr–Coulomb) material using 8node rectangular quadrilaterals for displacements coupled to 4node rectangular quadrilaterals for pressures. Freedoms numbered in the order uvu_{w}. Incremental version. Viscoplastic strain method.
Program 9.5 Plane strain consolidation analysis of a Biot poroelastic solid using 8node rectangular quadrilaterals for displacements coupled to 4node rectangular quadrilaterals for pressures. Freedoms numbered in the order uvu_{w}. Absolute load version. No global stiffness matrix assembly. Diagonally preconditioned conjugate gradient solver.
9.2 Exercises.
References.
10. Eigenvalue Problems.
10.1 Introduction.
Program 10.1 Eigenvalue analysis of elastic beams using 2node beam elements. Lumped mass.
Program 10.2 Eigenvalue analysis of an elastic solid in plane strain using 4 or 8node rectangular quadrilaterals. Lumped mass. Mesh numbered in x or ydirection.
Program 10.3 Eigenvalue analysis of an elastic solid in plane strain using 4node rectangular quadrilaterals. Lanczos Method. Consistent mass. Mesh numbered in x or ydirection.
Program 10.4 Eigenvalue analysis of an elastic solid in plane strain using 4node rectangular quadrilaterals. Lanczos Method. Lumped mass. Elementbyelement formulation. Mesh numbered in x or ydirection.
10.2 Exercises.
References.
11. Forced Vibrations.
11.1 Introduction.
Program 11.1 Forced vibration analysis of elastic beams using 2node beam elements. Consistent mass. Newmark time stepping.
Program 11.2 Forced vibration analysis of an elastic solid in plane strain using 4 or 8node rectangular quadrilaterals. Lumped mass. Mesh numbered in x or ydirection. Modal superposition.
Program 11.3 Forced vibration analysis of an elastic solid in plane strain using rectangular 8node quadrilaterals. Lumped or consistent mass. Mesh numbered in x or ydirection. Implicit time integration using the “theta” method.
Program 11.4 Forced vibration analysis of an elastic solid in plane strain using rectangular 8node quadrilaterals. Lumped or consistent mass. Mesh numbered in x or ydirection. Implicit time integration using Wilson’s method.
Program 11.5 Forced vibration analysis of an elastic solid in plane strain using rectangular uniform size 4node quadrilaterals. Mesh numbered in the xor ydirection. Lumped or consistent mass. Mixed explicit/implicit time integration.
Program 11.6 Forced vibration analysis of an elastic solid in plane strain using rectangular 8node quadrilaterals. Lumped or consistent mass. Mesh numbered in x or ydirection. Implicit time integration using the “theta” method. No global matrix assembly. Diagonally preconditioned conjugate
gradient solver.
Program 11.7 Forced vibration analysis of an elastic–plastic (von Mises) solid in plane strain using rectangular 8node quadrilateral elements. Lumped mass. Mesh numbered in x or ydirection. Explicit time integration.
11.2 Exercises.
References.
12. Parallel Processing of Finite Element Analyses.
12.1 Introduction.
12.2 Differences between parallel and serial programs.
12.2.1 Parallel libraries.
12.2.2 Global variables.
12.2.3 MPI library routines.
12.2.4 The pp appendage.
12.2.5 Reading and writing.
12.2.6 Problemspecific boundary condition routines.
12.2.7 rest instead of nf.
12.2.8 Gathering and scattering.
12.2.9 Reindexing.
12.2.10 Domain composition.
12.2.11Load balancing.
Program 12.1 Three dimensional analysis of an elastic solid. Compare Program 5.5.
Program 12.2 Three dimensional analysis of an elastoplastic (Mohr–Coulomb) solid. Compare Program 6.11.
Program 12.3 Three dimensional Laplacian flow. Compare Program 7.5.
Program 12.4 Three dimensional transient flow implicit analysis in time. Compare Program 8.3.
Program 12.5 Three dimensional transient flowexplicit analysis in time. Compare Program 8.4.
Program 12.6 Three dimensional steady state Navier–Stokes analysis. Compare Program 9.2.
Program 12.7 Threedimensional analysis of Biot poroelastic solid. Compare Program 9.2.
Program 12.8 Eigenvalue analysis of threedimensional elastic solid. Compare Program 10.4.
Program 12.9 Forced vibration analysis of a threedimensional elastic solid. Implicit integration in time. Compare Program 11.4.
Program 12.10 Forced vibration analysis of threedimensional elastoplastic solid. Explicit integration in time. Compare Program 11.5.
12.3 Performance data for a “Beowulf” PC cluster.
12.4 Conclusions.
References.
A. Equivalent Nodal Loads.
B. Shape Functions and Element Node Numbering.
C. Plastic Stress–strain Matrices and Plastic Potential Derivatives.
D. main Library Subroutines.
E. geom Library Subroutines.
F. Parallel Library Subroutines.
Author Index.
Subject Index.
Professor Griffiths is Professor of Civil Engineering, Division of Engineering at the Colorado School of Mines.
 Includes parallelised programs using MPI (Message Passage Interface)
 Gives an updated version of Fortran (all the Fortran programs and subroutines are listed in full in the text but will also be made available on the Internet via anonymous ftp)
 Provides a clear outline of modular programming philosophy
 Includes more than 60 programs covering a wide range of problems in engineering and science.
 Includes exercises for students to solve