About the Stationary Solver
The following background information about the Stationary Solver discusses these topics: Damped Newton Methods, Termination Criterion for the Fully Coupled and Segregated Attribute Nodes, Linear Solvers vs. Nonlinear Solvers, and Pseudo Time Stepping. Also see Selecting a Stationary, Time-Dependent, or Eigenvalue Solver.
Stationary in the COMSOL Multiphysics Programming Reference Manual
Damped Newton Methods
The nonlinear solver uses an affine invariant form of the damped Newton method as described in Ref. 3. You can write the discrete form of the equations as f(U) = 0, where f(U) is the residual vector and U is the solution vector. Starting with the initial guess U0, the software forms the linearized model using U0 as the linearization point. It solves the discretized form of the linearized model f '(U0) δU = −f(U0) for the Newton step δU using the selected linear system solver (f '(U0) is the Jacobian matrix). It then computes the new iteration U1 = U0 + λδU, where λ (0 ≤ λ ≤ 1) is the damping factor.
Next the solver estimates the error E for the new iteration U1 by solving f '(U0) E = −f(U1). If the error is small enough to satisfy the specified relative tolerance (see Termination Criterion for the Fully Coupled and Segregated Attribute Nodes) the iteration is stopped. When using automatic damping and the relative error corresponding to E is larger than the relative error in the previous iteration, the algorithm reduces the damping factor λ and recomputes U1. This algorithm repeats the damping-factor reduction until the relative error is less than in the previous iteration or until the damping factor underflows the minimum damping factor. When it has taken a successful step U1, the algorithm proceeds with the next Newton iteration.
A value of λ = 1 results in Newton’s method, which converges quadratically if the initial guess U0 is sufficiently close to a solution. In order to enlarge the domain of attraction, the solver may have to reduce the damping factor. The success of a nonlinear solver still depends heavily on a carefully selected initial guess, so you should provide the best value for U0, giving at least an order of magnitude guess for different solution components.
Linear Solvers vs. Nonlinear Solvers
Automatic Nonlinearity Detection
COMSOL Multiphysics automatically detects nonlinearity, so you normally do not need to decide whether to use a linear or a nonlinear solver.
The automatic detection works through analysis of the variables contributing to the residual Jacobian matrix and the constraint Jacobian matrix. If the algorithm finds that both these matrices are complete and do not depend on the solution, the stationary solver (including parametric sweeps) uses a linear solver algorithm. Otherwise, the solver uses a nonlinear solver algorithm. “Complete” here means that the algorithm only found contributing variables for which the correct Jacobian is computed.
Overriding the Automatic Nonlinearity Detection
In some cases you might want to specify explicitly that the stationary solver uses the linear or nonlinear solver algorithm. Such cases include:
When using the Fully Coupled solver, you can furthermore
Which Models Are Nonlinear?
How do you determine if a problem is linear or nonlinear? Finding out is not always easy, but for most physics you can apply the following criterion: If any coefficient or material property contains a dependent variable, the model is nonlinear. The same holds true for models based on a PDE in the coefficient form, again with the same criterion.
Whether your problem is linear or nonlinear, the solvers break it down into one or several linear systems of equations. Therefore, the linear solver selection affects the solution time and memory requirements also for nonlinear models.
Pseudo Time Stepping
A pseudo time-stepping method is used in transport problems to stabilize the convergence toward steady state. Here an adaptive feedback controller controls a CFL (Courant–Friedrichs–Lewy) number, which is then used for pseudo time stepping. The CFL number starts from a moderate value (order one) and increases up to several orders of magnitude at convergence.
A simple multiplicative PID controller for CFL control is used
(20-7)
where the controller parameters kP, kI, and kD for the proportional, integral, and derivative parts, respectively, are positive constants. Here en is the nonlinear error estimate for step n and tol is a given target error estimate. CFLn is the built-in solver variable CFLCMP.
The next factor is used to control the CFL number toward the requested target error estimate. A standard local error estimate control uses only a factor of this sort, but for this type of control, the absolute level of the error is not that important. However, without this factor (kI = 0), the CFL number might drift even though the error level is fluctuating on the same level. This factor can also be used to select an absolute regime for the error where increasing the CFL number should be more difficult.
A hard lower limit is used, and to lower the risk of premature termination there is an extra requirement of not accepting convergence until .
After each segregated solver iteration, the log reports the Pseudo time-stepping CFL-ratio defined as min(log(CFL)/log(CFL),1.0), where CFL104 is the steady-state CFL number. The CFL ratio concerns the overall progress of the segregated solver and not individual groups. Convergence is allowed when this number is one and the usual convergence criteria are met.
Pseudo time stepping is available for stationary problems. In the coupled approach, it functions together with the constant damped Newton solver. See the settings for Fully Coupled and Segregated for related parameters.