Chapter 5 Algorithms and Solvers
“And you run, and you run to catch up with the sun but it’s sinking. Racing around to come up behind you again.”
Pink Floyd, Time (1973).
The previous chapters describe the components needed to build equations to solve problems in fluid dynamics, which are listed below:
- governing equations and common models, see Chapter 2 ;
- numerical methods to create discrete sets of linear equations, as matrix equations, see Chapter 3 ;
- boundary condtitions, which are applied to the matrix equations, see Chapter 4 .
The final component is to assemble the set of matrix equations and apply algorithms to:
- solve the set of linear equations described by each individual matrix equation;
- combine, or couple, solutions from multiple matrix equations to produce the overall solution.
This chapter first addresses the solution of individual matrix equations. It presents the most effective algorithms for solving matrix equations encountered with the finite volume method.
The important requirements of these matrix solvers are robustness and efficiency, particularly for large simulations with many millions of cells. Solvers than accompany the finite volume method are generally iterative in nature, in which the solution converges towards a prescribed acceptable level of accuracy, or tolerance, over a number of iterations.
The principal algorithms that couple sets of matrix equations will then be presented. The coupling of mass and momentum conservation with equations for and is challenging, and so requires particular attention.
5.2 Gauss-Seidel method
5.3 Convergence
5.4 Residual
5.5 Diagonal dominance
5.6 Under-relaxation
5.7 Iterative solution
5.8 Accelerating convergence
5.9 Systems of equations
5.10 Pressure-velocity coupling
5.11 Boundary fluxes
5.12 Steady-state solution
5.13 Steady-state convergence
5.14 Descent methods
5.15 Conjugate gradient method
5.16 Preconditioning and asymmetry
5.17 Multi-grid method
5.18 GAMG method
5.19 Transient solution
5.20 Transient solution controls
5.21 The PIMPLE algorithm
5.22 Solving for energy
5.23 Summary of algorithms and solvers