Class ae108::cppslepc::LinearEigenvalueProblemSolver
template <class Policy>
ClassList > ae108 > cppslepc > LinearEigenvalueProblemSolver
Public Types
Type | Name |
---|---|
enum std::uint8_t | Type |
typedef PetscComplex | complex_type |
typedef cpppetsc::Matrix< Policy > | matrix_type |
typedef PetscReal | real_type |
typedef PetscInt | size_type |
typedef PetscScalar | value_type |
typedef cpppetsc::distributed< cpppetsc::Vector< Policy > > | vector_type |
Public Functions
Type | Name |
---|---|
LinearEigenvalueProblemSolver () |
|
EPS | data () const Returns the internal solver. |
void | getEigenpair (const size_type n, EigenPair< Policy > * out) const Get nth eigenpair. |
complex_type | getEigenvalue (const size_type n) const Get nth eigenvalue. |
size_type | numberOfEigenpairs () const Number of discovered eigenpairs. |
void | setOperators (const matrix_type * A, const Type type=Type::nonhermitian) Sets the matrices associated with a standard eigenvalue problem, i.e. Ax = lambda * x. |
void | setOperators (const matrix_type * A, const matrix_type * B, const Type type=Type::generalized_nonhermitian) Sets the matrices associated with a generalized eigenvalue problem, i.e. Ax = lambda * Bx. |
void | solve () Solve linear eigenvalue problem. |
Public Types Documentation
enum Type
enum ae108::cppslepc::LinearEigenvalueProblemSolver::Type {
hermitian = EPS_HEP,
nonhermitian = EPS_NHEP,
generalized_hermitian = EPS_GHEP,
generalized_nonhermitian = EPS_GNHEP,
generalized_nonhermitian_spd = EPS_PGNHEP,
generalized_indefinite = EPS_GHIEP
};
typedef complex_type
using ae108::cppslepc::LinearEigenvalueProblemSolver< Policy >::complex_type = PetscComplex;
typedef matrix_type
using ae108::cppslepc::LinearEigenvalueProblemSolver< Policy >::matrix_type = cpppetsc::Matrix<Policy>;
typedef real_type
using ae108::cppslepc::LinearEigenvalueProblemSolver< Policy >::real_type = PetscReal;
typedef size_type
using ae108::cppslepc::LinearEigenvalueProblemSolver< Policy >::size_type = PetscInt;
typedef value_type
using ae108::cppslepc::LinearEigenvalueProblemSolver< Policy >::value_type = PetscScalar;
typedef vector_type
using ae108::cppslepc::LinearEigenvalueProblemSolver< Policy >::vector_type = cpppetsc::distributed<cpppetsc::Vector<Policy> >;
Public Functions Documentation
function LinearEigenvalueProblemSolver
explicit ae108::cppslepc::LinearEigenvalueProblemSolver::LinearEigenvalueProblemSolver ()
function data
Returns the internal solver.
EPS ae108::cppslepc::LinearEigenvalueProblemSolver::data () const
function getEigenpair
Get nth eigenpair.
void ae108::cppslepc::LinearEigenvalueProblemSolver::getEigenpair (
const size_type n,
EigenPair < Policy > * out
) const
Exception:
- InvalidEigenvalueIndexException if
n
is out of range
function getEigenvalue
Get nth eigenvalue.
complex_type ae108::cppslepc::LinearEigenvalueProblemSolver::getEigenvalue (
const size_type n
) const
Exception:
- InvalidEigenvalueIndexException if
n
is out of range
function numberOfEigenpairs
Number of discovered eigenpairs.
size_type ae108::cppslepc::LinearEigenvalueProblemSolver::numberOfEigenpairs () const
function setOperators [1/2]
Sets the matrices associated with a standard eigenvalue problem, i.e. Ax = lambda * x.
void ae108::cppslepc::LinearEigenvalueProblemSolver::setOperators (
const matrix_type * A,
const Type type=Type::nonhermitian
)
Exception:
- InvalidProblemTypeException if the type does not represent a nongeneralized problem
function setOperators [2/2]
Sets the matrices associated with a generalized eigenvalue problem, i.e. Ax = lambda * Bx.
void ae108::cppslepc::LinearEigenvalueProblemSolver::setOperators (
const matrix_type * A,
const matrix_type * B,
const Type type=Type::generalized_nonhermitian
)
Exception:
- InvalidProblemTypeException if the type does not represent a generalized problem
function solve
Solve linear eigenvalue problem.
void ae108::cppslepc::LinearEigenvalueProblemSolver::solve ()
Exception:
- NoOperatorsSetException if the operators have not been set before the call to solve()
The documentation for this class was generated from the following file cppslepc/src/include/ae108/cppslepc/LinearEigenvalueProblemSolver.h