|
IFEM
90A354
|
Interface to LAPack and ARPack eigenvalue solvers. More...
#include "EigSolver.h"#include "DenseMatrix.h"#include "SPRMatrix.h"#include "Profiler.h"#include "IFEM.h"
Namespaces | |
| eig | |
| Top-level functions for invoking eigenproblem solvers. | |
Functions | |
| void | eig_drv1_ (const int &n, const int &nev, const int &ncv, double *d, double *v, double *work, int &ierr) |
| Driver to solve a standard eigenvalue problem. More... | |
| void | eig_drv2_ (const int &n, const int &nev, const int &ncv, const double &sig, double *d, double *v, double *work, int &ierr) |
| Driver to solve a standard eigenvalue problem. More... | |
| void | eig_drv3_ (const int &n, const int &nev, const int &ncv, double *d, double *v, double *work, int &ierr) |
| Driver to solve a generalized eigenvalue problem. More... | |
| void | eig_drv4_ (const int &n, const int &nev, const int &ncv, const double &sig, double *d, double *v, double *work, int &ierr) |
| Driver to solve a generalized eigenvalue problem. More... | |
| void | eig_drv5_ (const int &n, const int &nev, const int &ncv, const double &sig, double *d, double *v, double *work, int &ierr) |
| Driver to solve a generalized eigenvalue problem. More... | |
| void | eig_drv6_ (const int &n, const int &nev, const int &ncv, const double &sig, double *d, double *v, double *work, int &ierr) |
| Driver to solve a generalized eigenvalue problem. More... | |
| static void | _eig_ax (const SystemMatrix *A, const double *x, double *y) |
| Performs the matrix-vector multiplication y = A * x. | |
| void | eig_av_ (const double *x, double *y) |
| Performs the matrix-vector multiplication y = K * x. | |
| void | eig_mv_ (const double *x, double *y) |
| Performs the matrix-vector multiplication y = M * x. | |
| void | eig_sol_ (const double *x, double *y, int &ierr) |
| Solves the linear system of equations AM y = x. More... | |
Variables | |
| static SystemMatrix * | K = nullptr |
| Pointer to coefficient matrix A. | |
| static SystemMatrix * | M = nullptr |
| Pointer to coefficient matrix B. | |
| static SystemMatrix * | AM = nullptr |
| Pointer to the matrix to invert. | |
| static int | iverb = -1 |
| Arnoldi iteration counter (for verbose print) | |
Interface to LAPack and ARPack eigenvalue solvers.
| void eig_drv1_ | ( | const int & | n, |
| const int & | nev, | ||
| const int & | ncv, | ||
| double * | d, | ||
| double * | v, | ||
| double * | work, | ||
| int & | ierr | ||
| ) |
Driver to solve a standard eigenvalue problem.
The regular mode is used. This is a FORTRAN 77 subroutine based on the example driver DSDRV1 from the ARPACK distribution.
Referenced by eig::solve().
| void eig_drv2_ | ( | const int & | n, |
| const int & | nev, | ||
| const int & | ncv, | ||
| const double & | sig, | ||
| double * | d, | ||
| double * | v, | ||
| double * | work, | ||
| int & | ierr | ||
| ) |
Driver to solve a standard eigenvalue problem.
The shift-and-invert mode is used. This is a FORTRAN 77 subroutine based on the example driver DSDRV2 from the ARPACK distribution.
Referenced by eig::solve().
| void eig_drv3_ | ( | const int & | n, |
| const int & | nev, | ||
| const int & | ncv, | ||
| double * | d, | ||
| double * | v, | ||
| double * | work, | ||
| int & | ierr | ||
| ) |
Driver to solve a generalized eigenvalue problem.
The inverse mode is used. This is a FORTRAN 77 subroutine based on the example driver DSDRV3 from the ARPACK distribution.
Referenced by eig::solve().
| void eig_drv4_ | ( | const int & | n, |
| const int & | nev, | ||
| const int & | ncv, | ||
| const double & | sig, | ||
| double * | d, | ||
| double * | v, | ||
| double * | work, | ||
| int & | ierr | ||
| ) |
Driver to solve a generalized eigenvalue problem.
The shift-and-invert mode is used. This is a FORTRAN 77 subroutine based on the example driver DSDRV4 from the ARPACK distribution.
Referenced by eig::solve().
| void eig_drv5_ | ( | const int & | n, |
| const int & | nev, | ||
| const int & | ncv, | ||
| const double & | sig, | ||
| double * | d, | ||
| double * | v, | ||
| double * | work, | ||
| int & | ierr | ||
| ) |
Driver to solve a generalized eigenvalue problem.
The buckling mode is used. This is a FORTRAN 77 subroutine based on the example driver DSDRV5 from the ARPACK distribution.
Referenced by eig::solve().
| void eig_drv6_ | ( | const int & | n, |
| const int & | nev, | ||
| const int & | ncv, | ||
| const double & | sig, | ||
| double * | d, | ||
| double * | v, | ||
| double * | work, | ||
| int & | ierr | ||
| ) |
Driver to solve a generalized eigenvalue problem.
The Cayley mode is used. This is a FORTRAN 77 subroutine based on the example driver DSDRV6 from the ARPACK distribution.
Referenced by eig::solve().
| void eig_sol_ | ( | const double * | x, |
| double * | y, | ||
| int & | ierr | ||
| ) |
Solves the linear system of equations AM y = x.
The matrix AM depends on the eigensolver method.
References AM, IFEM::cout, StdVector::dim(), SystemMatrix::dim(), PETScMatrix::dim(), PETScMatrix::getAdm(), PETScMatrix::getDD(), DomainDecomposition::getG2LEQ(), DomainDecomposition::getGlobalEq(), PETScMatrix::getMatrix(), PETScVector::getVector(), ProcessAdm::isParallel(), DomainDecomposition::isPartitioned(), iverb, PROFILE1, utl::vector< T >::ptr(), and SystemMatrix::solve().