Neko 1.99.9
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
tree_amg_multigrid::tamg_solver_t Type Reference

Type for the TreeAMG solver. More...

Collaboration diagram for tree_amg_multigrid::tamg_solver_t:

Public Member Functions

procedure, pass(this) init (this, ax, xh, coef, msh, gs_h, nlvls, bc_projector, max_iter, cheby_degree)
 Initialization of the TreeAMG multigrid solver.
 
procedure, pass(this) solve (this, z, r, n)
 Solver function for the TreeAMG solver object.
 
procedure, pass(this) free (this)
 free tree amg solver object
 
procedure, pass(this) invalidate_eigs (this)
 Re-estimate every level's eigenvalues on the next solve. Needed when the operator changes underneath the hierarchy.
 
procedure, pass(this) set_eig_refresh (this, warm_start, power_its_refresh)
 Set the eigenvalue re-estimation policy on every level.
 

Public Attributes

type(tamg_hierarchy_t), allocatable amg
 
type(amg_cheby_t), dimension(:), allocatable smoo
 
type(tamg_wrk_t), dimension(:), allocatable wrk
 
integer nlvls
 
integer max_iter
 

Private Member Functions

procedure, pass(this), private mg_cycle (this, zero_initial_guess)
 multigrid cycle for the TreeAMG solver object
 
procedure, pass(this), private mg_cycle_d (this, zero_initial_guess)
 multigrid cycle for the TreeAMG solver object on device
 

Detailed Description

Definition at line 83 of file tree_amg_multigrid.f90.

Member Function/Subroutine Documentation

◆ free()

procedure, pass(this) tree_amg_multigrid::tamg_solver_t::free ( class(tamg_solver_t), intent(inout), target  this)

Definition at line 93 of file tree_amg_multigrid.f90.

◆ init()

procedure, pass(this) tree_amg_multigrid::tamg_solver_t::init ( class(tamg_solver_t), intent(inout), target  this,
class(ax_t), intent(in), target  ax,
type(space_t), intent(in), target  xh,
type(coef_t), intent(in), target  coef,
type(mesh_t), intent(in), target  msh,
type(gs_t), intent(in), target  gs_h,
integer, intent(in)  nlvls,
type(scalar_bc_projector_t), intent(in), target  bc_projector,
integer, intent(in)  max_iter,
integer, intent(in)  cheby_degree 
)
Parameters
axFinest level matvec operator
XhFinest level field
coefFinest level coeff thing
mshFinest level mesh information
gs_hFinest level gather scatter operator
nlvlsNumber of levels for the TreeAMG hierarchy
bc_projectorFinest level BC projector
max_iterNumber of AMG iterations

Definition at line 91 of file tree_amg_multigrid.f90.

◆ invalidate_eigs()

procedure, pass(this) tree_amg_multigrid::tamg_solver_t::invalidate_eigs ( class(tamg_solver_t), intent(inout)  this)

Definition at line 94 of file tree_amg_multigrid.f90.

◆ mg_cycle()

procedure, pass(this), private tree_amg_multigrid::tamg_solver_t::mg_cycle ( class(tamg_solver_t), intent(inout), target  this,
logical, intent(inout)  zero_initial_guess 
)
private
Parameters
thisThe Solver object.
zero_initial_guessFlag for when the initial guess is zero

Definition at line 96 of file tree_amg_multigrid.f90.

◆ mg_cycle_d()

procedure, pass(this), private tree_amg_multigrid::tamg_solver_t::mg_cycle_d ( class(tamg_solver_t), intent(inout), target  this,
logical, intent(inout)  zero_initial_guess 
)
private
Parameters
thisThe Solver object.
zero_initial_guessFlag for when the initial guess is zero

Definition at line 97 of file tree_amg_multigrid.f90.

◆ set_eig_refresh()

procedure, pass(this) tree_amg_multigrid::tamg_solver_t::set_eig_refresh ( class(tamg_solver_t), intent(inout)  this,
logical, intent(in)  warm_start,
integer, intent(in)  power_its_refresh 
)
Parameters
warm_startRestart from the saved eigenvector
power_its_refreshIterations to use when restarting

Definition at line 95 of file tree_amg_multigrid.f90.

◆ solve()

procedure, pass(this) tree_amg_multigrid::tamg_solver_t::solve ( class(tamg_solver_t), intent(inout)  this,
real(kind=rp), dimension(n), intent(inout)  z,
real(kind=rp), dimension(n), intent(inout)  r,
integer, intent(in)  n 
)
Parameters
zThe solution to be returned
rThe right-hand side
nNumber of dofs

Definition at line 92 of file tree_amg_multigrid.f90.

Member Data Documentation

◆ amg

type(tamg_hierarchy_t), allocatable tree_amg_multigrid::tamg_solver_t::amg

Definition at line 84 of file tree_amg_multigrid.f90.

◆ max_iter

integer tree_amg_multigrid::tamg_solver_t::max_iter

Definition at line 89 of file tree_amg_multigrid.f90.

◆ nlvls

integer tree_amg_multigrid::tamg_solver_t::nlvls

Definition at line 88 of file tree_amg_multigrid.f90.

◆ smoo

type(amg_cheby_t), dimension(:), allocatable tree_amg_multigrid::tamg_solver_t::smoo

Definition at line 85 of file tree_amg_multigrid.f90.

◆ wrk

type(tamg_wrk_t), dimension(:), allocatable tree_amg_multigrid::tamg_solver_t::wrk

Definition at line 86 of file tree_amg_multigrid.f90.


The documentation for this type was generated from the following file: