hypre  2.18.1
HYPRE_lobpcg.h File Reference

Functions

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)
 

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: {\tt 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 {\tt 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 {\tt 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 
)