|
Neko 1.99.1
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. | |
| procedure, pass(this) | interp_f2c_d (this, vec_out_d, vec_in_d, lvl) |
| procedure, pass(this) | interp_c2f_d (this, vec_out_d, vec_in_d, lvl, vec_out) |
| procedure, pass(this) | device_matvec (this, vec_out, vec_in, vec_out_d, vec_in_d, lvl_out) |
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 94 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 109 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 113 of file tree_amg.f90.
| procedure, pass(this) tree_amg::tamg_hierarchy_t::interp_c2f_d | ( | class(tamg_hierarchy_t), intent(inout) | this, |
| type(c_ptr) | vec_out_d, | ||
| type(c_ptr) | vec_in_d, | ||
| integer, intent(in) | lvl, | ||
| real(kind=rp), dimension(:), intent(inout) | vec_out | ||
| ) |
Definition at line 115 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 112 of file tree_amg.f90.
| procedure, pass(this) tree_amg::tamg_hierarchy_t::interp_f2c_d | ( | class(tamg_hierarchy_t), intent(inout) | this, |
| type(c_ptr) | vec_out_d, | ||
| type(c_ptr) | vec_in_d, | ||
| integer, intent(in) | lvl | ||
| ) |
Definition at line 114 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 110 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 111 of file tree_amg.f90.
Definition at line 101 of file tree_amg.f90.
Definition at line 106 of file tree_amg.f90.
Definition at line 104 of file tree_amg.f90.
Definition at line 105 of file tree_amg.f90.
| type(tamg_lvl_t), dimension(:), allocatable tree_amg::tamg_hierarchy_t::lvl |
Definition at line 98 of file tree_amg.f90.
Definition at line 102 of file tree_amg.f90.
| integer tree_amg::tamg_hierarchy_t::nlvls |
Definition at line 96 of file tree_amg.f90.
Definition at line 103 of file tree_amg.f90.