153
153
/// Compute the n first eigenpairs of the matrix A (solve Ax = \lambda x)
154
void solve(std::size_t n);
156
156
/// Get the first eigenvalue
157
157
void get_eigenvalue(double& lr, double& lc) const;
159
159
/// Get the first eigenpair
160
void get_eigenpair(double& lr, double& lc,
160
void get_eigenpair(double& lr, double& lc,
161
161
GenericVector& r, GenericVector& c) const;
163
163
/// Get the first eigenpair
164
void get_eigenpair(double& lr, double& lc,
164
void get_eigenpair(double& lr, double& lc,
165
165
PETScVector& r, PETScVector& c) const;
167
167
/// Get eigenvalue i
168
void get_eigenvalue(double& lr, double& lc, uint i) const;
171
void get_eigenpair(double& lr, double& lc,
172
GenericVector& r, GenericVector& c, uint i) const;
175
void get_eigenpair(double& lr, double& lc,
176
PETScVector& r, PETScVector& c, uint i) const;
168
void get_eigenvalue(double& lr, double& lc, std::size_t i) const;
171
void get_eigenpair(double& lr, double& lc,
172
GenericVector& r, GenericVector& c, std::size_t i) const;
175
void get_eigenpair(double& lr, double& lc,
176
PETScVector& r, PETScVector& c, std::size_t i) const;
178
178
// Get the number of iterations used by the solver
179
int get_iteration_number() const;
179
std::size_t get_iteration_number() const;
181
181
// Get the number of converged eigenvalues
182
int get_number_converged() const;
182
std::size_t get_number_converged() const;
184
184
// Set deflation space
185
185
void set_deflation_space(const PETScVector& deflation_space);
218
218
void set_solver(std::string spectrum);
221
void set_tolerance(double tolerance, uint maxiter);
221
void set_tolerance(double tolerance, std::size_t maxiter);
223
223
// Operators (A x = \lambda x or Ax = \lambda B x)
224
224
boost::shared_ptr<const PETScMatrix> A;