29 #ifndef OOMPH_EIGEN_SOLVER_HEADER
30 #define OOMPH_EIGEN_SOLVER_HEADER
34 #include <oomph-lib-config.h>
51 class DoubleMatrixBase;
82 Vector<std::complex<double>>& eigenvalue,
167 Vector<std::complex<double>>& eigenvalue,
238 Vector<std::complex<double>>& eigenvalue,
245 Vector<std::complex<double>>& eigenvalue,
The matrix class, also used for vectors and row-vectors.
Definition: Eigen/Eigen/src/Core/Matrix.h:186
Class for the ARPACK eigensolver.
Definition: eigen_solver.h:104
ARPACK(const ARPACK &)
Empty copy constructor.
Definition: eigen_solver.h:135
void get_eigenvalues_right_of_shift()
Set the desired eigenvalues to be right of the shift.
Definition: eigen_solver.h:183
int Spectrum
Definition: eigen_solver.h:115
void solve_eigenproblem(Problem *const &problem_pt, const int &n_eval, Vector< std::complex< double >> &eigenvalue, Vector< DoubleVector > &eigenvector)
Solve the eigen problem.
Definition: eigen_solver.cc:72
int NArnoldi
Number of Arnoldi vectors to compute.
Definition: eigen_solver.h:119
void track_eigenvalue_imaginary_part()
Set the imaginary part fo the quantity of interest.
Definition: eigen_solver.h:195
LinearSolver *const & linear_solver_pt() const
Return a pointer to the linear solver object (const version)
Definition: eigen_solver.h:213
const int & narnoldi() const
Access function for the number of Arnoldi vectors (const version)
Definition: eigen_solver.h:147
int & narnoldi()
Access function for the number of Arnoldi vectors.
Definition: eigen_solver.h:141
void get_eigenvalues_left_of_shift()
Use the eigensolver to find the eigenvalues of a given matrix.
Definition: eigen_solver.h:177
LinearSolver * Linear_solver_pt
Pointer to a linear solver.
Definition: eigen_solver.h:107
virtual ~ARPACK()
Destructor, delete the linear solver.
Definition: eigen_solver.cc:62
void track_eigenvalue_magnitude()
Set the magnitude to be the quantity of interest.
Definition: eigen_solver.h:201
void enable_compute_eigenvectors()
Set to enable the computation of the eigenvectors (default)
Definition: eigen_solver.h:153
LinearSolver *& linear_solver_pt()
Return a pointer to the linear solver object.
Definition: eigen_solver.h:207
bool Small
Definition: eigen_solver.h:124
void track_eigenvalue_real_part()
Set the real part to be the quantity of interest (default)
Definition: eigen_solver.h:189
LinearSolver * Default_linear_solver_pt
Pointer to a default linear solver.
Definition: eigen_solver.h:110
void disable_compute_eigenvectors()
Set to disable the computation of the eigenvectors.
Definition: eigen_solver.h:159
ARPACK()
Constructor.
Definition: eigen_solver.cc:49
bool Compute_eigenvectors
Boolean to indicate whether or not to compute the eigenvectors.
Definition: eigen_solver.h:127
Definition: complex_matrices.h:56
Definition: linear_algebra_distribution.h:435
Definition: eigen_solver.h:61
virtual ~EigenSolver()
Empty destructor.
Definition: eigen_solver.h:75
EigenSolver(const EigenSolver &)
Empty copy constructor.
Definition: eigen_solver.h:72
EigenSolver()
Empty constructor.
Definition: eigen_solver.h:69
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.
Definition: eigen_solver.h:87
double Sigma_real
Definition: eigen_solver.h:65
const double & get_shift() const
Return the value of the shift (const version)
Definition: eigen_solver.h:93
Class for the LAPACK eigensolver.
Definition: eigen_solver.h:224
void find_eigenvalues(const ComplexMatrixBase &A, const ComplexMatrixBase &M, Vector< std::complex< double >> &eigenvalue, Vector< Vector< std::complex< double >>> &eigenvector)
Definition: eigen_solver.cc:707
void solve_eigenproblem(Problem *const &problem_pt, const int &n_eval, Vector< std::complex< double >> &eigenvalue, Vector< DoubleVector > &eigenvector)
Solve the eigen problem.
Definition: eigen_solver.cc:540
virtual ~LAPACK_QZ()
Empty desctructor.
Definition: eigen_solver.h:233
void get_eigenvalues_right_of_shift()
Definition: eigen_solver.h:250
LAPACK_QZ()
Empty constructor.
Definition: eigen_solver.h:227
LAPACK_QZ(const LAPACK_QZ &)
Empty copy constructor.
Definition: eigen_solver.h:230
Definition: linear_solver.h:68
Definition: problem.h:151
Definition: oomph-lib/src/generic/Vector.h:58
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10