Anasazi
Version of the Day
|
Anasazi's templated, static class providing utilities for the solvers. More...
#include <AnasaziSolverUtils.hpp>
Public Member Functions | |
Constructor/Destructor | |
SolverUtils () | |
Constructor. More... | |
virtual | ~SolverUtils () |
Destructor. More... | |
Static Public Member Functions | |
Sorting Methods | |
static void | permuteVectors (const int n, const std::vector< int > &perm, MV &Q, std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > *resids=0) |
Permute the vectors in a multivector according to the permutation vector perm , and optionally the residual vector resids . More... | |
static void | permuteVectors (const std::vector< int > &perm, Teuchos::SerialDenseMatrix< int, ScalarType > &Q) |
Permute the columns of a Teuchos::SerialDenseMatrix according to the permutation vector perm . More... | |
Basis update methods | |
static void | applyHouse (int k, MV &V, const Teuchos::SerialDenseMatrix< int, ScalarType > &H, const std::vector< ScalarType > &tau, Teuchos::RCP< MV > workMV=Teuchos::null) |
Apply a sequence of Householder reflectors (from GEQRF ) to a multivector, using minimal workspace. More... | |
Eigensolver Projection Methods | |
static int | directSolver (int size, const Teuchos::SerialDenseMatrix< int, ScalarType > &KK, Teuchos::RCP< const Teuchos::SerialDenseMatrix< int, ScalarType > > MM, Teuchos::SerialDenseMatrix< int, ScalarType > &EV, std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > &theta, int &nev, int esType=0) |
Routine for computing the first NEV generalized eigenpairs of the Hermitian pencil (KK, MM) More... | |
Sanity Checking Methods | |
static Teuchos::ScalarTraits< ScalarType >::magnitudeType | errorEquality (const MV &X, const MV &MX, Teuchos::RCP< const OP > M=Teuchos::null) |
Return the maximum coefficient of the matrix ![]() MX . More... | |
Anasazi's templated, static class providing utilities for the solvers.
This class provides concrete, templated implementations of utilities necessary for the solvers. These utilities include sorting, orthogonalization, projecting/solving local eigensystems, and sanity checking. These are internal utilties, so the user should not alter this class.
Definition at line 61 of file AnasaziSolverUtils.hpp.
Anasazi::SolverUtils< ScalarType, MV, OP >::SolverUtils | ( | ) |
Constructor.
Definition at line 183 of file AnasaziSolverUtils.hpp.
|
inlinevirtual |
Destructor.
Definition at line 74 of file AnasaziSolverUtils.hpp.
|
static |
Permute the vectors in a multivector according to the permutation vector perm
, and optionally the residual vector resids
.
Definition at line 195 of file AnasaziSolverUtils.hpp.
|
static |
Permute the columns of a Teuchos::SerialDenseMatrix according to the permutation vector perm
.
Definition at line 259 of file AnasaziSolverUtils.hpp.
|
static |
Apply a sequence of Householder reflectors (from GEQRF
) to a multivector, using minimal workspace.
k | [in] the number of Householder reflectors composing the product |
V | [in/out] the multivector to be modified, with ![]() |
H | [in] a ![]() GEQRF (see below) |
tau | [in] the ![]() GEQRF |
workMV | [work] (optional) a multivector used for workspace. it need contain only a single vector; it if contains more, only the first vector will be modified. |
This routine applies a sequence of Householder reflectors, , to a multivector
. The reflectors are applied individually, as rank-one updates to the multivector. The benefit of this is that the only required workspace is a one-column multivector. This workspace can be provided by the user. If it is not, it will be allocated locally on each call to applyHouse.
Each (
) has the form
where is a scalar and
is a vector with
and
;
is stored below
H(i,i)
and in
tau[i-1]
. (Note: zero-based indexing used for data structures H
and tau
, while one-based indexing used for mathematic object ).
If the multivector is and we apply
Householder reflectors, the total cost of the method is
flops. For
, this becomes
, the same as for a matrix-matrix multiplication by the accumulated Householder reflectors.
Definition at line 287 of file AnasaziSolverUtils.hpp.
|
static |
Routine for computing the first NEV generalized eigenpairs of the Hermitian pencil (KK, MM)
size | [in] Dimension of the eigenproblem (KK, MM) |
KK | [in] Hermitian "stiffness" matrix |
MM | [in] Hermitian positive-definite "mass" matrix |
EV | [in] Dense matrix to store the nev eigenvectors |
theta | [in] Array to store the eigenvalues (Size = nev ) |
nev | [in/out] Number of the smallest eigenvalues requested (in) / computed (out) |
esType | [in] Flag to select the algorithm
|
info
on the status of the computation Return the integer info on the status of the computation Definition at line 356 of file AnasaziSolverUtils.hpp.
|
static |
Return the maximum coefficient of the matrix scaled by the maximum coefficient of
MX
.
M
is not specified, the identity is used. Definition at line 635 of file AnasaziSolverUtils.hpp.