* basically all the actual solver calls happen in this class, and derived
* classes simply set the right flags to select one solver or another, or to
* set certain parameters for individual solvers.
+ *
+ * For examples of how this and its derived classes can be used, including
+ * how to provide preconditioners to the matrix of which eigenvalues are
+ * to be computed, see the documentation of the SolverBase class as well
+ * as the extensive discussions in the documentation of the SLEPcWrappers
+ * namespace.
*/
class SolverBase
{
void * solver_control);
};
+
+
/**
* An implementation of the solver interface using the SLEPc Krylov-Schur
* solver. Usage: All spectrum, all problem types, complex.
*
+ * For examples of how this and its sibling classes can be used, including
+ * how to provide preconditioners to the matrix of which eigenvalues are
+ * to be computed, see the documentation of the SolverBase class as well
+ * as the extensive discussions in the documentation of the SLEPcWrappers
+ * namespace.
+ *
* @ingroup SLEPcWrappers
*/
class SolverKrylovSchur : public SolverBase
const AdditionalData additional_data;
};
+
+
/**
* An implementation of the solver interface using the SLEPc Arnoldi solver.
* Usage: All spectrum, all problem types, complex.
*
+ * For examples of how this and its sibling classes can be used, including
+ * how to provide preconditioners to the matrix of which eigenvalues are
+ * to be computed, see the documentation of the SolverBase class as well
+ * as the extensive discussions in the documentation of the SLEPcWrappers
+ * namespace.
+ *
* @ingroup SLEPcWrappers
*/
class SolverArnoldi : public SolverBase
const AdditionalData additional_data;
};
+
+
/**
* An implementation of the solver interface using the SLEPc Lanczos solver.
* Usage: All spectrum, all problem types, complex.
*
+ * For examples of how this and its sibling classes can be used, including
+ * how to provide preconditioners to the matrix of which eigenvalues are
+ * to be computed, see the documentation of the SolverBase class as well
+ * as the extensive discussions in the documentation of the SLEPcWrappers
+ * namespace.
+ *
* @ingroup SLEPcWrappers
*/
class SolverLanczos : public SolverBase
const AdditionalData additional_data;
};
+
+
/**
* An implementation of the solver interface using the SLEPc Power solver.
* Usage: Largest values of spectrum only, all problem types, complex.
*
+ * For examples of how this and its sibling classes can be used, including
+ * how to provide preconditioners to the matrix of which eigenvalues are
+ * to be computed, see the documentation of the SolverBase class as well
+ * as the extensive discussions in the documentation of the SLEPcWrappers
+ * namespace.
+ *
* @ingroup SLEPcWrappers
*/
class SolverPower : public SolverBase
const AdditionalData additional_data;
};
+
+
/**
* An implementation of the solver interface using the SLEPc Davidson
* solver. Usage: All problem types.
*
+ * For examples of how this and its sibling classes can be used, including
+ * how to provide preconditioners to the matrix of which eigenvalues are
+ * to be computed, see the documentation of the SolverBase class as well
+ * as the extensive discussions in the documentation of the SLEPcWrappers
+ * namespace.
+ *
* @ingroup SLEPcWrappers
*/
class SolverGeneralizedDavidson : public SolverBase
const AdditionalData additional_data;
};
+
+
/**
* An implementation of the solver interface using the SLEPc Jacobi-Davidson
* solver. Usage: All problem types.
*
+ * For examples of how this and its sibling classes can be used, including
+ * how to provide preconditioners to the matrix of which eigenvalues are
+ * to be computed, see the documentation of the SolverBase class as well
+ * as the extensive discussions in the documentation of the SLEPcWrappers
+ * namespace.
+ *
* @ingroup SLEPcWrappers
*/
class SolverJacobiDavidson : public SolverBase
};
+
/**
* An implementation of the solver interface using the SLEPc LAPACK direct
* solver.
*
+ * For examples of how this and its sibling classes can be used, including
+ * how to provide preconditioners to the matrix of which eigenvalues are
+ * to be computed, see the documentation of the SolverBase class as well
+ * as the extensive discussions in the documentation of the SLEPcWrappers
+ * namespace.
+ *
* @ingroup SLEPcWrappers
*/
class SolverLAPACK : public SolverBase
const AdditionalData additional_data;
};
+
+
// --------------------------- inline and template functions -----------
/**
* This is declared here to make it possible to take a std::vector of