20 #ifndef LIBMESH_EIGEN_SOLVER_H 21 #define LIBMESH_EIGEN_SOLVER_H 25 #ifdef LIBMESH_HAVE_SLEPC 35 #ifdef LIBMESH_FORWARD_DECLARE_ENUMS 54 template <
typename T>
class SparseMatrix;
55 template <
typename T>
class ShellMatrix;
56 template <
typename T>
class NumericVector;
57 class SolverConfiguration;
103 libmesh_experimental();
113 libmesh_experimental();
125 virtual void init () = 0;
174 const unsigned int m_its) = 0;
186 const unsigned int m_its) = 0;
201 const unsigned int m_its) = 0;
215 const unsigned int m_its) = 0;
229 const unsigned int m_its) = 0;
243 const unsigned int m_its) = 0;
310 #endif // LIBMESH_HAVE_SLEPC 312 #endif // LIBMESH_EIGEN_SOLVER_H void set_eigensolver_type(const EigenSolverType est)
SolverConfiguration * _solver_configuration
virtual void set_initial_space(NumericVector< T > &initial_space_in)=0
bool _close_matrix_before_solve
Provides a uniform interface to vector storage schemes for different linear algebra libraries...
virtual std::pair< Real, Real > get_eigenpair(dof_id_type i, NumericVector< T > &solution)=0
virtual void attach_deflation_space(NumericVector< T > &deflation_vector)=0
PositionOfSpectrum _position_of_spectrum
PositionOfSpectrum position_of_spectrum() const
EigenProblemType eigen_problem_type() const
virtual std::pair< Real, Real > get_eigenvalue(dof_id_type i)=0
EigenSolver(const Parallel::Communicator &comm_in)
void set_eigenproblem_type(EigenProblemType ept)
An object whose state is distributed along a set of processors.
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)=0
bool get_close_matrix_before_solve() const
static std::unique_ptr< EigenSolver< T > > build(const Parallel::Communicator &comm_in, const SolverPackage solver_package=SLEPC_SOLVERS)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void set_position_of_spectrum(PositionOfSpectrum pos)
EigenSolverType _eigen_solver_type
EigenProblemType _eigen_problem_type
void set_solver_configuration(SolverConfiguration &solver_configuration)
EigenSolverType eigen_solver_type() const
void set_close_matrix_before_solve(bool val)
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)=0
Base class which defines the interface for solving eigenproblems.