Eigensolvers¶
- group Eigensolvers
These eigensolvers support many of the matrix/vector storage schemes in hypre. They should be used in conjunction with the storage-specific interfaces.
@memo A basic interface for eigensolvers
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)¶