Neko 1.99.7
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
tree_amg_multigrid.f90 File Reference

Go to the source code of this file.

Data Types

type  tree_amg_multigrid::tamg_wrk_t
 
type  tree_amg_multigrid::tamg_solver_t
 Type for the TreeAMG solver. More...
 

Modules

module  tree_amg_multigrid
 Implements multigrid using the TreeAMG hierarchy structure. USE:
 

Functions/Subroutines

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.