ParGeMSLR
Classes | Typedefs | Enumerations
gemslr.hpp File Reference

Sequential GeMSLR preconditioner. More...

#include <iostream>
#include "../utils/utils.hpp"
#include "../utils/structs.hpp"
#include "../vectors/int_vector.hpp"
#include "../vectors/sequential_vector.hpp"
#include "../matrices/csr_matrix.hpp"
#include "../solvers/solver.hpp"
#include "../solvers/fgmres.hpp"
#include "ilu.hpp"

Go to the source code of this file.

Classes

class  pargemslr::GemslrEBFCMatrixClass< MatrixType, VectorType, DataType >
 Class of matvec EB^{-1}FC^{-1}. More...
 
class  pargemslr::GemslrSchurMatrixClass< MatrixType, VectorType, DataType >
 Class of matvec EB^{-1}FC^{-1}. More...
 
class  pargemslr::GemslrSchurSolveClass< MatrixType, VectorType, DataType >
 Class of matvec EB^{-1}FC^{-1}. More...
 
struct  pargemslr::GemslrLevelSetupStruct< DataType >
 The GEMSLR options on each level. More...
 
class  pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >
 The GEMSLR information on each level, contains the solver for B and the low-rank information for S. More...
 
struct  pargemslr::GemslrSetupStruct< DataType >
 The GEMSLR options. More...
 
class  pargemslr::GemslrClass< MatrixType, VectorType, DataType >
 The local real ilu preconditioner, only work for sequential CSR matrix. More...
 

Typedefs

typedef GemslrEBFCMatrixClass< CsrMatrixClass< float >, SequentialVectorClass< float >, float > pargemslr::precond_gemslrebfc_csr_seq_float
 
typedef GemslrEBFCMatrixClass< CsrMatrixClass< double >, SequentialVectorClass< double >, double > pargemslr::precond_gemslrebfc_csr_seq_double
 
typedef GemslrEBFCMatrixClass< CsrMatrixClass< complexs >, SequentialVectorClass< complexs >, complexs > pargemslr::precond_gemslrebfc_csr_seq_complexs
 
typedef GemslrEBFCMatrixClass< CsrMatrixClass< complexd >, SequentialVectorClass< complexd >, complexd > pargemslr::precond_gemslrebfc_csr_seq_complexd
 
typedef GemslrSchurMatrixClass< CsrMatrixClass< float >, SequentialVectorClass< float >, float > pargemslr::precond_gemslr_schur_seq_float
 
typedef GemslrSchurMatrixClass< CsrMatrixClass< double >, SequentialVectorClass< double >, double > pargemslr::precond_gemslr_schur_seq_double
 
typedef GemslrSchurMatrixClass< CsrMatrixClass< complexs >, SequentialVectorClass< complexs >, complexs > pargemslr::precond_gemslr_schur_seq_complexs
 
typedef GemslrSchurMatrixClass< CsrMatrixClass< complexd >, SequentialVectorClass< complexd >, complexd > pargemslr::precond_gemslr_schur_seq_complexd
 
typedef GemslrSchurMatrixClass< precond_gemslr_schur_seq_float, SequentialVectorClass< float >, float > pargemslr::precond_gemslr_schursolve_seq_float
 
typedef GemslrSchurMatrixClass< precond_gemslr_schur_seq_double, SequentialVectorClass< double >, double > pargemslr::precond_gemslr_schursolve_seq_double
 
typedef GemslrSchurMatrixClass< precond_gemslr_schur_seq_complexs, SequentialVectorClass< complexs >, complexs > pargemslr::precond_gemslr_schursolve_seq_complexs
 
typedef GemslrSchurMatrixClass< precond_gemslr_schur_seq_complexd, SequentialVectorClass< complexd >, complexd > pargemslr::precond_gemslr_schursolve_seq_complexd
 
typedef GemslrLevelClass< CsrMatrixClass< float >, SequentialVectorClass< float >, float > pargemslr::precond_gemslrlevel_csr_seq_float
 
typedef GemslrLevelClass< CsrMatrixClass< double >, SequentialVectorClass< double >, double > pargemslr::precond_gemslrlevel_csr_seq_double
 
typedef GemslrLevelClass< CsrMatrixClass< complexs >, SequentialVectorClass< complexs >, complexs > pargemslr::precond_gemslrlevel_csr_seq_complexs
 
typedef GemslrLevelClass< CsrMatrixClass< complexd >, SequentialVectorClass< complexd >, complexd > pargemslr::precond_gemslrlevel_csr_seq_complexd
 
typedef GemslrClass< CsrMatrixClass< float >, SequentialVectorClass< float >, float > pargemslr::precond_gemslr_csr_seq_float
 
typedef GemslrClass< CsrMatrixClass< double >, SequentialVectorClass< double >, double > pargemslr::precond_gemslr_csr_seq_double
 
typedef GemslrClass< CsrMatrixClass< complexs >, SequentialVectorClass< complexs >, complexs > pargemslr::precond_gemslr_csr_seq_complexs
 
typedef GemslrClass< CsrMatrixClass< complexd >, SequentialVectorClass< complexd >, complexd > pargemslr::precond_gemslr_csr_seq_complexd
 

Enumerations

enum  pargemslr::GemslrLowRankOptionEnum { kGemslrLowrankNoRestart, kGemslrLowrankThickRestart, kGemslrLowrankSubspaceIteration }
 The low-rank option. More...
 
enum  pargemslr::GemslrPartitionOptionEnum { kGemslrPartitionND, kGemslrPartitionRKway }
 The partition option. More...
 
enum  pargemslr::GemslrReorderingOptionEnum { kGemslrReorderingNoExtra, kGemslrReorderingIO, kGemslrReorderingDDPQ }
 The reordering option. More...
 
enum  pargemslr::GemslrBSolveOptionEnum { kGemslrBSolveILUT, kGemslrBSolveILUK, kGemslrBSolveGemslr }
 The B Solve option. More...
 
enum  pargemslr::GemslrBSmoothOptionEnum { kGemslrBSmoothBMILU, kGemslrBSmoothBILU, kGemslrBSmoothAMILU, kGemslrBSmoothAILU }
 The B Smoothing option. More...
 
enum  pargemslr::GemslrSmoothingOptionEnum { kGemslrSmoothingBilu, kGemslrSmoothingAbj, kGemslrSmoothingL1Jacobi }
 The Smoothing option for the multiplicative solve. More...
 
enum  pargemslr::GemslrCSolveOptionEnum {
  kGemslrCSolveILUT, kGemslrCSolveILUK, kGemslrCSolveBJILUT, kGemslrCSolveBJILUK,
  kGemslrCSolveBJILUT2, kGemslrCSolveBJILUK2, kGemslrCSolveDirect
}
 The C Solve option. More...
 
enum  pargemslr::GemslrSolvePhaseEnum { kGemslrPhaseSolve, kGemslrPhaseSetup }
 The solve phase. More...
 
enum  pargemslr::GemslrSolveOptionEnum { kGemslrLUSolve, kGemslrUSolve, kGemslrMulSolve, kGemslrMmulSolve }
 The solve option. More...
 
enum  pargemslr::GemslrGlobalPrecondOptionEnum {
  kGemslrGlobalPrecondBJ, kGemslrGlobalPrecondESMSLR, kGemslrGlobalPrecondGeMSLR, kGemslrGlobalPrecondPSLR,
  kGemslrGlobalPrecondPCLR, kGemslrGlobalPrecondA
}
 The schur complement option. More...
 

Enumeration Type Documentation

◆ GemslrBSmoothOptionEnum

The B Smoothing option.

◆ GemslrBSolveOptionEnum

The B Solve option.

◆ GemslrCSolveOptionEnum

The C Solve option. Sequential ILUT, sequential ILUK, BJILUT, BJILUK, BJILU with PSLR.

◆ GemslrGlobalPrecondOptionEnum

The schur complement option.

◆ GemslrLowRankOptionEnum

The low-rank option.

◆ GemslrPartitionOptionEnum

The partition option.

◆ GemslrReorderingOptionEnum

The reordering option.

◆ GemslrSmoothingOptionEnum

The Smoothing option for the multiplicative solve.

◆ GemslrSolveOptionEnum

The solve option. LU solve: both L solve and U solve; U solve: U solve only;
Mul solve: the multiplicative solve; Mmul solve: the multiplicative solve with modified ILU.

◆ GemslrSolvePhaseEnum

The solve phase.