# PLaSK User Manual

#### Page Contents

- IterativeParams Class
  - `IterativeParams`
  - Attributes
  - Descriptions
    - Attribute Details
      - `IterativeParams.accelerator`
      - `IterativeParams.converged`
      - `IterativeParams.err`
      - `IterativeParams.iters`
      - `IterativeParams.ltrunc`
      - `IterativeParams.lvfill`
      - `IterativeParams.maxerr`
      - `IterativeParams.maxit`
      - `IterativeParams.ndeg`
      - `IterativeParams.nfact`
      - `IterativeParams.noconv`
      - `IterativeParams.nrestart`
      - `IterativeParams.nsave`
      - `IterativeParams.omega`
      - `IterativeParams.preconditioner`

# IterativeParams Class

class plask.IterativeParams

  Iterative matrix parameters

  This class holds parameters for iterative matrix used by solvers implementing Finite Element Method. PLaSK uses NSPCG package for performing iterations. Please refer to its documentation for explanation of most of the settings.

## Attributes

`accelerator` | Solver accelerator
`converged` | True if the solver converged
`err` | Residual error in the last run
`iters` | Number of iterations in the last run
`ltrunc` | Truncation level
`lvfill` | Fill-in level
`maxerr` | Maximum allowed residual iteration
`maxit` | Maximum number of iterations
`ndeg` | Polynomial degree
`nfact` | Frequency of partial factorization
`noconv` | Desired behavior if the iterative solver does not converge.
`nrestart` | Restart frequency
`nsave` | Saved vectors number
`omega` | Relaxation parameter
`preconditioner` | Solver preconditioner

## Descriptions

### Attribute Details

IterativeParams.accelerator = <property object>

  Solver accelerator

  This is current iterative matrix solver acceleration algorithm.

  Possible choices:
  `cg` | Conjugate Gradient acceleration (default)
  `si` | Chebyshev acceleration or Semi-Iteration
  `sor` | Successive Overrelaxation (can use only SOR preconditioner)
  `srcg` | Symmetric Successive Overrelaxation Conjugate Gradient Algorithm (can use only SSOR preconditioner)
  `srsi` | Symmetric Successive Overrelaxation Semi-Iteration Algorithm (can use only SSOR preconditioner)
  `basic` | Basic Iterative Method
  `me` | Minimal Error Algorithm
  `cgnr` | Conjugate Gradient applied to the Normal Equations
  `lsqr` | Least Squares Algorithm
  `odir` | ORTHODIR, a truncated/restarted method useful for nonsymmetric systems of equations
  `omin` | ORTHOMIN, a common truncated/restarted method used for nonsymmetric systems
  `ores` | ORTHORES, another truncated/restarted method for nonsymmetric systems
  `iom` | Incomplete Orthogonalization Method
  `gmres` | Generalized Minimal Residual Method
  `usymlq` | Unsymmetric LQ
  `usymqr` | Unsymmetric QR
  `landir` | Lanczos/ORTHODIR
  `lanmin` | Lanczos/ORTHOMIN or Biconjugate Gradient Method
  `lanres` | Lanczos/ORTHORES or “two-sided” Lanczos Method
  `cgcr` | Constrained Generalized Conjugate Residual Method
  `bcgs` | Biconjugate Gradient Squared Method

IterativeParams.converged = <property object>

  True if the solver converged

IterativeParams.err = <property object>

  Residual error in the last run

IterativeParams.iters = <property object>

  Number of iterations in the last run

IterativeParams.ltrunc = <property object>

  Truncation level

  Truncation bandwidth to be used when approximating the inverses of matrices with dense banded matrices. An increase in this value means a more accurate factorization at the expense of increased storage.

IterativeParams.lvfill = <property object>

  Fill-in level

  Level of fill-in for incomplete Cholesky preconditioners. Increasing this value will result in more accurate factorizations at the expense of increased memory usage and factorization time.

IterativeParams.maxerr = <property object>

  Maximum allowed residual iteration

IterativeParams.maxit = <property object>

  Maximum number of iterations

IterativeParams.ndeg = <property object>

  Polynomial degree

  Degree of the polynomial to be used for the polynomial preconditioners.

IterativeParams.nfact = <property object>

  Frequency of partial factorization

  This number initializes the frequency of partial factorizations. It specifies the number of linear system evaluatations between factorizations. The default value is 1, which means that a factorization is performed at every iteration.

IterativeParams.noconv = <property object>

  Desired behavior if the iterative solver does not converge.

  Possible choices are: `error`, `warning`, `continue`

IterativeParams.nrestart = <property object>

  Restart frequency

  The number of iterations between restarts for restarted acceleration methods.

IterativeParams.nsave = <property object>

  Saved vectors number

  The number of old vectors to be saved for the truncated acceleration methods.

IterativeParams.omega = <property object>

  Relaxation parameter

IterativeParams.preconditioner = <property object>

  Solver preconditioner

  This is current preconditioner used for iterative matrix solver.

  Possible choices:
  `rich` | Richardson’s method
  `jac` | Jacobi method
  `ljac` | Line Jacobi method
  `ljacx` | Line Jacobi method (approx. inverse)
  `sor` | Successive Overrelaxation (can be used only with SOR accelerator)
  `ssor` | Symmetric SOR
  `ic` | Incomplete Cholesky (default)
  `mic` | Modified Incomplete Cholesky
  `lsp` | Least Squares Polynomial
  `neu` | Neumann Polynomial
  `lsor` | Line SOR
  `lssor` | Line SSOR
  `llsp` | Line Least Squares Polynomial
  `lneu` | Line Neumann Polynomial
  `bic` | Block Incomplete Cholesky (ver. 1)
  `bicx` | Block Incomplete Cholesky (ver. 2)
  `mbic` | Modified Block Incomplete Cholesky (ver. 1)
  `mbicx` | Modified Block Incomplete Cholesky (ver. 2)