20 #ifndef LIBMESH_SLEPC_EIGEN_SOLVER_H 21 #define LIBMESH_SLEPC_EIGEN_SOLVER_H 25 #ifdef LIBMESH_HAVE_SLEPC 32 EXTERN_C_FOR_SLEPC_BEGIN
34 # include <slepceps.h> 36 EXTERN_C_FOR_SLEPC_END
70 virtual void clear()
override;
76 virtual void init()
override;
89 virtual std::pair<unsigned int, unsigned int>
94 const unsigned int m_its)
override;
100 virtual std::pair<unsigned int, unsigned int>
105 const unsigned int m_its)
override;
120 virtual std::pair<unsigned int, unsigned int>
126 const unsigned int m_its)
override;
132 virtual std::pair<unsigned int, unsigned int>
138 const unsigned int m_its)
override;
150 virtual std::pair<unsigned int, unsigned int>
156 const unsigned int m_its)
override;
168 virtual std::pair<unsigned int, unsigned int>
174 const unsigned int m_its)
override;
184 virtual std::pair<Real, Real>
191 virtual std::pair<Real, Real>
225 const unsigned int m_its);
235 const unsigned int m_its);
279 #endif // #ifdef LIBMESH_HAVE_SLEPC 280 #endif // LIBMESH_SLEPC_EIGEN_SOLVER_H std::pair< unsigned int, unsigned int > _solve_generalized_helper(Mat mat_A, Mat mat_B, int nev, int ncv, const double tol, const unsigned int m_its)
Real get_relative_error(unsigned int i)
EigenSolver implementation based on SLEPc.
virtual std::pair< Real, Real > get_eigenvalue(dof_id_type i) override
Provides a uniform interface to vector storage schemes for different linear algebra libraries...
static PetscErrorCode _petsc_shell_matrix_get_diagonal(Mat mat, Vec dest)
void set_slepc_solver_type()
virtual void set_initial_space(NumericVector< T > &initial_space_in) override
virtual void clear() override
void set_slepc_problem_type()
virtual std::pair< unsigned int, unsigned int > solve_standard(SparseMatrix< T > &matrix_A, int nev, int ncv, const double tol, const unsigned int m_its) override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static PetscErrorCode _petsc_shell_matrix_mult(Mat mat, Vec arg, Vec dest)
std::pair< unsigned int, unsigned int > _solve_standard_helper(Mat mat, int nev, int ncv, const double tol, const unsigned int m_its)
SlepcEigenSolver(const Parallel::Communicator &comm_in)
void set_slepc_position_of_spectrum()
virtual void init() override
virtual std::pair< unsigned int, unsigned int > solve_generalized(SparseMatrix< T > &matrix_A, SparseMatrix< T > &matrix_B, int nev, int ncv, const double tol, const unsigned int m_its) override
virtual void attach_deflation_space(NumericVector< T > &deflation_vector) override
virtual std::pair< Real, Real > get_eigenpair(dof_id_type i, NumericVector< T > &solution_in) override
Base class which defines the interface for solving eigenproblems.