List of Figures xiList of Tables xvPreface xviiAbout the Companion Website xix1 Introduction 11.1 Motivation 11.1.1 Governing Equations 21.1.2 Methods for Solving Flow Equations 31.2 History of Krylov Subspase Methods 41.3 Scope of Book 71.3.1 The General Structure of Solver 71.3.2 Review of Book Content 102 Discretization of Partial Differential Equations and Formation of Sparse Matrices 132.1 Introduction 132.2 Partial Differential Equations 132.2.1 Elliptic Operators 142.2.2 Convection-Diffusion Equation 152.3 Finite Difference Method 162.4 Sparse Matrices 172.4.1 Benchmark Problems for Comparing Solvers 172.4.2 Storage Formats of Sparse Matrices 212.4.2.1 Coordinate Format 212.4.2.2 Compressed Sparse Row Format 222.4.2.3 Block Compressed Row Storage Format 232.4.2.4 Sparse Block Compressed Row Storage Format 242.4.2.5 Modified Sparse Row Format 252.4.2.6 Diagonal Storage Format 252.4.2.7 Compressed Diagonal Storage Format 272.4.2.8 Ellpack-Itpack Format 282.4.3 Redefined Matrix-Vector Multiplication 28Exercises 293 Theory of Krylov Subspace Methods 313.1 Introduction 313.2 Projection Methods 313.3 Krylov Subspace 343.4 Conjugate Gradient Method 353.4.1 Steepest Descent Method 353.4.2 Derivation of Conjugate Gradient Method 383.4.3 Convergence 403.5 Minimal Residual Method 413.6 Generalized Minimal Residual Method 423.7 Conjugate Residual Method 443.8 Bi-Conjugate Gradient Method 453.9 Transpose-Free Methods 473.9.1 Conjugate Gradient Squared Method 483.9.2 Bi-Conjugate Gradient Stabilized Method 50Exercises 544 Numerical Analysis of Krylov Subspace Methods 574.1 Numerical Solution of Linear Systems 574.1.1 Solution of Symmetric Positive-Definite Systems 584.1.2 Solution of Asymmetric Systems 644.1.3 Solution of Symmetric Indefinite Systems 674.2 Preconditioning 694.2.1 Preconditioned Conjugate Gradient Method 694.2.2 Preconditioning With the ILU(0) Method 714.2.3 Numerical Solutions Using Preconditioned Methods 724.3 Numerical Solution of Systems Using GMRES¯* 774.4 Storage Formats and CPU-Time 784.5 Solution of Singular Systems 844.5.1 Solution of Poisson's Equation with Pure Neumann Boundary Conditions 844.5.2 Comparison of the Krylov Subspace Methods with the Point Successive Over-Relaxation (PSOR) Method 95Exercises 965 Solution of Incompressible Navier-Stokes Equations 995.1 Introduction 995.2 Theory of the Chorin's Projection Method 1005.3 Analysis of Projection Method 1015.4 The Main Framework of the Projection Method 1035.4.1 Implementation of the Projection Method 1045.4.2 Discretization of the Governing Equations 1045.5 Numerical Case Study 1095.5.1 Vortex Shedding from Circular Cylinder 1095.5.2 Vortex Shedding from a Four-Leaf Cylinder 1115.5.3 Oscillating Cylinder in Quiescent Fluid 112Exercises 115Appendix A Sparse Matrices 117A.1 Storing the Sparse Matrices 117A.1.1 Coordinate to CSR Format Conversion 117A.1.2 CSR to MSR Format Conversion 118A.1.3 CSR to Ellpack-Itpack Format Conversion 119A.1.4 CSR to Diagonal Format Conversion 121A.2 Matrix-Vector Multiplication 124A.2.1 CSR Format Matrix-Vector Multiplication 124A.2.2 MSR Format Matrix-Vector Multiplication 125A.2.3 Ellpack-Itpack Format Matrix-Vector Multiplication 125A.2.4 Diagonal Format Matrix-Vector Multiplication 126A.3 Transpose Matrix-Vector Multiplication 127A.3.1 CSR Format Transpose Matrix-Vector Multiplication 127A.3.2 MSR Format Transpose Matrix-Vector Multiplication 127A.4 Matrix Pattern 128Appendix B Krylov Subspace Methods 131B.1 Conjugate Gradient Method 131B.2 Bi-Conjugate Gradient Method 135B.3 Conjugate Gradient Squared Method 136B.4 Bi-Conjugate Gradient Stabilized Method 138B.5 Conjugate Residual Method 140B.6 GMRES* Method 142Appendix C ILU(0) Preconditioning 145C.1 ILU(0)-Preconditioned Conjugate Gradient Method 145C.2 ILU(0)-Preconditioned Conjugate Gradient Squared Method 149C.3 ILU(0)-Preconditioned Bi-Conjugate Gradient Stabilized Method 151Appendix D Inner Iterations of GMRES* Method 155D.1 Conjugate Gradient Method Inner Iterations 155D.2 Conjugate Gradient Squared Method Inner Iterations 157D.3 Bi-Conjugate Gradient Stabilized Method Inner Iterations 158D.4 Conjugate Residual Method Inner Iterations 160D.5 ILU(0) Preconditioned Conjugate Gradient Method Inner Iterations 162D.6 ILU(0) Preconditioned Conjugate Gradient Squared Method Inner Iterations 163D.7 ILU(0) Preconditioned Bi-Conjugate Gradient Stabilized Method Inner Iterations 165Appendix E Main Program 167Appendix F Steepest Descent Method 173Appendix G Vorticity-Stream Function Formulation of Navier-Stokes Equation 177Bibliography 219Index 225
IMAN FARAHBAKHSH, Ph.D., is an Assistant Professor of Hydromechanics and Propulsion Systems in the Department of Maritime Engineering at the Amirkabir University of Technology. His research interests lie in the area of computational fluid dynamics, fluid-structure interaction, multiphase flow, instability in fluids, and numerical linear algebra. The present book is the result of more than a decade of his studies in computational mathematics and application of Krylov subspace methods in CFD codes and the development of computer programs.