Pseudo Time Stepping for Laminar Flow Models
A stationary formulation has per definition no time derivatives and Equation 3-17 reduces to:
(3-58)
Solving Equation 3-58 requires a starting guess that is close enough to the final solution. If no such guess is at hand, the fully transient problem can be solved instead. This is, however, a rather costly approach in terms of computational time. An intermediate approach is to add a fictitious time derivative to Equation 3-58:
where is a pseudo time step. Since unojac(u) is always zero, this term does not affect the final solution. It does, however, affect the discrete equation system and effectively transforms a nonlinear iteration into a step of size of a time-dependent solver.
Pseudo time stepping is not active per default. The pseudo time step can be chosen individually for each element based on the local CFL number:
where h is the mesh cell size. A small CFL number means a small time step. It is practical to start with a small CFL number and gradually increase it as the solution approaches steady state.
If the automatic expression for CFLloc is set to the built-in variable CFLCMP, then the automatic setting suggests a PID regulator for the pseudo time step in the default solver. The PID regulator starts with a small CFL number and increases CFLloc as the solution comes closer to convergence.
The default manual expression is
(3-59)
The variable niterCMP is the nonlinear iteration number. It is equal to one for the first nonlinear iteration. CFLloc starts at 1.3 and increases by 30% each iteration until it reaches . It remains there until iteration number 20 at which it starts to increase until it reaches approximately 106. A final increase after iteration number 40 then takes it to 1060. Equation 3-59 can, for some advanced flows, increase CFLloc too slowly or too quickly. CFLloc can then be tuned for the specific application.
For details about the CFL regulator, see Pseudo Time Stepping in the COMSOL Multiphysics Reference Manual.