hypre 2.24.0
Loading...
Searching...
No Matches
Eigensolvers

LOBPCG Eigensolver

HYPRE_Int HYPRE_LOBPCGCreate (mv_InterfaceInterpreter *interpreter, HYPRE_MatvecFunctions *mvfunctions, HYPRE_Solver *solver)
 
HYPRE_Int HYPRE_LOBPCGDestroy (HYPRE_Solver solver)
 
HYPRE_Int HYPRE_LOBPCGSetPrecond (HYPRE_Solver solver, HYPRE_PtrToSolverFcn precond, HYPRE_PtrToSolverFcn precond_setup, HYPRE_Solver precond_solver)
 
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)
 
HYPRE_Int HYPRE_LOBPCGSetupB (HYPRE_Solver solver, HYPRE_Matrix B, HYPRE_Vector x)
 
HYPRE_Int HYPRE_LOBPCGSetupT (HYPRE_Solver solver, HYPRE_Matrix T, HYPRE_Vector x)
 
HYPRE_Int HYPRE_LOBPCGSolve (HYPRE_Solver solver, mv_MultiVectorPtr y, mv_MultiVectorPtr x, HYPRE_Real *lambda)
 
HYPRE_Int HYPRE_LOBPCGSetTol (HYPRE_Solver solver, HYPRE_Real tol)
 
HYPRE_Int HYPRE_LOBPCGSetRTol (HYPRE_Solver solver, HYPRE_Real tol)
 
HYPRE_Int HYPRE_LOBPCGSetMaxIter (HYPRE_Solver solver, HYPRE_Int max_iter)
 
HYPRE_Int HYPRE_LOBPCGSetPrecondUsageMode (HYPRE_Solver solver, HYPRE_Int mode)
 
HYPRE_Int HYPRE_LOBPCGSetPrintLevel (HYPRE_Solver solver, HYPRE_Int level)
 
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)
 

Detailed Description

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

Function Documentation

◆ HYPRE_LOBPCGCreate()

HYPRE_Int HYPRE_LOBPCGCreate ( mv_InterfaceInterpreter * interpreter,
HYPRE_MatvecFunctions * mvfunctions,
HYPRE_Solver * solver )

LOBPCG constructor.

◆ HYPRE_LOBPCGDestroy()

HYPRE_Int HYPRE_LOBPCGDestroy ( HYPRE_Solver solver)

LOBPCG destructor.

◆ HYPRE_LOBPCGEigenvaluesHistory()

utilities_FortranMatrix * HYPRE_LOBPCGEigenvaluesHistory ( HYPRE_Solver solver)

◆ HYPRE_LOBPCGGetPrecond()

HYPRE_Int HYPRE_LOBPCGGetPrecond ( HYPRE_Solver solver,
HYPRE_Solver * precond_data_ptr )

◆ HYPRE_LOBPCGIterations()

HYPRE_Int HYPRE_LOBPCGIterations ( HYPRE_Solver solver)

◆ hypre_LOBPCGMultiOperatorB()

void hypre_LOBPCGMultiOperatorB ( void * data,
void * x,
void * y )

◆ HYPRE_LOBPCGResidualNorms()

utilities_FortranMatrix * HYPRE_LOBPCGResidualNorms ( HYPRE_Solver solver)

◆ HYPRE_LOBPCGResidualNormsHistory()

utilities_FortranMatrix * HYPRE_LOBPCGResidualNormsHistory ( HYPRE_Solver solver)

◆ HYPRE_LOBPCGSetMaxIter()

HYPRE_Int HYPRE_LOBPCGSetMaxIter ( HYPRE_Solver solver,
HYPRE_Int max_iter )

(Optional) Set maximum number of iterations.

◆ HYPRE_LOBPCGSetPrecond()

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_LOBPCGSetPrecondUsageMode()

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_LOBPCGSetPrintLevel()

HYPRE_Int HYPRE_LOBPCGSetPrintLevel ( HYPRE_Solver solver,
HYPRE_Int level )

(Optional) Set the amount of printing to do to the screen.

◆ HYPRE_LOBPCGSetRTol()

HYPRE_Int HYPRE_LOBPCGSetRTol ( HYPRE_Solver solver,
HYPRE_Real tol )

(Optional) Set the relative convergence tolerance.

◆ HYPRE_LOBPCGSetTol()

HYPRE_Int HYPRE_LOBPCGSetTol ( HYPRE_Solver solver,
HYPRE_Real tol )

(Optional) Set the absolute convergence tolerance.

◆ HYPRE_LOBPCGSetup()

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_LOBPCGSetupB()

HYPRE_Int HYPRE_LOBPCGSetupB ( HYPRE_Solver solver,
HYPRE_Matrix B,
HYPRE_Vector x )

(Optional) Set up B. If not called, B = I.

◆ HYPRE_LOBPCGSetupT()

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_LOBPCGSolve()

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.

◆ lobpcg_MultiVectorByMultiVector()

void lobpcg_MultiVectorByMultiVector ( mv_MultiVectorPtr x,
mv_MultiVectorPtr y,
utilities_FortranMatrix * xy )