sfepy.solvers.eigen module¶
- class sfepy.solvers.eigen.LOBPCGEigenvalueSolver(conf, **kwargs)[source]¶
SciPy-based LOBPCG solver for sparse symmetric problems.
Kind: ‘eig.scipy_lobpcg’
For common configuration parameters, see
Solver
.Specific configuration parameters:
- Parameters:
- i_maxint (default: 20)
The maximum number of iterations.
- eps_afloat
The absolute tolerance for the convergence.
- largestbool (default: True)
If True, solve for the largest eigenvalues, otherwise the smallest.
- precond{dense matrix, sparse matrix, LinearOperator}
The preconditioner.
- name = 'eig.scipy_lobpcg'¶
- class sfepy.solvers.eigen.MatlabEigenvalueSolver(conf, comm=None, context=None, **kwargs)[source]¶
Matlab eigenvalue problem solver.
Kind: ‘eig.matlab’
For common configuration parameters, see
Solver
.Specific configuration parameters:
- Parameters:
- method{‘eig’, ‘eigs’, None} (default: ‘eigs’)
The solution method. Note that eig() function cannot be used for all inputs. If n_eigs is not None, eigs() is used regardless of this parameter.
- balance{‘balance’, ‘nobalance’} (default: ‘balance’)
The balance option for eig().
- algorithm{‘chol’, ‘qz’} (default: ‘chol’)
The algorithm option for eig().
- which{‘lm’, ‘sm’, ‘la’, ‘sa’, ‘be’ ‘lr’, ‘sr’, ‘li’, ‘si’, sigma} (default: ‘lm’)
Which eigenvectors and eigenvalues to find with eigs().
- **
Additional parameters supported by eigs().
- name = 'eig.matlab'¶
- class sfepy.solvers.eigen.OctaveEigenvalueSolver(conf, comm=None, context=None, **kwargs)[source]¶
Octave eigenvalue problem solver.
Kind: ‘eig.octave’
For common configuration parameters, see
Solver
.Specific configuration parameters:
- Parameters:
- name = 'eig.octave'¶
- class sfepy.solvers.eigen.PrimmeEigenvalueSolver(conf, comm=None, context=None, **kwargs)[source]¶
PRIMME eigenvalue problem solver.
https://github.com/primme/primme
Installation: pip install primme
Kind: ‘eig.primme’
For common configuration parameters, see
Solver
.Specific configuration parameters:
- Parameters:
- which{‘LM’, ‘SM’, ‘LA’, ‘SA’, ‘CLT’, ‘CGT’} (default: ‘LM’)
Which eigenvectors and eigenvalues to find.
- sigmafloat
Find eigenvalues near sigma.
- maxiterint
Maximum number of iterations.
- tolfloat (default: 0)
Tolerance for eigenpairs (stopping criterion).
- **
Additional parameters supported by eigsh().
- name = 'eig.primme'¶
- class sfepy.solvers.eigen.SLEPcEigenvalueSolver(conf, comm=None, context=None, **kwargs)[source]¶
General SLEPc eigenvalue problem solver.
Kind: ‘eig.slepc’
For common configuration parameters, see
Solver
.Specific configuration parameters:
- Parameters:
- methodstr (default: ‘krylovschur’)
The actual solver to use.
- problemstr (default: ‘gnhep’)
The problem type: Hermitian (hep), non-Hermitian (nhep), generalized Hermitian (ghep), generalized non-Hermitian (gnhep), generalized non-Hermitian with positive semi-definite B (pgnhep), and generalized Hermitian-indefinite (ghiep).
- i_maxint (default: 20)
The maximum number of iterations.
- epsfloat
The convergence tolerance.
- conv_test{“abs”, “rel”, “norm”, “user”}, (default: ‘abs’)
The type of convergence test.
- which{‘largest_magnitude’, ‘smallest_magnitude’,
‘largest_real’, ‘smallest_real’, ‘largest_imaginary’, ‘smallest_imaginary’, ‘target_magnitude’, ‘target_real’, ‘target_imaginary’, ‘all’, ‘which_user’} (default: ‘largest_magnitude’) Which eigenvectors and eigenvalues to find.
- **
Additional parameters supported by the method.
- name = 'eig.slepc'¶
- class sfepy.solvers.eigen.ScipyEigenvalueSolver(conf, **kwargs)[source]¶
SciPy-based solver for both dense and sparse problems.
The problem is consirered sparse if n_eigs argument is not None.
Kind: ‘eig.scipy’
For common configuration parameters, see
Solver
.Specific configuration parameters:
- Parameters:
- method{‘eig’, ‘eigh’, ‘eigs’, ‘eigsh’} (default: ‘eigs’)
The method for solving general or symmetric eigenvalue problems: for dense problems
eig()
oreigh()
can be used, for sparse problemseigs()
oreigsh()
should be used.- which‘LM’ | ‘SM’ | ‘LR’ | ‘SR’ | ‘LI’ | ‘SI’ (default: ‘SM’)
Which eigenvectors and eigenvalues to find, see
scipy.sparse.linalg.eigs()
orscipy.sparse.linalg.eigsh()
. For dense problmes, only ‘LM’ and ‘SM’ can be used- linear_solver({‘ls.cholesky’, ‘ls.mumps’, …}, ls_conf)
The method used to construct an inverse linear operator. If None, the eigenvalue solver will solve the linear system internally.
- **
Additional parameters supported by the method.
- name = 'eig.scipy'¶
- class sfepy.solvers.eigen.ScipySGEigenvalueSolver(conf, **kwargs)[source]¶
SciPy-based solver for dense symmetric problems.
Kind: ‘eig.sgscipy’
For common configuration parameters, see
Solver
.Specific configuration parameters:
- Parameters:
- name = 'eig.sgscipy'¶