# PDESolverOptions Properties

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.

## Statistics and Convergence Report

expand all

Flag to display the internal solver statistics and the convergence report during the solution process, specified as `'off'` or `'on'`.

Example: ```model.SolverOptions.ReportStatistics = 'on'```

Data Types: `char`

## ODE Solver

expand all

Absolute tolerance for the internal ODE solver, specified 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`

Relative tolerance for the internal ODE solver, specified 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`

## Nonlinear Solver

expand all

Acceptable residual tolerance for the internal nonlinear solver, specified 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`

Maximal number of Gauss-Newton iterations for the internal nonlinear solver, specified as a positive integer.

Example: ```model.SolverOptions.MaxIterations = 30```

Data Types: `double`

Minimum damping of the search direction for the internal nonlinear solver, specified as a positive number. For details, see Nonlinear Solver Algorithm.

Example: ```model.SolverOptions.MinStep = 1.5259e-7```

Data Types: `double`

Type of norm for computing the residual for the internal nonlinear solver, specified as `Inf`, `-Inf`, a positive number, or `'energy'`.

The infinity norms of a vector are

`${‖\rho ‖}_{\infty }={\mathrm{max}}_{i}\left(|\rho \left(i\right)|\right)$`
`${‖\rho ‖}_{-\infty }={\mathrm{min}}_{i}\left(|\rho \left(i\right)|\right)$`

The `Lp`-norm of a vector ρ that has `N` elements is

`${‖\rho ‖}_{p}=\frac{{\left[\sum _{k=1}^{N}{|{\rho }_{k}|}^{p}\right]}^{\frac{1}{p}}}{{N}^{\frac{1}{p}}}$`

The energy norm of a vector ρ is

`$‖\rho ‖={\rho }^{T}K\rho$`

Here, K is the combined stiffness matrix defined in Nonlinear Solver Algorithm.

Example: ```model.SolverOptions.ResidualNorm = 'energy'```

Data Types: `double` | `char`

## Lanczos Solver

expand all

Maximum 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`

Block 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`

expand all

## Version History

Introduced in R2016a