Programming the Finite Element Method, 5th EditionISBN: 9781119973348
682 pages
November 2013

Many students, engineers, scientists and researchers have benefited from the practical, programmingoriented style of the previous editions of Programming the Finite Element Method, learning how to develop computer programs to solve specific engineering problems using the finite element method.
This new fifth edition offers timely revisions that include programs and subroutine libraries fully updated to Fortran 2003, which are freely available online, and provides updated material on advances in parallel computing, thermal stress analysis, plasticity return algorithms, convection boundary conditions, and interfaces to third party tools such as ParaView, METIS and ARPACK. As in the previous editions, a wide variety of problem solving capabilities are presented including structural analysis, elasticity and plasticity, construction processes in geomechanics, uncoupled and coupled steady and transient fluid flow and linear and nonlinear solid dynamics.
Key features:
• Updated to take into account advances in parallel
computing as well as new material on thermal stress
analysis
• Programs use an updated version of Fortran 2003
• Includes exercises for students
• Accompanied by website hosting software
Programming the Finite Element Method, Fifth Edition is an ideal textbook for undergraduate and postgraduate students in civil and mechanical engineering, applied mathematics and numerical analysis, and is also a comprehensive reference for researchers and practitioners.
Further information and source codes described in this text can
be accessed at the following web sites:
• www.inside.mines.edu/~vgriffit
/PFEM5 for the serial programs from Chapters 411
• www.parafem.org.uk
for the parallel programs from Chapter 12
Preface to Fifth Edition xv
Acknowledgements xvii
1 Preliminaries: Computer Strategies 1
1.1 Introduction 1
1.2 Hardware 2
1.3 Memory Management 2
1.4 Vector Processors 3
1.5 Multicore Processors 3
1.6 Coprocessors 4
1.7 Parallel Processors 4
1.8 Applications Software 5
1.9 Array Features 9
1.10 Thirdparty Libraries 17
1.11 Visualisation 18
1.12 Conclusions 23
References 24
2 Spatial Discretisation by Finite Elements 25
2.1 Introduction 25
2.2 Rod Element 25
2.3 The Eigenvalue Equation 28
2.4 Beam Element 29
2.5 Beam with an Axial Force 31
2.6 Beam on an Elastic Foundation 32
2.7 General Remarks on the Discretisation Process 33
2.8 Alternative Derivation of Element Stiffness 33
2.9 Twodimensional Elements: Plane Stress 35
2.10 Energy Approach and Plane Strain 38
2.11 Plane Element Mass Matrix 40
2.12 Axisymmetric Stress and Strain 40
2.13 Threedimensional Stress and Strain 42
2.14 Plate Bending Element 44
2.15 Summary of Element Equations for Solids 47
2.16 Flow of Fluids: Navier–Stokes Equations 47
2.17 Simplified Flow Equations 50
2.18 Further Coupled Equations: Biot Consolidation 54
2.19 Conclusions 56
References 56
3 Programming Finite Element Computations 59
3.1 Introduction 59
3.2 Local Coordinates for Quadrilateral Elements 59
3.3 Local Coordinates for Triangular Elements 64
3.4 MultiElement Assemblies 66
3.5 ‘ElementbyElement’ Techniques 68
3.6 Incorporation of Boundary Conditions 72
3.7 Programming using Building Blocks 75
3.8 Solution of Equilibrium Equations 95
3.9 Evaluation of Eigenvalues and Eigenvectors 96
3.10 Solution of FirstOrder TimeDependent Problems 99
3.11 Solution of Coupled Navier–Stokes Problems 103
3.12 Solution of Coupled Transient Problems 104
3.13 Solution of SecondOrder TimeDependent Problems 106
4 Static Equilibrium of Structures 115
4.1 Introduction 115
4.2 Conclusions 157
4.3 Glossary of Variable Names 157
4.4 Exercises 159
References 168
5 Static Equilibrium of Linear Elastic Solids 169
5.1 Introduction 169
5.2 Glossary of Variable Names 221
5.3 Exercises 224
References 232
6 Material Nonlinearity 233
6.1 Introduction 233
6.2 Stress–strain Behaviour 235
6.3 Stress Invariants 236
6.4 Failure Criteria 238
6.5 Generation of Body Loads 240
6.6 Viscoplasticity 240
6.7 Initial Stress 242
6.8 Corners on the Failure and Potential Surfaces 243
6.9 Elastoplastic Rate Integration 270
6.10 Tangent Stiffness Approaches 275
6.11 The Geotechnical Processes of Embanking and Excavation 289
6.12 Undrained Analysis 305
6.13 Glossary of Variable Names 322
6.14 Exercises 327
References 331
7 Steady State Flow 333
7.1 Introduction 333
7.2 Glossary of Variable Names 359
7.3 Exercises 361
References 367
8 Transient Problems: First Order (Uncoupled) 369
8.1 Introduction 369
8.2 Comparison of Programs 8.4, 8.5, 8.6 and 8.7 397
8.3 Glossary of Variable Names 416
8.4 Exercises 419
References 422
9 Coupled Problems 423
9.1 Introduction 423
9.2 Glossary of Variable Names 454
9.3 Exercises 459
References 460
10 Eigenvalue Problems 461
10.1 Introduction 461
10.2 Glossary of Variable Names 477
10.3 Exercises 480
References 482
11 Forced Vibrations 483
11.1 Introduction 483
11.2 Glossary of Variable Names 517
11.3 Exercises 521
References 522
12 Parallel Processing of Finite Element Analyses 523
12.1 Introduction 523
12.2 Differences between Parallel and Serial Programs 525
12.3 Graphics Processing Units 589
12.4 Cloud Computing 594
12.5 Conclusions 596
12.6 Glossary of Variable Names 597
References 602
Appendix A Equivalent Nodal Loads 605
Appendix B Shape Functions and Element Node Numbering 611
Appendix C Plastic StressStrain Matrices and Plastic Potential Derivatives 619
Appendix D main Library Subprograms 623
Appendix E geom Library Subroutines 635
Appendix F Parallel Library Subroutines 639
Appendix G External Subprograms 645
Author Index 649
Subject Index 653