The SCGS Solver
The SCGS iterative solver (smoother) works in a similar way to the blocked update of the Vanka solver, but it builds blocks based on the DOFs in each mesh element instead of blocks based on DOF connectivity to a Vanka variable. The advantage is that the blocks are smaller, allowing for storing their factorization once during the initialization phase (like SOR Line does) instead of factorizing on every update (like Vanka does by default).
Compared to other multigrid smoothers, SCGS provides better performance and is more robust, but it also requires somewhat more memory. SCGS only works for linear elements, and it is the default smoother for fluid-flow models with P1 + P1 elements (linear elements for the velocity field and the pressure).
The solver includes three main methods:
Mesh elements: Each mesh element corresponds to one SCGS block.
Mesh element lines: Anisotropic mesh elements are grouped together in SCGS blocks along the direction of anisotropy, which gives better results for boundary layer meshes. Nonanisotropic mesh elements correspond to one SCGS block.
Mesh element lines and vertices: Anisotropic mesh elements are grouped together in SCGS blocks, like above. The DOFs corresponding to nonanisotropic mesh elements are solved using vertex-based SCGS blocks, which consume less memory than element blocks. A separate relaxation factor can be set for the vertex pass.
The solver additionally has an option to use a Vanka hybrid step where Vanka blocks are first built and then SCGS blocks are built excluding the Vanka variable DOFs. This step makes it possible to run iterative solvers when using, for example, the Laminar Inflow boundary condition, independent of whether the mesh is anisotropic or not.