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
 
void set_shift (const double &shift_value)
 Set the value of the shift. More...
 
const doubleget_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)=delete
 Broken copy constructor. More...
 
void operator= (const DistributableLinearAlgebraObject &)=delete
 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)
 
void build_distribution (const LinearAlgebraDistribution &dist)
 

Protected Attributes

double Sigma_real
 

Additional Inherited Members

- Protected Member Functions inherited from oomph::DistributableLinearAlgebraObject
void clear_distribution ()
 

Detailed Description

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

Constructor & Destructor Documentation

◆ EigenSolver() [1/2]

oomph::EigenSolver::EigenSolver ( )
inline

Empty constructor.

69 : Sigma_real(0.0) {}
double Sigma_real
Definition: eigen_solver.h:65

◆ EigenSolver() [2/2]

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

Empty copy constructor.

72 {}

◆ ~EigenSolver()

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

Empty destructor.

75 {}

Member Function Documentation

◆ get_shift()

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

Return the value of the shift (const version)

94  {
95  return Sigma_real;
96  }

References Sigma_real.

◆ set_shift()

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

Set the value of the shift.

88  {
89  Sigma_real = shift_value;
90  }

References Sigma_real.

Referenced by OrrSommerfeldProblem< ELEMENT >::OrrSommerfeldProblem().

◆ 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::Problem::solve_eigenproblem().

Member Data Documentation

◆ Sigma_real

double oomph::EigenSolver::Sigma_real
protected

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

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


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