Solvers for Laminar Flow
The Navier-Stokes equations constitute a nonlinear equation system. A nonlinear solver must hence be applied to solve the problem. The nonlinear solver iterates to reach the final solution. In each iteration, a linearized version of the nonlinear system is solved using a linear solver. In the time-dependent case, a time marching method must also be applied. The default suggestions for each of these solver elements are discussed below.
Nonlinear Solver
The nonlinear solver method depends on if the model solves a stationary or a time-dependent problem.
Stationary Solver
In the stationary case, a fully coupled, damped Newton method is applied. The initial damping factor is low since a full Newton step can be harmful unless the initial values are close to the final solution. The nonlinear solver algorithm automatically regulates the damping factor in order to reach a converged solution.
For advanced models, the automatically damped Newton method might not be robust enough. A pseudo time-stepping algorithm can then be invoked. See Pseudo Time Stepping for Laminar Flow Models.
Time-Dependent Solver
In the time-dependent case, the initial guess for each time step is (loosely speaking) the previous time step, which is a very good initial value for the nonlinear solver. The automatic damping algorithm is then not necessary. The damping factor in the Newton method is instead set to a constant value slightly smaller than one. Also, for the same reason, it suffices to update the Jacobian once per time-step.
It is seldom worth the extra computational cost to update the Jacobian more than once per time step. For most models it is more efficient to restrict the maximum time step or possibly lower the damping factor in the Newton method.
Linear Solver
The linearized Navier-Stokes equation system has saddle point character, unless the density depends on the pressure. This means that the Jacobian matrix has zeros on the diagonal. Even when the density depends on the pressure, the equation system effectively shares many numerical properties with a saddle point system.
For small 2D and 3D models, the default solver suggestion is a direct solver. Direct solvers can handle most nonsingular systems and are very robust and also very fast for small models. Unfortunately, they become slow for large models and their memory requirement scales as somewhere between N1.5and N2, where N is the number of degrees of freedom in the model. The default suggestion for large 2D and 3D models is therefore the iterative GMRES solver. The memory requirement for an iterative solver optimally scales as N.
GMRES is accelerated by a multigrid method, per default the Smoothed Aggregation Algebraic Mutligrid (SAAMG) method. The cost of SAAMG is typically very low compared to the number of GMRES iterations necessary if no multigrid method is used. As the name implies, SAAMG builds its coarser meshes algebraically, so the application requires no additional meshes in order to employ SAAMG. In contrast, Geometric Multigrid (GMG) requires actual meshes. If a sufficient number of multigrid levels can be constructed, GMG is often faster than SAAMG. GMG is also superior for cluster computations and for shared memory computations with many cores. When the default linear solver is GMRES, an optional, but deactivated, linear solver node is available where GMRES is accelerated by GMG.
Multigrid methods need smoothers, but the saddle point character of the linear system restricts the number of applicable smoothers. The choices are further restricted by the anisotropic meshes frequently encountered in fluid-flow problems. The efficiency of the smoothers is highly dependent on the numerical stabilization. Iterative solvers perform at their best when both Streamline Diffusion and Crosswind Diffusion are active.
The default smoother for P1+P1 elements is SCGS. This is an efficient and robust smoother specially designed to solve saddle point systems on meshes that contain anisotropic elements. The SCGS smoother works well even without crosswind diffusion. SCGS can sometimes work for higher-order elements, especially if Method in the SCGS settings is set to Mesh element lines. But there is no guarantee for this, so the default smoother for higher order elements is an SOR Line smoother. SOR Line handles mesh anisotropy but does not formally address the saddle point character. It does, however, function in practice provided that streamline diffusion and crosswind diffusion are both active.
A different kind of saddle point character can arise if the equation system contains ODE variables. Some advanced boundary conditions, for example Fully Developed Flow (Inlet), can add equations with such variables. These variables must be treated with the Vanka algorithm. SCGS includes an option to invoke Vanka. Models with higher-order elements must apply SCGS or use the Vanka smoother. The latter is the default suggestion for higher-order elements, but it does not work optimally for anisotropic meshes.
Time-Dependent Solvers
The default time-dependent solver for Navier-Stokes is the BDF method with maximum order set to two. Higher BDF orders are not stable for transport problems in general nor for Navier-Stokes in particular.
BDF methods have been used for a long time and are known for their stability. However, they can have severe damping effects, especially the lower-order methods. Hence, if robustness is not an issue, a model can benefit from using the generalized-α method instead. Generalized-α is a solver which has properties similar to those of the second-order BDF solver but it is much less diffusive.
Both BDF and generalized-α are per default set to automatically adjust the time step. While this works well for many models, extra efficiency and accuracy can often be gained by specifying a maximum time step. It is also often beneficial to specify an initial time step to make the solver progress smoothly in the beginning of the time series.
In the COMSOL Multiphysics Reference Manual: