![]() |
FrontISTR
6.0.0
Large-scale structural analysis program with finit element method
|
Smoothed Aggregation AMG preconditioner : redundant sparse DIRECTmf coarsest solver. More...
Functions/Subroutines | |
| subroutine, public | hecmw_saamg_cmf_setup (Ac, symmetric, cmf) |
| Convert the redundantly gathered coarse operator Ac to the block matrix layout, run the symbolic analysis (graph, fill-reducing ordering, supernode structure) and factor: symmetric -> LDL^T, else -> LU (mode follows matsymmetric). More... | |
| subroutine, public | hecmw_saamg_cmf_refresh (Ac, cmf) |
| Numeric refresh: reload the values of the re-gathered operator into the stored pattern and re-run the numeric factorization on the retained symbolic structure. The gather drops numerically zero entries, so a refreshed operator can (rarely) carry a block outside the stored pattern; then the symbolic structure is stale and the backend falls back to a full re-setup. More... | |
| subroutine, public | hecmw_saamg_cmf_solve (cmf, b, x) |
| Solve Ac x = b with the stored factor (plain-array interface, every rank solves the full gathered system redundantly, like the dense backend). More... | |
| subroutine, public | hecmw_saamg_cmf_free (cmf) |
Smoothed Aggregation AMG preconditioner : redundant sparse DIRECTmf coarsest solver.
Third direct coarsest-level backend: the same redundant data flow as the dense LDL^T backend (coarse operator gathered to every rank, RHS allgathered per V-cycle), but factored SPARSE by the built-in multifrontal solver (DIRECTmf) through its graph / symbolic / numeric API. No external library is needed, so a MUMPS-less build gets a sparse coarsest and the dense O(n^3) size limit does not apply; a symmetric-indefinite coarse operator is factored LDL^T with threshold pivoting (inertia reported like the other backends) and a non-symmetric one (friction contact) LU. A numeric-only refresh re-factors the new values on the retained symbolic structure.
| subroutine, public hecmw_precond_saamg_coarse_mf::hecmw_saamg_cmf_free | ( | type(hecmwst_saamg_cmf), intent(inout) | cmf | ) |
Definition at line 106 of file hecmw_precond_SAAMG_coarse_mf.F90.
| subroutine, public hecmw_precond_saamg_coarse_mf::hecmw_saamg_cmf_refresh | ( | type(hecmwst_saamg_bcsr), intent(in) | Ac, |
| type(hecmwst_saamg_cmf), intent(inout) | cmf | ||
| ) |
Numeric refresh: reload the values of the re-gathered operator into the stored pattern and re-run the numeric factorization on the retained symbolic structure. The gather drops numerically zero entries, so a refreshed operator can (rarely) carry a block outside the stored pattern; then the symbolic structure is stale and the backend falls back to a full re-setup.
Definition at line 81 of file hecmw_precond_SAAMG_coarse_mf.F90.
| subroutine, public hecmw_precond_saamg_coarse_mf::hecmw_saamg_cmf_setup | ( | type(hecmwst_saamg_bcsr), intent(in) | Ac, |
| logical, intent(in) | symmetric, | ||
| type(hecmwst_saamg_cmf), intent(inout) | cmf | ||
| ) |
Convert the redundantly gathered coarse operator Ac to the block matrix layout, run the symbolic analysis (graph, fill-reducing ordering, supernode structure) and factor: symmetric -> LDL^T, else -> LU (mode follows matsymmetric).
Definition at line 58 of file hecmw_precond_SAAMG_coarse_mf.F90.
| subroutine, public hecmw_precond_saamg_coarse_mf::hecmw_saamg_cmf_solve | ( | type(hecmwst_saamg_cmf), intent(inout) | cmf, |
| real(kind=kreal), dimension(:), intent(in) | b, | ||
| real(kind=kreal), dimension(:), intent(out) | x | ||
| ) |
Solve Ac x = b with the stored factor (plain-array interface, every rank solves the full gathered system redundantly, like the dense backend).
Definition at line 97 of file hecmw_precond_SAAMG_coarse_mf.F90.