Users:General FEM Analysis/Solvers Reference/Eigensolvers
(→Eigen Subspace Iteration) |
|||
Line 10: | Line 10: | ||
Within the input block the tolerance and the maximum number of iterations has to be defined. | Within the input block the tolerance and the maximum number of iterations has to be defined. | ||
+ | |||
+ | It is recommended to use MKL_PARDISO as linear sub solver and LAPACK as eigen sub solver (MKL package needed) | ||
<pre> | <pre> | ||
PC-SOLVER 1: EIGEN_SUBSPACE_IT | PC-SOLVER 1: EIGEN_SUBSPACE_IT | ||
− | ! --- linear sub solver | + | ! --- linear sub solver |
− | SUBSOLVE = CROUT_SKYLINE ! CROUT_SKYLINE or MKL_PARDISO (MKL necessary!) or CHOLMOD (CHOLMOD necessary!) | + | SUBSOLVE = CROUT_SKYLINE ! optional: CROUT_SKYLINE (default if parameter is not set) or MKL_PARDISO (recommended! MKL necessary!) or CHOLMOD (CHOLMOD necessary!) |
− | SUB_SOLVER = PC-SOLVER | + | SUB_SOLVER = PC-SOLVER 2 ! optional: Uses an existing solver of the type defined above. If ommited a new solver is created |
− | ! --- eigen sub solver | + | ! --- eigen sub solver |
− | SUBSOLVE_EIG = JACOBI ! JACOBI or QR or LAPACK (TRILINOS or MKL necessary!) | + | SUBSOLVE_EIG = JACOBI ! optional: JACOBI (default if parameter is not set) or QR or LAPACK (recommended! TRILINOS or MKL necessary!) |
− | ! --- cinvergence parameters | + | ! --- cinvergence parameters |
REL_TOLERANCE = 1E-9 | REL_TOLERANCE = 1E-9 | ||
MAX_NUM_ITER = 400 | MAX_NUM_ITER = 400 |
Revision as of 09:57, 8 December 2016
Carat++ offers one in-house eigen solver which is independant of any third part libraries and two solvers which are depending on the TRILINOS package.
All of this solvers are based on Krylow subspace-iteration methods.
Contents |
In-house algorithm
Eigen Subspace Iteration
This is a self-programmed Krylow-Schur. The solver is templated, so it can be used with several matrix formats and linear solvers. Also for the solution of sub eigen problems different algorithms can be used.
Within the input block the tolerance and the maximum number of iterations has to be defined.
It is recommended to use MKL_PARDISO as linear sub solver and LAPACK as eigen sub solver (MKL package needed)
PC-SOLVER 1: EIGEN_SUBSPACE_IT ! --- linear sub solver SUBSOLVE = CROUT_SKYLINE ! optional: CROUT_SKYLINE (default if parameter is not set) or MKL_PARDISO (recommended! MKL necessary!) or CHOLMOD (CHOLMOD necessary!) SUB_SOLVER = PC-SOLVER 2 ! optional: Uses an existing solver of the type defined above. If ommited a new solver is created ! --- eigen sub solver SUBSOLVE_EIG = JACOBI ! optional: JACOBI (default if parameter is not set) or QR or LAPACK (recommended! TRILINOS or MKL necessary!) ! --- cinvergence parameters REL_TOLERANCE = 1E-9 MAX_NUM_ITER = 400 ! --- BANDWITH = CUTHILL_MCKEE
TRILINOS-based algorithm
Eigen Subspace Iteration
This is in principle the same algorithm as the one implemented in the in-house solver. The differences are that the linear algebra is based on TRILINOS Epetra (CSR-Matrix) and any linear TRILINOS solver can be used as a sub-solver.
PC-SOLVER 1: TRILINOS_EIGEN_SUBSPACE_IT BANDWITH = CUTHILL_MCKEE REL_TOLERANCE = 1E-12 MAX_NUM_ITER = 1000 SUB_SOLVER = PC-SOLVER 2 ! Any TRILINOS linear solver OUTPUT = WARNINGS ! choose: WARNINGS ERRORS DETAILS
ANASAZI eigen solver
ANASAZI is the eigen solver package of TRILINOS, providing Block-Krylow-Schur and Block-Davidson methods. In general an ANASAZI solver should perform better than the in-house coded subspace iteration solver, so ANASAZI should be prefered if it is available.
PC-SOLVER 1: TRILINOS_ANASAZI BANDWITH = CUTHILL_MCKEE REL_TOLERANCE = 1E-12 MAX_NUM_ITER = 1000 TYPE = BLOCK_KRYLOV_SCHUR SUB_SOLVER = PC-SOLVER 2 ! Any TRILINOS linear solver OUTPUT = DETAILS ! choose: WARNINGS ERRORS DETAILS
Whos here now: Members 0 Guests 0 Bots & Crawlers 1 |