Algorithm options for solvers
A PDESolverOptions object contains options used by the
solvers when solving a structural, thermal, or general PDE problem specified as a
StructuralModel, ThermalModel, or PDEModel object, respectively. StructuralModel,
ThermalModel, and PDEModel objects contain a
PDESolverOptions object in their
SolverOptions property.
Solvers for structural modal analysis problems and reduced-order modeling use the Lanczos algorithm.
ReportStatistics — Flag to display internal solver statistics and convergence report during the solution process'off' (default) | 'on'Flag to display the internal solver statistics and the convergence report
during the solution process, returned as 'off' or
'on'.
Example: model.SolverOptions.ReportStatistics =
'on'
Data Types: char
AbsoluteTolerance — Absolute tolerance for internal ODE solverAbsolute tolerance for the internal ODE solver, returned as a positive number. Absolute tolerance is a threshold below which the value of the solution component is unimportant. This property determines the accuracy when the solution approaches zero.
Example: model.SolverOptions.AbsoluteTolerance =
5.0000e-06
Data Types: double
RelativeTolerance — Relative tolerance for internal ODE solverRelative tolerance for the internal ODE solver, returned as a positive
number. This tolerance is a measure of the error relative to the size of
each solution component. Roughly, it controls the number of correct digits
in all solution components, except those smaller than thresholds imposed by
AbsoluteTolerance. The default value corresponds to
0.1% accuracy.
Example: model.SolverOptions.RelativeTolerance =
5.0000e-03
Data Types: double
ResidualTolerance — Acceptable residual tolerance for internal nonlinear solverAcceptable residual tolerance for the internal nonlinear solver, returned
as a positive number. The nonlinear solver iterates until the residual size
is less than the value of ResidualTolerance.
Example: model.SolverOptions.ResidualTolerance =
5.0000e-04
Data Types: double
MaxIterations — Maximal number of Gauss-Newton iterations for internal nonlinear solverMaximal number of Gauss-Newton iterations for the internal nonlinear solver, returned as a positive integer.
Example: model.SolverOptions.MaxIterations =
30
Data Types: double
MinStep — Minimum damping of search direction for internal nonlinear solverMinimum damping of the search direction for the internal nonlinear solver, returned as a positive number. For details, see Nonlinear Solver Algorithm.
Example: model.SolverOptions.MinStep =
1.5259e-7
Data Types: double
ResidualNorm — Type of norm for computing residual for internal nonlinear solverInf (default) | -Inf | positive number | 'energy'Type of norm for computing the residual for the internal nonlinear solver,
returned as Inf, -Inf, a positive
number, or 'energy'.
The infinity norms of a vector are
The Lp-norm of a vector ρ
that has N elements is
The energy norm of a vector ρ is
Here, K is the combined stiffness matrix defined in Nonlinear Solver Algorithm.
Example: model.SolverOptions.ResidualNorm =
'energy'
Data Types: double | char
MaxShift — Maximum number of Lanczos shiftsMaximum number of Lanczos shifts, specified as a positive integer. Increase this value when computing a large number of eigenpairs.
Example: model.SolverOptions.MaxShift =
500
Data Types: double
BlockSize — Block size for block Lanczos recurrenceBlock size for block Lanczos recurrence, specified as a positive integer.
The default number ranges from 7 to 25, depending on the size of the
stiffness matrix K.
Example: model.SolverOptions.BlockSize =
20
Data Types: double
The residual equation of a nonlinear PDE is as follows:
To obtain a discretized residual equation, apply the finite element method (FEM) to a partial differential equation as described in Finite Element Method Basics:
The nonlinear solver uses a Gauss-Newton iteration scheme applied to the finite element matrices. Use a Taylor series expansion to obtain the linearized system for the residual:
Neglecting the higher-order terms, write the linearized system of equations as
The descent direction for the residual is
The Gauss-Newton iteration minimizes the residual, that is, the solution of , using the equation
Here, ɑ ≤ 1 is a positive number, that must be set as large as possible so that the step has a reasonable descent. For a sufficiently small ɑ,
For the Gauss-Newton algorithm to converge, must be close enough to the solution. The first guess is often outside the region of convergence. The Armijo-Goldstein line search (a damping strategy for choosing ɑ) helps to improve convergence from bad initial guesses. This method chooses the largest damping coefficient ɑ out of the sequence 1, 1/2, 1/4, . . . such that the following inequality holds:
Using the Armijo-Goldstein line search guarantees a reduction of the residual norm by at least . Each step of the line-search algorithm must evaluate the residual .
With this strategy, when Un approaches the solution, →1, thus, the convergence rate increases.