# Scalable Block Preconditioners for Linearized Navier-Stokes Equations at High Reynolds Number
## 5 Preconditioners for the Blocks
### \((1,1)-\)Block Preconditioner  
It is well known that Multigrid methods allow for obtaining scalable results for convection-diffusion problems. Our \((1,1)-\)block indeed represents a discretized convection-diffusion operator and, therefore, we expect to obtain scalable results while using a suitable Multigrid scheme. An accurate analysis of the scalability provided by Multigrid can be found, for instance, in [23; 24]. The application of a Multigrid preconditioner is particularly easy in the case of diffusion-dominated problems, since even the very simple damped Jacobi smoother is able to produce optimal results. However, in the case of convection-dominated problems, the choice of the smoother is fundamental for obtaining satisfactory results. In these situations, it is necessary to use a more sophisticated smoother, like the Gauss-Seidel method, coupled with an adequate choice of the pattern used to apply it; this pattern should try to follow the convective flow as much as possible. In the case of complicated recirculating flows, it is not possible to generate a pattern that is able to do this and so different strategies must be employed. In [2], the suggestion is to use multiple iterations of the Gauss-Seidel smoother, each one performed following a simple pattern. In particular, if the flow is recirculating and therefore has components both negative and positive in directions \(x\) and \(y\), then there should be four patterns and they should sweep through the domain in both directions, going back and forth. Hence, one pattern will evolve in the \(x\) direction, from the left to the right, another one from right to left. The same holds for the \(y\) direction, yielding a total of four different smoothing patterns. An alternative using only one pattern in every direction is possible: this approach will be cheaper, but a single iteration will be less accurate. This option has been used, for instance, in [13] when dealing with convection-diffusion problems. One thing to remember is that, when multiple patterns are used for every smoothing iteration, they should be applied in opposite order in the pre- and post-smoothing phases. If in the pre-smoothing step, we apply first pattern A and then pattern B, then in the post smoothing phase we should apply first pattern B and then A. The drawback of using multiple patterns is that some parts of the flow, which only have component of the velocity in one direction, do not need smoothing in the other direction. Thus, a lot of time is lost smoothing in directions that are not necessary. This is not a problem for convergence, since this excessive smoothing does not worsen the solution, but it is a problem for the computational time. Moreover, this approach does not exploit the separability of the \((1,1)-\)block: indeed, the convection-diffusion operator consists of a block-diagonal matrix, with two identical blocks, one for direction \(x\) and one for \(y\). This structure of the matrix can be exploited to obtain a more efficient implementation: indeed, when applying the preconditioner to a vector \(r\), we can split this vector into \(r_{x}\) and \(r_{y}\) and apply to each of these components just the preconditioner for one of the diagonal blocks of matrix \(F\). In this way, the dimensions of the matrices used are halved and, more importantly, we can choose to perform the smoothing only in the direction that we are considering. This means that when we apply the preconditioner to \(r_{x}\), we use Gauss-Seidel with a pattern that only evolves in the \(x\) direction. We do not expect more accurate solutions with this method, since applying extra smoothing does not create such a problem, but we expect to reduce the computational time required. Two approaches are possible when applying one of the patterns in the smoothing phase. We can divide the pattern in groups and apply the smoother to all the nodes of every group simultaneously; for instance, if the pattern to be applied evolves in the \(x\) direction, then each group would be one of the vertical lines of nodes.