|
| subroutine | tree_amg_multigrid::tamg_mg_init (this, ax, xh, coef, msh, gs_h, nlvls, blst, max_iter, cheby_degree) |
| | Initialization of the TreeAMG multigrid solver.
|
| |
| subroutine | tree_amg_multigrid::tamg_mg_free (this) |
| | free tree amg solver object
|
| |
| subroutine | tree_amg_multigrid::tamg_mg_invalidate_eigs (this) |
| | Re-estimate every level's eigenvalues on the next solve. Needed when the operator changes underneath the hierarchy.
|
| |
| subroutine | tree_amg_multigrid::tamg_mg_set_eig_refresh (this, warm_start, power_its_refresh) |
| | Set the eigenvalue re-estimation policy on every level.
|
| |
| subroutine | tree_amg_multigrid::tamg_mg_solve (this, z, r, n) |
| | Solver function for the TreeAMG solver object.
|
| |
| subroutine | tree_amg_multigrid::tamg_mg_cycle (this, zero_initial_guess) |
| | multigrid cycle for the TreeAMG solver object
|
| |
| subroutine | tree_amg_multigrid::tamg_mg_cycle_d (this, zero_initial_guess) |
| | multigrid cycle for the TreeAMG solver object on device
|
| |
| subroutine | tree_amg_multigrid::calc_resid (r, x, b, amg, lvl, n) |
| | Wrapper function to calculate residyal.
|
| |
| subroutine | tree_amg_multigrid::print_preagg_info (lvl, nagg, agg_type) |
| |
| subroutine | tree_amg_multigrid::print_resid_info (r, x, b, r_d, x_d, b_d, amg, lvl, n) |
| |
| subroutine | tree_amg_multigrid::fill_lvl_map (amg) |
| | Create index mapping between levels and directly to finest level.
|
| |
| subroutine | tree_amg_multigrid::build_agg_csr (amg) |
| | Build the transpose of map_finest2lvl in CSR form: for every aggregate on a level, the list of finest-level dofs that map to it. This lets the flat matvec walk aggregates rather than dofs, so its restriction becomes a segmented reduction with disjoint writes instead of an atomic scatter. Two O(n) passes per level.
|
| |