Vanka
The Vanka node () handles settings for the Vanka iterative method. Formally, this method applies to saddle-point problems (that is, problems where the equilibrium solution is neither a maximum nor a minimum) as a preconditioner or smoother. The corresponding linear system matrix is indefinite and its diagonal often contains zeros. A typical example is the Navier–Stokes equations. Problems formulated with weak constraints are also of this type. In short, the method can be described as a block SOR method. Local coupling of certain degrees of freedom (typically the Lagrange multiplier degrees of freedom) determines the blocks. Ordinary SSOR iterations are performed for degrees of freedom not involved in the block method. This attribute node can be used together with the Iterative, Krylov Preconditioner, Presmoother, Postsmoother, and Coarse Solver attribute nodes.
For more detailed information about the Vanka method, see The Vanka Algorithm.
Main
Settings with and Without a Coarse Solver
If used with a Coarse Solver, select a Termination technique. These are described for the SCGS attribute under Settings When Used With a Coarse Solver.
If a Coarse Solver is not used, enter the Number of iterations to specify a fixed number of iterations to perform when this attribute is used as a preconditioner or smoother (default: 2).
Settings When Used with Any Attribute Node
From the Sweep type list, choose SSOR (the default), SOR, or SORU. This setting decides in which order the blocks are looped through. SOR means lexical order (or forward), the order they are stored, while SORU means the opposite (backward) order. SSOR means SOR followed by SORU. The sweep type also decides if SOR, SORU, or SSOR is used in the secondary iteration (called SSOR update when the algorithms are described).
Use the Variables list to specify variables to include in a Vanka block approach.
Use the Block solver list to specify how to solve the Vanka block linear systems:
Select Direct (the default) to use a direct solver.
Select Direct, stored factorization to store the factorization. Storing the factorization makes the solver faster because the factorization is then not performed every update, but the storage uses more memory. If two Vanka smoothers are used as a presmoother and postsmoother of a Multigrid solver, with similar enough settings, they share the same stored factorization, which means that they only use half the memory. With this option, you can choose the Use approximate factorization check box to reduce the memory consumption and use an approximate smoother suitable for saddle-point problems such as Stokes flow (Ref. 14). Use the Use Schur complement approximation for block with size larger than field (default value: 150) to specify a size so that the solver can continue to use stored LU factorizations as long as the blocks are not above that size.
Iterative, GMRES to use the iterative method GMRES. When Iterative, GMRES has been selected from the Block solver list, the following options become available:
-
Use the Tolerance field to specify the termination tolerance of GMRES (default: 0.02).
-
Use the Number of iterations before restart field to specify how many iterations the solver should take between each restart (default: 100).
The Iterative, GMRES option can be useful if you use the FGMRES method as linear system solver because it can handle preconditioners that are not stationary. The Iterative, GMRES option can also be useful if you use the Vanka algorithm as a smoother to a multigrid solver because GMRES can be a bit faster than the direct solver.
Use the Relaxation factor field to specify a scalar relaxation factor ω. The allowed values of this factor are between 0 and 2 (default: 0.8). See About the Relaxation Factor for more information.
Select the Blocked version check box (selected by default) to use a version of the Vanka method that is optimized for parallel computations.
Select the Reuse data check box (selected by default) to reuse the data in order to increase the performance of the Vanka method.
Secondary
Use the Number of secondary iterations field to specify the number of SSOR iterations to perform for degrees of freedom not involved in the Vanka blocks.
Use the Relaxation factor field to specify a scalar relaxation factor for the iterations specified in the Number of secondary iterations field (default: 1). The allowed values of this factor are between 0 and 2 (default: 1). See About the Relaxation Factor for more information.