# KSPGUESSFISCHER#

Implements Paul Fischer’s initial guess algorithms [Fis98] and a non-orthogonalizing variant for situations where a linear system is solved repeatedly

## Notes#

The algorithm is different from Fischer’s paper because we do not CHANGE the right-hand side of the new problem and solve the problem with an initial guess of zero, rather we solve the original problem with a nonzero initial guess (this is done so that the linear solver convergence tests are based on the original RHS). We use the \(xtilde = x - xguess\) as the new direction so that it is not mostly orthogonal to the previous solutions.

These are not intended to be used directly, they are called by `KSPSolve()`

automatically with the command
line options `-ksp_guess_type fischer`

`-ksp_guess_fischer_model <int,int>`

or programmatically with

```
KSPGetGuess(ksp,&guess);
KSPGuessSetType(guess,KSPGUESSFISCHER);
KSPGuessFischerSetModel(guess,model,basis);
KSPGuessSetTolerance(guess,PETSC_MACHINE_EPSILON);
```

The default tolerance (which is only used in Method 3) is 32*`PETSC_MACHINE_EPSILON`

. This value was chosen
empirically by trying a range of tolerances and picking the one that lowered the solver iteration count the most
with five vectors.

Method 2 is only for positive definite matrices, since it uses the energy norm.

Method 3 is not in the original paper. It is the same as the first two methods except that it does not orthogonalize the input vectors or use A at all. This choice is faster but provides a less effective initial guess for large (about 10) numbers of stored vectors.

## Developer Note#

The option `-ksp_fischer_guess <int,int>`

is still available for backward compatibility

## References#

- Fis98
Paul F Fischer. Projection techniques for iterative solution of ax= b with successive right-hand sides.

*Computer methods in applied mechanics and engineering*, 163(1-4):193–204, 1998.

## See Also#

## Level#

intermediate

## Location#

src/ksp/ksp/guess/impls/fischer/fischer.c

Index of all KSP routines

Table of Contents for all manual pages

Index of all manual pages