Lines Matching +full:petsc +full:- +full:dist

14   STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)A->data;
19 PetscCall(PetscFree(A->data));
53 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
61 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
69 MatSTRUMPACKSetReordering - Set STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master> fill-reducing reordering
74 + F - the factored matrix obtained by calling `MatGetFactor()` from PETSc-STRUMPACK interface
75 - reordering - the code to be used to find the fill-reducing reordering
78 . -mat_strumpack_reordering <METIS> - Sparsity reducing matrix reordering, see `MatSTRUMPACKReordering`
93 MatSTRUMPACKGetReordering - Get STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master> fill-reducing reordering
98 . F - the factored matrix obtained by calling `MatGetFactor()` from PETSc-STRUMPACK interface
101 . reordering - the code to be used to find the fill-reducing reordering
118 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
126 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
134 MatSTRUMPACKSetColPerm - Set whether STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master>
140 + F - the factored matrix obtained by calling `MatGetFactor()`
141 - cperm - `PETSC_TRUE` to permute (internally) the columns of the matrix
144 . -mat_strumpack_colperm <cperm> - true to use the permutation
159 MatSTRUMPACKGetColPerm - Get whether STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master>
165 . F - the factored matrix obtained by calling `MatGetFactor()`
168 . cperm - Indicates whether STRUMPACK will permute columns
185 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
198 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
206 MatSTRUMPACKSetGPU - Set whether STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master>
212 + F - the factored matrix obtained by calling `MatGetFactor()` from PETSc-STRUMPACK interface
213 - gpu - whether or not to use GPU acceleration
216 . -mat_strumpack_gpu <gpu> - true to use gpu offload
231 MatSTRUMPACKGetGPU - Get whether STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master>
237 . F - the factored matrix obtained by calling `MatGetFactor()` from PETSc-STRUMPACK interface
240 . gpu - whether or not STRUMPACK will try to use GPU acceleration
257 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
261 PetscCheck(comp != MAT_STRUMPACK_COMPRESSION_TYPE_HODLR && comp != MAT_STRUMPACK_COMPRESSION_TYPE_BLR_HODLR && comp != MAT_STRUMPACK_COMPRESSION_TYPE_ZFP_BLR_HODLR, PetscObjectComm((PetscObject)F), PETSC_ERR_SUP, "Compression scheme requires ButterflyPACK, please reconfigure with --download-butterflypack");
264 PetscCheck(comp != MAT_STRUMPACK_COMPRESSION_TYPE_ZFP_BLR_HODLR && comp != MAT_STRUMPACK_COMPRESSION_TYPE_LOSSLESS && comp != MAT_STRUMPACK_COMPRESSION_TYPE_LOSSY, PetscObjectComm((PetscObject)F), PETSC_ERR_SUP, "Compression scheme requires ZFP, please reconfigure with --download-zfp");
271 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
279 MatSTRUMPACKSetCompression - Set STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master> compression type
282 + F - the factored matrix obtained by calling `MatGetFactor()` from PETSc-STRUMPACK interface
283 - comp - Type of compression to be used in the approximate sparse factorization
286 . -mat_strumpack_compression <NONE> - Type of rank-structured compression in sparse LU factors (choose one of) NONE HSS BLR HODLR BLR_HODLR ZFP_BLR_HODLR LOSSLESS LOSSY
291 Default for `comp` is `MAT_STRUMPACK_COMPRESSION_TYPE_NONE` for `-pc_type lu` and `MAT_STRUMPACK_COMPRESSION_TYPE_BLR`
292 for `-pc_type ilu`
305 MatSTRUMPACKGetCompression - Get STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master> compression type
308 . F - the factored matrix obtained by calling `MatGetFactor()` from PETSc-STRUMPACK interface
311 . comp - Type of compression to be used in the approximate sparse factorization
316 Default is `MAT_STRUMPACK_COMPRESSION_TYPE_NONE` for `-pc_type lu` and `MAT_STRUMPACK_COMPRESSION_TYPE_BLR` for `-pc_type ilu`
331 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
339 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
347 MatSTRUMPACKSetCompRelTol - Set STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master> relative tolerance for compression
352 + F - the factored matrix obtained by calling `MatGetFactor()`
353 - rtol - relative compression tolerance
356 . -mat_strumpack_compression_rel_tol <1e-4> - Relative compression tolerance, when using `-pctype ilu`
371 MatSTRUMPACKGetCompRelTol - Get STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master> relative tolerance for compression
376 . F - the factored matrix obtained by calling `MatGetFactor()`
379 . rtol - relative compression tolerance
396 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
404 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
412 MatSTRUMPACKSetCompAbsTol - Set STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master> absolute tolerance for compression
417 + F - the factored matrix obtained by calling `MatGetFactor()`
418 - atol - absolute compression tolerance
421 . -mat_strumpack_compression_abs_tol <1e-10> - Absolute compression tolerance, when using `-pctype ilu`
436 MatSTRUMPACKGetCompAbsTol - Get STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master> absolute tolerance for compression
441 . F - the factored matrix obtained by calling `MatGetFactor()`
444 . atol - absolute compression tolerance
461 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
469 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
477 MatSTRUMPACKSetCompLeafSize - Set STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master> leaf size for HSS, BLR, HODLR...
482 + F - the factored matrix obtained by calling `MatGetFactor()` from PETSc-STRUMPACK interface
483 - leaf_size - Size of diagonal blocks in rank-structured approximation
486 . -mat_strumpack_compression_leaf_size - Size of diagonal blocks in rank-structured approximation, when using `-pctype ilu`
501 MatSTRUMPACKGetCompLeafSize - Get STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master> leaf size for HSS, BLR, HODLR...
506 . F - the factored matrix obtained by calling `MatGetFactor()` from PETSc-STRUMPACK interface
509 . leaf_size - Size of diagonal blocks in rank-structured approximation
526 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
548 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
556 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
564 MatSTRUMPACKSetGeometricNxyz - Set STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master> mesh x, y and z dimensions, for use with GEOMETRIC ordering.
569 + F - the factored matrix obtained by calling `MatGetFactor()` from PETSc-STRUMPACK interface
570 . nx - x dimension of the mesh
571 . ny - y dimension of the mesh
572 - nz - z dimension of the mesh
593 MatSTRUMPACKSetGeometricComponents - Set STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master>
599 + F - the factored matrix obtained by calling `MatGetFactor()` from PETSc-STRUMPACK interface
600 - nc - Number of components/dof's per grid point
603 . -mat_strumpack_geometric_components <1> - Number of components per mesh point, for geometric nested dissection ordering
618 MatSTRUMPACKSetGeometricWidth - Set STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master> width of the separator, for use with GEOMETRIC ordering.
623 + F - the factored matrix obtained by calling `MatGetFactor()` from PETSc-STRUMPACK interface
624 - w - width of the separator
627 . -mat_strumpack_geometric_width <1> - Width of the separator of the mesh, for geometric nested dissection ordering
644 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
652 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
660 MatSTRUMPACKSetCompMinSepSize - Set STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master> minimum separator size for low-rank approximation
665 + F - the factored matrix obtained by calling `MatGetFactor()` from PETSc-STRUMPACK interface
666 - min_sep_size - minimum dense matrix size for low-rank approximation
669 . -mat_strumpack_compression_min_sep_size <min_sep_size> - Minimum size of dense sub-block for low-rank compression
684 MatSTRUMPACKGetCompMinSepSize - Get STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master> minimum separator size for low-rank approximation
689 . F - the factored matrix obtained by calling `MatGetFactor()` from PETSc-STRUMPACK interface
692 . min_sep_size - minimum dense matrix size for low-rank approximation
709 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
717 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
725 MatSTRUMPACKSetCompLossyPrecision - Set STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master> precision for lossy compression (requires ZFP support)
730 + F - the factored matrix obtained by calling `MatGetFactor()` from PETSc-STRUMPACK interface
731 - lossy_prec - Number of bitplanes to use in lossy compression
734 . -mat_strumpack_compression_lossy_precision <lossy_prec> - Precision when using lossy compression [1-64], when using `-pctype ilu -mat_strumpack_compression MAT_STRUMPACK_COMPRESSION_TYPE_LOSSY`
749 MatSTRUMPACKGetCompLossyPrecision - Get STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master> precision for lossy compression (requires ZFP support)
754 . F - the factored matrix obtained by calling `MatGetFactor()` from PETSc-STRUMPACK interface
757 . lossy_prec - Number of bitplanes to use in lossy compression
774 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
782 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
790 MatSTRUMPACKSetCompButterflyLevels - Set STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master>
796 + F - the factored matrix obtained by calling `MatGetFactor()` from PETSc-STRUMPACK interface
797 - bfly_lvls - Number of levels of butterfly compression in HODLR compression
800 . -mat_strumpack_compression_butterfly_levels <bfly_lvls> - Number of levels in the hierarchically off-diagonal matrix for which to use butterfly,
801 when using `-pctype ilu`, (BLR_)HODLR compression
816 MatSTRUMPACKGetCompButterflyLevels - Get STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master>
822 . F - the factored matrix obtained by calling `MatGetFactor()` from PETSc-STRUMPACK interface
825 . bfly_lvls - Number of levels of butterfly compression in HODLR compression
842 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)A->data;
873 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)A->data;
876 PetscInt m = A->rmap->n, nrhs;
914 if (A->ops->solve != MatSolve_STRUMPACK) PetscFunctionReturn(PETSC_SUCCESS);
935 STRUMPACK_SparseSolver *S = (STRUMPACK_SparseSolver *)F->data;
940 PetscInt M = A->rmap->N, m = A->rmap->n, dummy;
951 } else SETERRQ(PetscObjectComm((PetscObject)A), PETSC_ERR_SUP, "Not for type %s", ((PetscObject)A)->type_name);
958 const PetscInt *dist = NULL;
959 PetscCall(MatGetOwnershipRanges(A, &dist));
960 PetscStackCallExternalVoid("STRUMPACK_set_distributed_csr_matrix", STRUMPACK_set_distributed_csr_matrix(*S, &m, ai, aj, av, dist, 0));
988 F->assembled = PETSC_TRUE;
989 F->preallocated = PETSC_TRUE;
996 F->ops->lufactornumeric = MatLUFactorNumeric_STRUMPACK;
997 F->ops->solve = MatSolve_STRUMPACK;
998 F->ops->matsolve = MatMatSolve_STRUMPACK;
1010 MATSOLVERSTRUMPACK = "strumpack" - A solver package providing a direct sparse solver (PCLU)
1011 and a preconditioner (PCILU) using low-rank compression via the external package STRUMPACK <https://portal.nersc.gov/project/sparse/strumpack/master>.
1013 Use `./configure --download-strumpack --download-metis` to have PETSc installed with STRUMPACK.
1015 For full functionality, add `--download-slate --download-magma --download-parmetis --download-ptscotch --download-zfp --download-butterflypack`.
1016 SLATE provides GPU support in the multi-GPU setting, providing ScaLAPACK functionality but with GPU acceleration.
1018 ParMETIS and PTScotch can be used for parallel fill-reducing ordering.
1020 ButterflyPACK is used for HODLR (Hierarchically Off-Diagonal Low Rank) and HODBF (Hierarchically Off-Diagonal Butterfly) compression of the sparse factors.
1023 + -mat_strumpack_verbose - Enable verbose output
1024 . -mat_strumpack_compression - Type of rank-structured compression in sparse LU factors (choose one of) NONE HSS BLR HODLR BLR_HODLR ZFP_BLR_HODLR LOSSLESS LOSSY
1025 . -mat_strumpack_compression_rel_tol - Relative compression tolerance, when using `-pctype ilu`
1026 . -mat_strumpack_compression_abs_tol - Absolute compression tolerance, when using `-pctype ilu`
1027 . -mat_strumpack_compression_min_sep_size - Minimum size of separator for rank-structured compression, when using `-pctype ilu`
1028 . -mat_strumpack_compression_leaf_size - Size of diagonal blocks in rank-structured approximation, when using `-pctype ilu`
1029 . -mat_strumpack_compression_lossy_precision - Precision when using lossy compression [1-64], when using `-pctype ilu`, compression LOSSY (requires ZFP support)
1030 . -mat_strumpack_compression_butterfly_levels - Number of levels in the hierarchically off-diagonal matrix for which to use butterfly, when using `-pctype ilu`, (BLR_)HODLR compression (requires ButterflyPACK support)
1031 . -mat_strumpack_gpu - Enable GPU acceleration in numerical factorization (not supported for all compression types)
1032 . -mat_strumpack_colperm <TRUE> - Permute matrix to make diagonal nonzeros
1033 . -mat_strumpack_reordering <METIS> - Sparsity reducing matrix reordering (choose one of) NATURAL METIS PARMETIS SCOTCH PTSCOTCH RCM GEOMETRIC AMD MMD AND MLF SPECTRAL
1034 . -mat_strumpack_geometric_xyz <1,1,1> - Mesh x,y,z dimensions, for use with GEOMETRIC ordering
1035 . -mat_strumpack_geometric_components <1> - Number of components per mesh point, for geometric nested dissection ordering
1036 . -mat_strumpack_geometric_width <1> - Width of the separator of the mesh, for geometric nested dissection ordering
1037 - -mat_strumpack_metis_nodeNDP - Use METIS_NodeNDP instead of METIS_NodeND, for a more balanced tree
1044 Use `-pc_type lu` `-pc_factor_mat_solver_type strumpack` to use this as an exact (direct) solver.
1046 Use `-pc_type ilu` `-pc_factor_mat_solver_type strumpack` to enable low-rank compression (i.e, use as a preconditioner), by default using block low rank (BLR).
1050 HODLR, BLR_HODBF and ZFP_BLR_HODLR compression require STRUMPACK to be configured with ButterflyPACK support (`--download-butterflypack`).
1052 LOSSY, LOSSLESS and ZFP_BLR_HODLR compression require STRUMPACK to be configured with ZFP support (`--download-zfp`).
1060 PetscInt M = A->rmap->N, N = A->cmap->N;
1092 PetscCall(MatSetSizes(B, A->rmap->n, A->cmap->n, M, N));
1093 PetscCall(PetscStrallocpy("strumpack", &((PetscObject)B)->type_name));
1097 B->trivialsymbolic = PETSC_TRUE;
1099 B->ops->lufactorsymbolic = MatLUFactorSymbolic_STRUMPACK;
1100 B->ops->ilufactorsymbolic = MatLUFactorSymbolic_STRUMPACK;
1101 B->ops->getinfo = MatGetInfo_External;
1102 B->ops->view = MatView_STRUMPACK;
1103 B->ops->destroy = MatDestroy_STRUMPACK;
1104 B->ops->getdiagonal = MatGetDiagonal_STRUMPACK;
1129 B->factortype = ftype;
1132 PetscCall(PetscFree(B->solvertype));
1133 PetscCall(PetscStrallocpy(MATSOLVERSTRUMPACK, &B->solvertype));
1136 B->data = S;
1141 PetscOptionsBegin(PetscObjectComm((PetscObject)B), ((PetscObject)B)->prefix, "STRUMPACK Options", "Mat");
1143 PetscCall(PetscOptionsBool("-mat_strumpack_verbose", "Print STRUMPACK information", "None", verb, &verb, NULL));
1148 /* -mat_strumpack_compression with anything else than NONE, or when selecting ilu */
1153 PetscCall(PetscOptionsEnum("-mat_strumpack_compression", "Rank-structured compression type", "None", CompTypes, (PetscEnum)compcurrent, (PetscEnum *)&compvalue, &set));
1161 PetscCall(PetscOptionsReal("-mat_strumpack_compression_rel_tol", "Relative compression tolerance", "None", ctol, &ctol, &set));
1165 PetscCall(PetscOptionsReal("-mat_strumpack_compression_abs_tol", "Absolute compression tolerance", "None", ctol, &ctol, &set));
1169 PetscCall(PetscOptionsInt("-mat_strumpack_compression_min_sep_size", "Minimum size of separator for compression", "None", min_sep_size, &min_sep_size, &set));
1173 PetscCall(PetscOptionsInt("-mat_strumpack_compression_leaf_size", "Size of diagonal blocks in rank-structured approximation", "None", leaf_size, &leaf_size, &set));
1178 PetscCall(PetscOptionsInt("-mat_strumpack_compression_lossy_precision", "Number of bitplanes to use in lossy compression", "None", lossy_prec, &lossy_prec, &set));
1184 PetscCall(PetscOptionsInt("-mat_strumpack_compression_butterfly_levels", "Number of levels in the HODLR matrix for which to use butterfly compression", "None", bfly_lvls, &bfly_lvls, &set));
1190 PetscCall(PetscOptionsBool("-mat_strumpack_gpu", "Enable GPU acceleration (not supported for all compression types)", "None", flg, &flg, &set));
1195 PetscCall(PetscOptionsBool("-mat_strumpack_colperm", "Find a col perm to get nonzero diagonal", "None", flg, &flg, &set));
1199 PetscCall(PetscOptionsEnum("-mat_strumpack_reordering", "Sparsity reducing matrix reordering", "None", STRUMPACKNDTypes, (PetscEnum)ndcurrent, (PetscEnum *)&ndvalue, &set));
1206 PetscCall(PetscOptionsIntArray("-mat_strumpack_geometric_xyz", "Mesh sizes nx,ny,nz (Use 1 for default)", "", nxyz, &nrdims, &set));
1208 PetscCheck(nrdims == 1 || nrdims == 2 || nrdims == 3, PetscObjectComm((PetscObject)F), PETSC_ERR_ARG_OUTOFRANGE, "'-mat_strumpack_geometric_xyz' requires 1, 2, or 3 values.");
1211 PetscCall(PetscOptionsInt("-mat_strumpack_geometric_components", "Number of components per mesh point, for geometric nested dissection ordering", "None", 1, &nc, &set));
1213 PetscCall(PetscOptionsInt("-mat_strumpack_geometric_width", "Width of the separator (for instance a 1D 3-point wide stencil needs a 1 point wide separator, a 1D 5-point stencil needs a 2 point wide separator), for geometric nested dissection ordering", "None", 1, &w, &set));
1217 PetscCall(PetscOptionsBool("-mat_strumpack_metis_nodeNDP", "Use METIS_NodeNDP instead of METIS_NodeND, for a more balanced tree", "None", flg, &flg, &set));
1229 /* low-rank compression), it will use it's own preconditioned GMRES. Here we can disable */
1230 /* the outer iterative solver, as PETSc uses STRUMPACK from within a KSP. */