Public Member Functions | Protected Attributes | List of all members
oomph::EigenSolver Class Referenceabstract

#include <eigen_solver.h>

+ Inheritance diagram for oomph::EigenSolver:

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...
 
- Public Member Functions inherited from oomph::DistributableLinearAlgebraObject
 DistributableLinearAlgebraObject ()
 Default constructor - create a distribution. More...
 
 DistributableLinearAlgebraObject (const DistributableLinearAlgebraObject &matrix)
 Broken copy constructor. More...
 
void operator= (const DistributableLinearAlgebraObject &)
 Broken assignment operator. More...
 
virtual ~DistributableLinearAlgebraObject ()
 Destructor. More...
 
LinearAlgebraDistributiondistribution_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
 
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

- Protected Member Functions inherited from oomph::DistributableLinearAlgebraObject
void clear_distribution ()
 clear the distribution of this distributable linear algebra object More...
 

Detailed Description

Base class for all EigenProblem solves. This simply defines standard interfaces so that different solvers can be used easily.

Definition at line 65 of file eigen_solver.h.

Constructor & Destructor Documentation

◆ EigenSolver() [1/2]

oomph::EigenSolver::EigenSolver ( )
inline

Empty constructor.

Definition at line 75 of file eigen_solver.h.

◆ EigenSolver() [2/2]

oomph::EigenSolver::EigenSolver ( const EigenSolver )
inline

Empty copy constructor.

Definition at line 78 of file eigen_solver.h.

◆ ~EigenSolver()

virtual oomph::EigenSolver::~EigenSolver ( )
inlinevirtual

Empty destructor.

Definition at line 81 of file eigen_solver.h.

References solve_eigenproblem().

Member Function Documentation

◆ get_shift()

const double& oomph::EigenSolver::get_shift ( ) const
inline

Return the value of the shift (const version)

Definition at line 96 of file eigen_solver.h.

References Sigma_real.

◆ set_shift()

void oomph::EigenSolver::set_shift ( const double &  shift_value)
inline

Set the value of the shift.

Definition at line 93 of file eigen_solver.h.

◆ solve_eigenproblem()

virtual void oomph::EigenSolver::solve_eigenproblem ( Problem *const &  problem_pt,
const int &  n_eval,
Vector< std::complex< double > > &  eigenvalue,
Vector< DoubleVector > &  eigenvector 
)
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::ANASAZI, oomph::LAPACK_QZ, and oomph::ARPACK.

Referenced by oomph::ARPACK::disable_compute_eigenvectors(), oomph::Problem::solve_eigenproblem(), ~EigenSolver(), and oomph::LAPACK_QZ::~LAPACK_QZ().

Member Data Documentation

◆ Sigma_real

double oomph::EigenSolver::Sigma_real
protected

Double value that represents the real part of the shift in shifted eigensolvers.

Definition at line 71 of file eigen_solver.h.

Referenced by get_shift(), oomph::ARPACK::solve_eigenproblem(), and oomph::LAPACK_QZ::solve_eigenproblem().


The documentation for this class was generated from the following file: