EPSSetBalance — SLEPc 3.25.1 documentation

Skip to main content
`Ctrl`+`K`

# EPSSetBalance

Specifies the balancing technique to be employed by the eigensolver, and some parameters associated to it.

## Synopsis

    #include "slepceps.h"
    PetscErrorCode EPSSetBalance(EPS eps,EPSBalance bal,PetscInt its,PetscReal cutoff)

Logically Collective

## Input Parameters

- eps - the linear eigensolver context

- bal - the balancing method, see `EPSBalance` for possible values

- its - number of iterations of the balancing algorithm

- cutoff - cutoff value

## Options Database Keys

- -eps_balance (none|oneside|twoside|user) - the balancing method

- -eps_balance_its its - number of iterations

- -eps_balance_cutoff cutoff - cutoff value

## Notes

When balancing is enabled, the solver works implicitly with matrix \(DAD^{-1}\), where \(D\) is an appropriate diagonal matrix. This improves the accuracy of the computed results in some cases, see Balancing for Non-Hermitian Problems.

Balancing makes sense only for non-Hermitian problems when the required precision is high (i.e., a small tolerance such as `1e-14`).

By default, balancing is disabled. The two-sided method is much more effective than the one-sided counterpart, but it requires the system matrices to have the `MatMultTranspose()` operation defined. The methods are described in [Chen and Demmel, 2000].

The parameter `its` is the number of iterations performed by the method. The `cutoff` value is used only in the two-side variant. Use `PETSC_DETERMINE` to assign a reasonably good value, or `PETSC_CURRENT` to leave the value unchanged.

User-defined balancing is allowed provided that the corresponding matrix is set via `STSetBalanceMatrix()`.

## References

[Che00]

T.-Y. Chen and J. W. Demmel. Balancing sparse matrices for computing eigenvalues. Linear Algebra Appl., 309(1–3):261–287, 2000. doi:10.1016/S0024-3795(00)00014-8.

## See Also

EPS: Eigenvalue Problem Solver, Balancing for Non-Hermitian Problems, `EPSGetBalance()`, `EPSBalance`, `STSetBalanceMatrix()`

## Level

intermediate

## Location

src/eps/interface/epsopts.c

Index of all EPS routines Table of Contents for all manual pages Index of all manual pages