This solver uses a nonlinear solver if nonlin is
on, and it uses the linear solver if
nonlin is
on or
linper. If
nonlin is set to
auto an analysis is performed to automatically detect if the problem can be solved with a linear solver approach. For a description of the nonlinear solver see the entry under
coupling.
The automatic nonlinear/linear detection works in the following way. The linear solver is called if the residual Jacobian matrix (the stiffness matrix, K) and the constraint Jacobian matrix (the constraint matrix,
N) are both found not solution dependent and if these matrices are detected as complete. In all other situations the nonlinear solver is used. The analysis is performed by a symbolic analysis of the expressions contributing to these matrices. Complete here means that in the residual and constraint vectors, only expressions were found for which COMSOL Multiphysics computes the correct Jacobian contribution.
Therefore, if you want to solve a linearized (nonlinear) problem, you must set nonlin to
off or
linper. The
off option uses the linearization point for both the residual computation and for the Jacobian and the solution to the linear problem is added to the linearization point. This corresponds to one step in the Newton method. For
linper, the linearization point is used for the Jacobian, the zero solution is used for the assembly of the residual and the solution to the linear problem is returned as the solution. Furthermore, the residual assembled for
linper is computed using loads marked with the
linper operator.
The property reacf controls the computation and storage of constraint reaction forces. The value
reacf=on (default) means that the solver stores the FEM residual vector
L in the solution object
model.sol. Because
L = NFΛ for a converged solution, the residual is the same as the constraint force. Only the components of
L that correspond to nonzero rows of
NF are stored. The value
reacf=off gives no computation or storage of the reaction force and saves some memory.
The linear solver uses the property itol for termination of iterative linear system solvers and for error checking for direct solvers (if enabled).