Users:General FEM Analysis/Solvers Reference/Eigensolvers

From Carat++ Public Wiki
< Users:General FEM Analysis | Solvers Reference
Revision as of 09:58, 8 December 2016 by Arming (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


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
 
Personal tools
Content for Developers