the face with normal vector parallel to it. We obtain this field from the extrapolated normal components of the velocity field at each face, using algorithm 3.1 with the advection velocity taken as the average of the left and right states:
uadv,i+1 2 = Upwind ui+1 2,L, ui+ 1 2,R, 1 2 ui+1 2,L+ ui+ 1 2,R . (3.15) With the advection velocity available, all other extrapolated variables can be upwinded at the cell faces, and hyperbolic fluxes can be evaluated with high precision while preserving monotonicity. As mentioned in the beginning of this section, there is a large amount of literature describing how this simplest of algorithms can be expanded upon, which has been studied so extensively due to the importance in purely hyperbolic systems of PDEs.
3.3
Projection methods for incompressible flow
A major difficulty in numerical solutions of incompressible flow problems it the fact that the pressure and velocity fields are coupled to each other through the incompressibility constraint ∇ · u = 0, rather than through a classical energy conservation equation. This coupling makes it impossible to solve the equations directly, even numerically. A common way to solve the transient equations is to use projection methods. Projection methods decouple the interdependencies of pressure and velocity to a sequence of elliptic problems within each time step. Consequently, the algorithms can yield efficient simulations for large systems[76].
The original projection method for the incompressible Navier-Stokes equations was developed by Chorin in 1968[77], and the essence is still the same in most modern variants. Chorin’s projection method is an operator splitting approach, in which, for each time step, one first performs an intermediate time step for the velocity field while ignoring the pressure forces, and then enforces incompressibility in order to update the pressure. Finally, the velocity can be updated. Because of the intermediate step in the algorithm, it is commonly referred to as a fractional step method. However, it does not fit into the original class of methods called fractional step or splitting schemes[78]. This is due to the fact that, unlike in compressible systems, the pressure is not a dynamic variable, but takes the role of a Lagrange multiplier. The resulting PDE is therefore not of Cauchy-Kowalevski type, and corresponding algorithms are not generalisable to higher orders of accuracy[79]. This is one of the main reasons why there has been
such a large focus on the development and analysis of accurate, efficient and scalable projection methods in the last fifty years.
The family of numerical algorithms known as projection methods can generally be divided into three groups. In the first group, exemplified by the pioneering work of Chorin, the pressure gradient is ignored in the first step of the algorithm, and subsequently corrected for afterwards. They are therefore called pressure-correction methods. Velocity-correction methods, on the other hand, start by ignoring the viscous term, and instead correct for this afterwards. More recently, so-called Gauge methods[80;81], and more generally consistent splitting methods[82]have been introduced, which are free of the splitting errors associated with the former two.
The Helmholtz decomposition[83] allows us to write any vector field as a sum of solenoidal and irrotational parts, i.e.
˜u = u − ∇Φ, (3.16)
where u has zero divergence and ∇Φ, being a scalar gradient, is irrotational. This is the building block of projection methods, where the goal is to find the divergence-free velocity field u associated with a generic approximation ˜u, which has an irrotational part. Taking the divergence of (3.16), leads to a Poisson equation for Φ,
∇2Φ = −∇ · ˜u. (3.17)
which is straightforward to solve since the right-hand side is known. In turn, the solution allows us to compute the divergence-free velocity field u, according to (3.16). This simple example shows how we can project any solution onto the space of divergence-free vector fields.
Although the above illustrates the basic tricks utilised in projection methods, it doesn’t explicitly show how the velocity and pressure fields in Cauchy’s momentum balance are decoupled from each other. This is the operator splitting part of the algorithm, and it means that we can update the pressure at the same time as the velocity. As an example, consider the MOL discretised version of (2.29b):
unew− uold
∆t = −u · ∇u + 1
3.3 Projection methods for incompressible flow 39
Following Chorin’s original approach, we can introduce an intermediate velocity field ˜u. Then the two equations
˜u − uold ∆t = −u · ∇u + 1 ρ(∇ · τ + f) (3.19a) unew− ˜u ∆t = − 1 ρ∇p (3.19b)
sum to (3.18). The former can be solved for ˜u without worrying about the coupling to pressure, and the latter is of the form of a Helmholtz decomposition, just like (3.16). Taking its divergence, we can therefore solve the Poisson equation
∇ · ∆t ρ ∇p
new
!
= ∇ · ˜u, (3.20)
for pnew, and obtain the new, divergence-free velocity field unew = ˜u −∆t
ρ ∇p
new. (3.21)
As we will show, some higher-order schemes require a projection to be applied at an intermediate time step in order to ensure a divergence-free partially evolved velocity field. This is in addition to the projection for the final velocity. Projection methods constitute a rich field of research, and there are many subtleties connected to their implementations and convergence and stability analysis. For an excellent overview, we recommend the review paper by Guermond et al.[76]
Projection methods for steady-state flows
A popular family of algorithms for solving nonlinear systems of the form that arises from our spatial discretisation of (2.30) at steady-state, is the Semi-Implicit Method for Pressure-Linked Equations (SIMPLE)[84]. Rather than split each time step into two decoupled equations, the basic idea in these methods is to construct a number of linear systems to be solved iteratively until convergence is achieved[85]. Linearization of the discretised sets of equations is done by computing some of the terms with values from previous iterations. For a full explanation of the method, we recommend Zikanov’s book[86], which also covers extensions of the method such as SIMPLER[87] and SIMPLEC[88].