Base class for all EigenProblem solves. This simply defines standard interfaces so that different solvers can be used easily. More...
#include <eigen_solver.h>
Public Member Functions | |
EigenSolver () | |
Empty constructor. More... | |
EigenSolver (const EigenSolver &) | |
Empty copy constructor. More... | |
virtual | ~EigenSolver () |
Empty destructor. More... | |
virtual void | solve_eigenproblem (Problem *const &problem_pt, const int &n_eval, Vector< std::complex< double > > &eigenvalue, Vector< DoubleVector > &eigenvector)=0 |
Actual eigensolver. This takes a pointer to a problem and returns a vector of complex numbers representing the eigenvalues and a corresponding vector of eigenvectors. More... | |
void | set_shift (const double &shift_value) |
Set the value of the shift. More... | |
const double & | get_shift () const |
Return the value of the shift (const version) More... | |
![]() | |
DistributableLinearAlgebraObject () | |
Default constructor - create a distribution. More... | |
DistributableLinearAlgebraObject (const DistributableLinearAlgebraObject &matrix)=delete | |
Broken copy constructor. More... | |
void | operator= (const DistributableLinearAlgebraObject &)=delete |
Broken assignment operator. More... | |
virtual | ~DistributableLinearAlgebraObject () |
Destructor. More... | |
LinearAlgebraDistribution * | distribution_pt () const |
access to the LinearAlgebraDistribution More... | |
unsigned | nrow () const |
access function to the number of global rows. More... | |
unsigned | nrow_local () const |
access function for the num of local rows on this processor. More... | |
unsigned | nrow_local (const unsigned &p) const |
access function for the num of local rows on this processor. More... | |
unsigned | first_row () const |
access function for the first row on this processor More... | |
unsigned | first_row (const unsigned &p) const |
access function for the first row on this processor More... | |
bool | distributed () const |
distribution is serial or distributed More... | |
bool | distribution_built () const |
if the communicator_pt is null then the distribution is not setup then false is returned, otherwise return true More... | |
void | build_distribution (const LinearAlgebraDistribution *const dist_pt) |
setup the distribution of this distributable linear algebra object More... | |
void | build_distribution (const LinearAlgebraDistribution &dist) |
setup the distribution of this distributable linear algebra object More... | |
Protected Attributes | |
double | Sigma_real |
Double value that represents the real part of the shift in shifted eigensolvers. More... | |
Additional Inherited Members | |
![]() | |
void | clear_distribution () |
clear the distribution of this distributable linear algebra object More... | |
Base class for all EigenProblem solves. This simply defines standard interfaces so that different solvers can be used easily.
Definition at line 60 of file eigen_solver.h.
|
inline |
Empty constructor.
Definition at line 69 of file eigen_solver.h.
|
inline |
Empty copy constructor.
Definition at line 72 of file eigen_solver.h.
|
inlinevirtual |
Empty destructor.
Definition at line 75 of file eigen_solver.h.
|
inline |
Return the value of the shift (const version)
Definition at line 93 of file eigen_solver.h.
References Sigma_real.
|
inline |
|
pure virtual |
Actual eigensolver. This takes a pointer to a problem and returns a vector of complex numbers representing the eigenvalues and a corresponding vector of eigenvectors.
Implemented in oomph::ARPACK, oomph::LAPACK_QZ, and oomph::ANASAZI.
Referenced by oomph::Problem::solve_eigenproblem().
|
protected |
Double value that represents the real part of the shift in shifted eigensolvers.
Definition at line 65 of file eigen_solver.h.
Referenced by get_shift(), set_shift(), oomph::ARPACK::solve_eigenproblem(), oomph::LAPACK_QZ::solve_eigenproblem(), and oomph::ANASAZI::solve_eigenproblem().