Eigensolvers
- group Eigensolvers
A basic interface for eigensolvers.
These eigensolvers support many of the matrix/vector storage schemes in hypre. They should be used in conjunction with the storage-specific interfaces.
LOBPCG Eigensolver
-
HYPRE_Int HYPRE_LOBPCGCreate(mv_InterfaceInterpreter *interpreter, HYPRE_MatvecFunctions *mvfunctions, HYPRE_Solver *solver)
LOBPCG constructor.
-
HYPRE_Int HYPRE_LOBPCGDestroy(HYPRE_Solver solver)
LOBPCG destructor.
-
HYPRE_Int HYPRE_LOBPCGSetPrecond(HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver)
(Optional) Set the preconditioner to use.
If not called, preconditioning is not used.
-
HYPRE_Int HYPRE_LOBPCGGetPrecond(HYPRE_Solver solver, HYPRE_Solver *precond_data_ptr)
-
HYPRE_Int HYPRE_LOBPCGSetup(HYPRE_Solver solver, HYPRE_Matrix A, HYPRE_Vector b, HYPRE_Vector x)
Set up A and the preconditioner (if there is one).
-
HYPRE_Int HYPRE_LOBPCGSetupB(HYPRE_Solver solver, HYPRE_Matrix B, HYPRE_Vector x)
(Optional) Set up B.
If not called, B = I.
-
HYPRE_Int HYPRE_LOBPCGSetupT(HYPRE_Solver solver, HYPRE_Matrix T, HYPRE_Vector x)
(Optional) Set the preconditioning to be applied to Tx = b, not Ax = b.
-
HYPRE_Int HYPRE_LOBPCGSolve(HYPRE_Solver solver, mv_MultiVectorPtr y, mv_MultiVectorPtr x, HYPRE_Real *lambda)
Solve A x = lambda B x, y’x = 0.
-
HYPRE_Int HYPRE_LOBPCGSetTol(HYPRE_Solver solver, HYPRE_Real tol)
(Optional) Set the absolute convergence tolerance.
-
HYPRE_Int HYPRE_LOBPCGSetRTol(HYPRE_Solver solver, HYPRE_Real tol)
(Optional) Set the relative convergence tolerance.
-
HYPRE_Int HYPRE_LOBPCGSetMaxIter(HYPRE_Solver solver, HYPRE_Int max_iter)
(Optional) Set maximum number of iterations.
-
HYPRE_Int HYPRE_LOBPCGSetPrecondUsageMode(HYPRE_Solver solver, HYPRE_Int mode)
Define which initial guess for inner PCG iterations to use: mode = 0: use zero initial guess, otherwise use RHS.
-
HYPRE_Int HYPRE_LOBPCGSetPrintLevel(HYPRE_Solver solver, HYPRE_Int level)
(Optional) Set the amount of printing to do to the screen.
-
utilities_FortranMatrix *HYPRE_LOBPCGResidualNorms(HYPRE_Solver solver)
-
utilities_FortranMatrix *HYPRE_LOBPCGResidualNormsHistory(HYPRE_Solver solver)
-
utilities_FortranMatrix *HYPRE_LOBPCGEigenvaluesHistory(HYPRE_Solver solver)
-
HYPRE_Int HYPRE_LOBPCGIterations(HYPRE_Solver solver)
-
void hypre_LOBPCGMultiOperatorB(void *data, void *x, void *y)
-
void lobpcg_MultiVectorByMultiVector(mv_MultiVectorPtr x, mv_MultiVectorPtr y, utilities_FortranMatrix *xy)
-
HYPRE_Int HYPRE_LOBPCGCreate(mv_InterfaceInterpreter *interpreter, HYPRE_MatvecFunctions *mvfunctions, HYPRE_Solver *solver)