Rate This Document
Findability
Accuracy
Completeness
Readability

Function Description

KML_SOLVER (sparse solver library) provides both direct and iterative solvers, supporting single-node multiple-threading and cluster-based MPI multi-processing.

  • KML_SOLVER provides single-process solvers for sparse linear equations. A sparse matrix is defined as a matrix in which the majority of elements are zero. The following methods are involved:
    • Iterative solution: Conjugate Gradient (CG) supports single-precision and double-precision real numbers, but does not support complex numbers.
    • Iterative solution: Generalized conjugate residual (GCR) supports single-precision and double-precision real numbers, but does not support complex numbers.
    • Direct solution: LDLT factorization and solution for symmetric indefinite matrices, supporting four data types: single-precision real numbers, double-precision real numbers, single-precision complex numbers, and double-precision complex numbers.
    • Direct solution: lower–upper (LU) factorization and solution for general matrices, supporting four data types: single-precision real numbers, double-precision real numbers, single-precision complex numbers, and double-precision complex numbers.
    • Direct solution: LLT/LLH factorization and solution for symmetric positive-definite matrices, supporting four data types: single-precision real numbers, double-precision real numbers, single-precision complex numbers, and double-precision complex numbers.
    • Direct solution: Direct Sparse Solver (DSS), which automatically selects the optimal solution method based on the matrix type. This interface is recommended for the direct solutions.
      • Supports symmetric positive-definite, symmetric indefinite, Hermitian positive-definite, Hermitian indefinite, structurally symmetric, and unsymmetric (general) matrices.
      • Supports four data types: single-precision real numbers, double-precision real numbers, single-precision complex numbers, and double-precision complex numbers.
  • KML_SOLVER provides single-process preconditioners. The following preconditioners are involved:
    • Structured ILU0: supports single-precision real numbers but does not support double-precision real numbers, single-precision complex numbers, or double-precision complex numbers.
    • ILU0: supports single-precision and double-precision real numbers, but does not support complex numbers.
  • KML_SOLVER also provides solvers for linear systems for multi-process environments. The following methods are involved:
    • Iterative solution: CG supports single-precision and double-precision real numbers, but does not support complex numbers.
    • Iterative solution: BICGSTAB supports single-precision and double-precision real numbers, but does not support complex numbers.
    • Iterative solution: GMRES supports single-precision and double-precision real numbers, but does not support complex numbers.
    • Iterative solution: CSI supports single-precision and double-precision real numbers, but does not support complex numbers.
    • Direct solution: SCADSS-LDLT factorization and solution for symmetric indefinite matrices, supporting four data types: single-precision real numbers, double-precision real numbers, single-precision complex numbers, and double-precision complex numbers.
    • Direct solution: SCADSS-LU factorization and solution for general matrices, supporting four data types: single-precision real numbers, double-precision real numbers, single-precision complex numbers, and double-precision complex numbers.
    • Direct solution: SCADSS-LLT/LLH factorization and solution for symmetric positive-definite matrices, supporting four data types: single-precision real numbers, double-precision real numbers, single-precision complex numbers, and double-precision complex numbers.
    • Iterative solution: Hybrid Multigrid (HMG) supports structured matrices.
    • Iterative solution: TYAMG supports data in CSR format, but does not support data in CSC or COO format. PMIS coarsening and HMIS coarsening are supported.
    • Direct solution: scalable DSS (SCADSS), which automatically selects the optimal solution method based on the matrix type. This interface is recommended for the direct solution using SCADSS.
      • Supports symmetric positive-definite, symmetric indefinite, Hermitian positive-definite, Hermitian indefinite, structurally symmetric, and general matrices.
      • Supports four data types: single-precision real numbers, double-precision real numbers, single-precision complex numbers, and double-precision complex numbers.
  • KML_SOLVER also provides preconditioners for multi-process environments. The following preconditioners are involved:
    • ICC: supports single-precision and double-precision real numbers, but does not support complex numbers.
    • ILU0: supports single-precision and double-precision real numbers, but does not support complex numbers.
    • SOR: supports single-precision and double-precision real numbers, but does not support complex numbers.
    • ILUT: supports single-precision and double-precision real numbers, but does not support complex numbers.
    • AMG: supports single-precision and double-precision real numbers, but does not support complex numbers.