Last modified 3 years ago Last modified on 08/05/15 09:54:57


The $LINEAR_SOLVER keyword enables to setup a numerical solver for linear problems. Linear problems are e.g. Groundwater flow . . .


int int double int double int int

The 1st parameter (int) specifies the type of the linear solver, i.e. the solver method that will be used to solve the above defined process. The available options are

  1. SpGAUSS, direct solver
  3. SpBICG
  5. SpCG
  6. SpCGNR
  7. CGS
  8. SpRichard
  9. SpJOR
  10. SpSOR

The 2nd parameter (int) enables to define a criterion for convergence as:

  1. Absolute error, ||r|| < ε,
  2. ||r|| < ε||b||,
  3. ||rn||< ϵ||rn-1||,
  4. if ||rn|| < 1, ||rn|| < ϵ||rn-1||, else ||r|| < ε,
  5. ||rn|| < ϵ||x||,
  6. ||rn|| < ϵ max(||rn-1||, ||x||, ||b||)

The 3rd parameter enables to define an error tolerance,ϵ.

The 4th parameter (int) is the maximal number of iterations for solving one time step.

The 5th parameter (double) is theta, a relaxation number for the Laplacian in the range of [0, 1].

The 6th parameter (int) allows setup preconditioning. The available preconditioners are:

  • 0: No preconditioner,
  • 1: Jacobi preconditioner,
  • 100: ILU preconditioner.

The 7th parameter (int) defines the storage model as:

  • 2: unsymmetrical matrix,
  • 4: symmetrical matrix.