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
EPSBalancefor possible valuesits - number of iterations of the balancing algorithm
cutoff - cutoff value
Options Database Keys#
-eps_balance <bal> - the balancing method, one of
none,oneside,twoside, oruser-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#
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#
Index of all EPS routines Table of Contents for all manual pages Index of all manual pages