33 #ifndef OOMPH_EIGEN_SOLVER_HEADER 34 #define OOMPH_EIGEN_SOLVER_HEADER 38 #include <oomph-lib-config.h> 56 class DoubleMatrixBase;
88 Vector<std::complex<double> > &eigenvalue,
93 void set_shift(
const double &shift_value) {Sigma_real = shift_value;}
156 Vector<std::complex<double> > &eigenvalue,
209 Vector<std::complex<double> > &eigenvalue,
216 Vector<std::complex<double> > &eigenvalue,
bool Compute_eigenvectors
Boolean to indicate whether or not to compute the eigenvectors.
Class for the LAPACK eigensolver.
void track_eigenvalue_imaginary_part()
Set the imaginary part fo the quantity of interest.
Abstract base class for matrices of complex doubles – adds abstract interfaces for solving...
void track_eigenvalue_real_part()
Set the real part to be the quantity of interest (default)
ARPACK(const ARPACK &)
Empty copy constructor.
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 represe...
int & narnoldi()
Access function for the number of Arnoldi vectors.
int NArnoldi
Number of Arnoldi vectors to compute.
LAPACK_QZ(const LAPACK_QZ &)
Empty copy constructor.
EigenSolver(const EigenSolver &)
Empty copy constructor.
void get_eigenvalues_left_of_shift()
Use the eigensolver to find the eigenvalues of a given matrix.
LinearSolver * Linear_solver_pt
Pointer to a linear solver.
EigenSolver()
Empty constructor.
bool Small
Boolean to set which part of the spectrum left (default) or right of the shifted value.
virtual ~EigenSolver()
Empty destructor.
double Sigma_real
Double value that represents the real part of the shift in shifted eigensolvers.
const double & get_shift() const
Return the value of the shift (const version)
LAPACK_QZ()
Empty constructor.
Base class for any linear algebra object that is distributable. Just contains storage for the LinearA...
void track_eigenvalue_magnitude()
Set the magnitude to be the quantity of interest.
LinearSolver *& linear_solver_pt()
Return a pointer to the linear solver object.
void enable_compute_eigenvectors()
Set to enable the computation of the eigenvectors (default)
void set_shift(const double &shift_value)
Set the value of the shift.
int Spectrum
Integer to set whether the real, imaginary or magnitude is required to be small or large...
virtual ~LAPACK_QZ()
Empty desctructor.
Class for the ARPACK eigensolver.
LinearSolver * Default_linear_solver_pt
Pointer to a default linear solver.
void get_eigenvalues_right_of_shift()
Set the desired eigenvalues to be right of the shift.
void disable_compute_eigenvectors()
Set to disable the computation of the eigenvectors.
LinearSolver *const & linear_solver_pt() const
Return a pointer to the linear solver object (const version)
const int & narnoldi() const
Access function for the number of Arnoldi vectors (const version)
void get_eigenvalues_right_of_shift()