# KSPBCGSL
Implements a slight variant of the Enhanced BiCGStab(L) algorithm in (3) and (2).  The variation concerns cases when either kappa0**2 or kappa1**2 is negative due to round-off. Kappa0 has also been pulled out of the denominator in the formula for ghat. 
## Options Database Keys

- ***-ksp_bcgsl_ell <ell> -*** Number of Krylov search directions, defaults to 2, cf. `KSPBCGSLSetEll()`
- ***-ksp_bcgsl_cxpol -*** Use a convex function of the MinRes and OR polynomials after the BiCG step instead of default MinRes, cf. `KSPBCGSLSetPol()`
- ***-ksp_bcgsl_mrpoly -*** Use the default MinRes polynomial after the BiCG step, cf. `KSPBCGSLSetPol()`
- ***-ksp_bcgsl_xres <res> -*** Threshold used to decide when to refresh computed residuals, cf. `KSPBCGSLSetXRes()`
- ***-ksp_bcgsl_pinv <true/false> -*** (de)activate use of pseudoinverse, cf. `KSPBCGSLSetUsePseudoinverse()`





## References

- **** -*** G.L.G. Sleijpen, H.A. van der Vorst, "An overview of
approaches for the stable computation of hybrid BiCG
methods", Applied Numerical Mathematics: Transactions
f IMACS, 19(3), 1996.
- **** -*** G.L.G. Sleijpen, H.A. van der Vorst, D.R. Fokkema,
"BiCGStab(L) and other hybrid BiCG methods",
Numerical Algorithms, 7, 1994.
- **** -*** D.R. Fokkema, "Enhanced implementation of BiCGStab(L)
for solving linear systems of equations", preprint
from www.citeseer.com.



## Contributed by
Joel M. Malard, email jm.malard@pnl.gov


## Developer Notes
This has not been completely cleaned up into PETSc style.

All the BLAS and LAPACK calls in the source should be removed and replaced with loops and the macros for block solvers converted from LINPACK.


## See Also
 [](chapter_ksp), `KSPFBCGS`, `KSPFBCGSR`, `KSPBCGS`, `KSPPIPEBCGS`, `KSPCreate()`, `KSPSetType()`, `KSPType`, `KSP`, `KSPFGMRES`, `KSPBCGS`, `KSPSetPCSide()`,
`KSPBCGSLSetEll()`, `KSPBCGSLSetXRes()`, `KSPBCGSLSetUsePseudoinverse()`, `KSPBCGSLSetPol()`

## Level
intermediate

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/impls/bcgsl/bcgsl.c.html#KSPBCGSL">src/ksp/ksp/impls/bcgsl/bcgsl.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/ksp/impls/bcgsl/bcgsl.c)


[Index of all KSP routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
