https://github.com/certik/feast
FEAST Eigenvalue Solver
https://github.com/certik/feast
Last synced: 5 months ago
JSON representation
FEAST Eigenvalue Solver
- Host: GitHub
- URL: https://github.com/certik/feast
- Owner: certik
- License: other
- Created: 2012-06-29T21:56:11.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2012-06-29T21:57:14.000Z (about 14 years ago)
- Last Synced: 2025-09-03T17:51:50.049Z (10 months ago)
- Language: FORTRAN
- Homepage: http://www.ecs.umass.edu/~polizzi/feast/
- Size: 2.94 MB
- Stars: 10
- Watchers: 4
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README
- License: LICENSE
Awesome Lists containing this project
README
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////// The FEAST Eigenvalue Solver ///////////////////////////
//////////// ///////////////////////////////////////////////////////////////////////////////
Author: Eric Polizzi
Department of Electrical and Computer Engineering
University of Massachusetts, Amherst
E-mail: polizzi@ecs.umass.edu (for FEAST related questions please use: feastsolver@gmail.com)
web : http://www.ecs.umass.edu/~polizzi/feast
/////////////////////////////////////////////////////////////////////////////////////////////
General Description: Solving Eigenvalue Problem of form AX=eBX or AX=eX for
obtaining eigenpairs within the search interval [Emin,Emax]
Reference: "Density-Matrix-Based Algorithm for Solving Eigenvalue Problems"
E. Polizzi
Physical Review B, Vol. 79, 11512 (2009)
===================================================================================================
Version: 2.0
Version Description:
* Solving Ax=ex or Ax=eBx, A is real symmetric or complex Hermitian, B is symmetric or Hermitian positive definite
* SMP version (one node) and MPI-version (multi-nodes).
* Source code and pre-compiled libraries provided for commun architectures The pre-compiled libraries do not require
any specific compilers (no runtime dependencies).
* All FEAST interfaces compatible with Fortran (77 and 90) and C,
* Reverse communication interfaces: Maximum flexibility for application-specific. Those are matrix format independent,
inner system solver independent, so users must provide their own linear system solvers (direct or iterative) and
mat-vec utility routines.
* Predefined driver interfaces for dense, banded, and sparse formats: Easy ("plug and play") and Optimized.
* All FEAST libraries require BLAS and LAPACK packages (not included),
* FEAST banded drivers use the SPIKE banded primitives (included)
* FEAST sparse drivers use the MKL-PARDISO solver (not included).
* FEAST dense drivers are not intended for performances using FEAST-SMP (scalability can be obtained using FEAST-MPI)
* Real/Complex and Single/Double precisions
* Examples and documentation included,
* Utility routines for sparse systems included: users can provide their sparse systems for quick testing, timing, etc. .
===================================================================================================
Library: FEASTROOT (this directory)
|
----------------------------------------------------
| | | | | |
src lib include doc example utility
**********************************************************************************************
**********************************************************************************************
**************** In the following, we briefly address the question: *************************
**************** How should you use FEAST ? ************************
**************** All Details can be found in the FEAST documentation *************************
**********************************************************************************************
**********************************************************************************************
===================================================================================================
ATTENTION : It is recommended to define the Shell variable "export FEASTROOT="path to this directory"
===================================================================================================
LIBRARY PATH: (choose one)
-L/$(FEASTROOT)/lib/x64 (for 64 bits architectures)
-L/$(FEASTROOT)/lib/"yourown" (where "yourown" directory can contain the FEAST library
compiled for your own specific architectures and optionally
for FEAST-MPI your own MPI implementation)
INCLUDE PATH: It is mandatory only for C codes along with instructions that need to be added in the header C file (all that apply):
#include "feast.h"
#include "feast sparse.h"
#include "feast banded.h"
#include "feast dense.h"
COMPILATION LINKS: (Example/ choose one)
-lfeast (FEAST Reverse Communication Interfaces-kernel)
-lfeast_dense -lfeast (FEAST dense interfaces/drivers, also includes -lfeast_rci)
-lfeast_banded -lfeast (FEAST banded interfaces/drivers, also includes -lfeast_rci)
-lfeast_sparse -lfeast (FEAST sparse interfaces/drivers, also includes -lfeast_rci)
-In general: Any FEAST-drivers combinations follows by -lfeast
DEPENDENCY:
- the libraries LAPACK/BLAS (not provided) are needed
- the library MKL-PARDISO (not provided) is only needed for -lfeast_sparse
- the Intel MKL library is highly recommended and contains pardiso,lapack and blas
EXAMPLES of COMPILATION LINKS with DEPENDENCY: (Example/ choose one)
include dense drivers+rci 1/ -lfeast_dense -lfeast -lapack -lblas
include banded drivers+rci 2/ -lfeast_banded -lfeast -lapack -lblas
include sparse drivers+rci 3/ -lfeast_sparse -lfeast -lpardiso -lapack -lblas
include rci 4/ -lfeast -lapack -lblas
REVERSE COMMUNICATION INTERFACES (RCI): TFEAST_{S,H}RCI ("T" denotes S,D,C or Z)
-routines are then called:
SFEAST_SRCI, DFEAST_SRCI (Real Symmetric resp. single and double precision)
CFEAST_HRCI, ZFEAST_HRCI (Complex Hermitian resp. single and double precison)
-Matrix free format (FEAST is independent of the matrix data format)
-users must then provide their own direct/iterative solver for solving the linear
system-type MY =F
-A preconditioner can be also used for iterative solver
-user must provide his own mat-vec
-for Complex systems, FEAST can be accelerated if user can provide a routine for
solving the linear system-type M^H Y=F (H for Hermitian) knowing only the
factorization of M (case 21)
PREDEFINED DRIVER INTERFACES: TFEAST_XYY
*"T" denotes S or D for real single/double precision
C or Z for complex single/double precision
*"YY" denotes GV for generalized eigenvalue problem
EV for standart eigenvalue problem
- If "X"={SY,HE} :: Dense format (ATTENTION: current version is not intended for obtaining performance)
uses LAPACK inner system solver:
- If "X"={SB,HB} :: Banded LAPACK Format
uses SPIKE primitives inner system solver (included)
- If "X"={SCSR,HCSR} :: Sparse Format
uses PARDISO inner system solver (not included)