![]() |
FrontISTR
5.9.0
Large-scale structural analysis program with finit element method
|
Go to the source code of this file.
Modules | |
| module | hecmw_precond_saamg_verify |
| Smoothed Aggregation AMG preconditioner : distributed self-checks. | |
Functions/Subroutines | |
| subroutine, public | hecmw_precond_saamg_verify::hecmw_saamg_verify_refresh (dh, A, cmt, B, m, prm, n) |
| Verify the distributed numeric refresh: refreshing with the SAME operator A must reproduce the freshly-built preconditioner (refresh reuses aggregation / coarse comm table / tentative P-hat, recomputes the value-dependent parts). Applies M^{-1} to a partition-invariant seed before and after refresh and reports the global relative difference, which must be ~machine precision. More... | |
| subroutine, public | hecmw_precond_saamg_verify::hecmw_saamg_verify_matvec (hecMAT, hecMESH, cmt, ndof) |
| F4a self-check: the distributed (halo-aware) matvec applied to a globally consistent vector x (defined from global node ids) must give the same global ||A x||^2 regardless of how the mesh is partitioned. Compare the printed value between a 1-rank run and a K-rank run: equality proves the comm table and halo exchange are correct (dropping halo columns would change it). More... | |
| subroutine, public | hecmw_precond_saamg_verify::hecmw_saamg_verify_coarsen (hecMAT, cmt, m, prm) |
| F4b self-check: build the uncoupled aggregation and the coarse comm table on the distributed finest operator, verify the coarse table is symmetric (each neighbor's coarse export to me equals my coarse import from it), and report the global coarse-node count. The global coarse-node count is partition-independent-ish (uncoupled aggregation differs only at boundaries); the symmetry flag must be true on every rank. More... | |
| subroutine, public | hecmw_precond_saamg_verify::hecmw_saamg_verify_prolong (hecMAT, hecMESH, cmt, ndof, m, prm) |
| F4b-2 self-check: build the halo-extended tentative prolongator P-hat_ext on the distributed operator and confirm the exact QR identity P-hat_ext * B_c = B_fine holds on ALL rows (internal AND halo). The halo rows exercise the P-hat block exchange and the coarse near-kernel exchange (coarse comm table). The near-kernel is built with zero centroid so it is globally consistent across ranks (owner and neighbor agree on a shared node's B_fine). More... | |
| subroutine, public | hecmw_precond_saamg_verify::hecmw_saamg_verify_smoothp (hecMAT, hecMESH, cmt, ndof, m, prm) |
| F4c-1 self-check: build the distributed SMOOTHED prolongator P and confirm the global near-kernel residual ||P B_c - B_f||^2 (over internal rows) is partition-independent. Smoothing does not preserve B exactly (P B_c = B_f - omega D^{-1} A B_f), so the residual is nonzero, but it is the SAME global value on 1 / K ranks iff the smoothed P, the shared lambda_max (omega) and the coarse near-kernel exchange are all correct. Compare the printed value between a 1-rank and a K-rank run. More... | |