Neko 0.9.99
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
tree_amg::tamg_hierarchy_t Type Reference

Type for a TreeAMG hierarchy. More...

Collaboration diagram for tree_amg::tamg_hierarchy_t:

Public Member Functions

procedure, pass(thisinit (this, ax, xh, coef, msh, gs_h, nlvls, blst)
 Initialization of TreeAMG hierarchy.
 
procedure, pass(thismatvec (this, vec_out, vec_in, lvl_out)
 Wrapper for matrix vector product using the TreeAMG hierarchy structure b=Ax done as vec_out = A * vec_in.
 
procedure, pass(thismatvec_impl (this, vec_out, vec_in, lvl, lvl_out)
 Matrix vector product using the TreeAMG hierarchy structure b=Ax done as vec_out = A * vec_in This is done on a level by level basis.
 
procedure, pass(thisinterp_f2c (this, vec_out, vec_in, lvl)
 Restriction operator for TreeAMG. vec_out = R * vec_in.
 
procedure, pass(thisinterp_c2f (this, vec_out, vec_in, lvl)
 Prolongation operator for TreeAMG. vec_out = P * vec_in.
 

Public Attributes

integer nlvls
 Number of AMG levels in the hierarchy.
 
type(tamg_lvl_t), dimension(:), allocatable lvl
 Levels of the hierarchy.
 
class(ax_t), pointer ax
 Things needed to do finest level matvec.
 
type(mesh_t), pointer msh
 
type(space_t), pointer xh
 
type(coef_t), pointer coef
 
type(gs_t), pointer gs_h
 
type(bc_list_t), pointer blst
 

Detailed Description

Definition at line 83 of file tree_amg.f90.

Member Function/Subroutine Documentation

◆ init()

procedure, pass(this) tree_amg::tamg_hierarchy_t::init ( class(tamg_hierarchy_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(bc_list_t), intent(in), target  blst 
)
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
blstFinest level BC list

Definition at line 98 of file tree_amg.f90.

◆ interp_c2f()

procedure, pass(this) tree_amg::tamg_hierarchy_t::interp_c2f ( class(tamg_hierarchy_t), intent(inout this,
real(kind=rp), dimension(:), intent(inout vec_out,
real(kind=rp), dimension(:), intent(inout vec_in,
integer, intent(in lvl 
)
Parameters
vec_outThe vector to be returned. On level lvl
vec_inThe vector pased into operator. On level lvl-1
lvlThe target level of the returned vector after prolongation (wrt tree traversal)

Definition at line 102 of file tree_amg.f90.

Here is the call graph for this function:

◆ interp_f2c()

procedure, pass(this) tree_amg::tamg_hierarchy_t::interp_f2c ( class(tamg_hierarchy_t), intent(inout this,
real(kind=rp), dimension(:), intent(inout vec_out,
real(kind=rp), dimension(:), intent(inout vec_in,
integer, intent(in lvl 
)
Parameters
vec_outThe vector to be returned. On level lvl
vec_inThe vector pased into operator. On level lvl-1
lvlThe target level of the returned vector after restrction (wrt tree traversal)

Definition at line 101 of file tree_amg.f90.

◆ matvec()

procedure, pass(this) tree_amg::tamg_hierarchy_t::matvec ( class(tamg_hierarchy_t), intent(inout this,
real(kind=rp), dimension(:), intent(inout vec_out,
real(kind=rp), dimension(:), intent(inout vec_in,
integer, intent(in lvl_out 
)
Parameters
vec_outResult of Ax
vec_inVector to be multiplied by linear system. A * vec_in
lvl_outLevel of the TreeAMG hierarchy on which the matvec is done. This also specifies the hieararchy level of the incoming vector

Definition at line 99 of file tree_amg.f90.

◆ matvec_impl()

procedure, pass(this) tree_amg::tamg_hierarchy_t::matvec_impl ( class(tamg_hierarchy_t), intent(inout this,
real(kind=rp), dimension(:), intent(inout vec_out,
real(kind=rp), dimension(:), intent(inout vec_in,
integer, intent(in lvl,
integer, intent(in lvl_out 
)
Parameters
vec_outThe vector to be returned by level lvl
vec_inThe vector pased to level lvl
lvlThe current level of the matvec (wrt tree traversal)
lvl_outLevel of the TreeAMG hierarchy on which the matvec is output.

Definition at line 100 of file tree_amg.f90.

Member Data Documentation

◆ ax

class(ax_t), pointer tree_amg::tamg_hierarchy_t::ax

Definition at line 90 of file tree_amg.f90.

◆ blst

type(bc_list_t), pointer tree_amg::tamg_hierarchy_t::blst

Definition at line 95 of file tree_amg.f90.

◆ coef

type(coef_t), pointer tree_amg::tamg_hierarchy_t::coef

Definition at line 93 of file tree_amg.f90.

◆ gs_h

type(gs_t), pointer tree_amg::tamg_hierarchy_t::gs_h

Definition at line 94 of file tree_amg.f90.

◆ lvl

type(tamg_lvl_t), dimension(:), allocatable tree_amg::tamg_hierarchy_t::lvl

Definition at line 87 of file tree_amg.f90.

◆ msh

type(mesh_t), pointer tree_amg::tamg_hierarchy_t::msh

Definition at line 91 of file tree_amg.f90.

◆ nlvls

integer tree_amg::tamg_hierarchy_t::nlvls

Definition at line 85 of file tree_amg.f90.

◆ xh

type(space_t), pointer tree_amg::tamg_hierarchy_t::xh

Definition at line 92 of file tree_amg.f90.


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