Neko 0.9.99
A portable framework for high-order spectral element flow simulations
|
Type for a TreeAMG hierarchy. More...
Public Member Functions | |
procedure, pass(this) | init (this, ax, xh, coef, msh, gs_h, nlvls, blst) |
Initialization of TreeAMG hierarchy. | |
procedure, pass(this) | matvec (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(this) | matvec_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(this) | interp_f2c (this, vec_out, vec_in, lvl) |
Restriction operator for TreeAMG. vec_out = R * vec_in. | |
procedure, pass(this) | interp_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 |
Definition at line 83 of file tree_amg.f90.
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 | ||
) |
ax | Finest level matvec operator |
Xh | Finest level field |
coef | Finest level coeff thing |
msh | Finest level mesh information |
gs_h | Finest level gather scatter operator |
nlvls | Number of levels for the TreeAMG hierarchy |
blst | Finest level BC list |
Definition at line 98 of file tree_amg.f90.
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 | ||
) |
vec_out | The vector to be returned. On level lvl |
vec_in | The vector pased into operator. On level lvl-1 |
lvl | The target level of the returned vector after prolongation (wrt tree traversal) |
Definition at line 102 of file tree_amg.f90.
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 | ||
) |
vec_out | The vector to be returned. On level lvl |
vec_in | The vector pased into operator. On level lvl-1 |
lvl | The target level of the returned vector after restrction (wrt tree traversal) |
Definition at line 101 of file tree_amg.f90.
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 | ||
) |
vec_out | Result of Ax |
vec_in | Vector to be multiplied by linear system. A * vec_in |
lvl_out | Level 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.
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 | ||
) |
vec_out | The vector to be returned by level lvl |
vec_in | The vector pased to level lvl |
lvl | The current level of the matvec (wrt tree traversal) |
lvl_out | Level of the TreeAMG hierarchy on which the matvec is output. |
Definition at line 100 of file tree_amg.f90.
Definition at line 90 of file tree_amg.f90.
Definition at line 95 of file tree_amg.f90.
Definition at line 93 of file tree_amg.f90.
Definition at line 94 of file tree_amg.f90.
type(tamg_lvl_t), dimension(:), allocatable tree_amg::tamg_hierarchy_t::lvl |
Definition at line 87 of file tree_amg.f90.
Definition at line 91 of file tree_amg.f90.
integer tree_amg::tamg_hierarchy_t::nlvls |
Definition at line 85 of file tree_amg.f90.
Definition at line 92 of file tree_amg.f90.