|
Neko 1.99.7
A portable framework for high-order spectral element flow simulations
|
Type for storing TreeAMG level information. More...

Public Member Functions | |
| procedure, pass(this) | free (this) |
| deallocate tamg level | |
Public Attributes | |
| integer | lvl = -1 |
| The level id. | |
| integer | nnodes = 0 |
| number of nodes on the level | |
| type(tamg_node_t), dimension(:), allocatable | nodes |
| TreeAMG tree nodes on the level. | |
| integer | fine_lvl_dofs = 0 |
| Number of dofs on the level(TODO:sum of dofs on each node?) | |
| real(kind=rp), dimension(:), allocatable | wrk_in |
| Work vector for data coming into the level. | |
| type(c_ptr) | wrk_in_d = C_NULL_PTR |
| real(kind=rp), dimension(:), allocatable | wrk_out |
| Work vector for data leaving the level. | |
| type(c_ptr) | wrk_out_d = C_NULL_PTR |
| integer, dimension(:), allocatable | map_finest2lvl |
| type(c_ptr) | map_finest2lvl_d = C_NULL_PTR |
| integer, dimension(:), allocatable | map_f2c |
| type(c_ptr) | map_f2c_d = C_NULL_PTR |
| integer, dimension(:), allocatable | agg_ptr |
| Transpose of map_finest2lvl in CSR form: agg_dof(agg_ptr(c) : agg_ptr(c+1)-1) are the finest-level dofs belonging to aggregate c. Lets the flat matvec restrict as a segmented reduction over aggregates (disjoint writes) instead of an atomic scatter over dofs. | |
| integer, dimension(:), allocatable | agg_dof |
| real(kind=rp), dimension(:,:), allocatable | agg_part |
| Per-thread partial sums, only allocated on levels with too few aggregates to give every thread one (the coarsest level has exactly one, from aggregate_end). Shaped (ldpart, nthrds) with the leading dimension padded up to a cache line so the columns do not false share; only rows 1:nnodes carry data. | |
Definition at line 69 of file tree_amg.f90.
Definition at line 96 of file tree_amg.f90.
| integer, dimension(:), allocatable tree_amg::tamg_lvl_t::agg_dof |
Definition at line 88 of file tree_amg.f90.
| real(kind=rp), dimension(:,:), allocatable tree_amg::tamg_lvl_t::agg_part |
Definition at line 94 of file tree_amg.f90.
| integer, dimension(:), allocatable tree_amg::tamg_lvl_t::agg_ptr |
Definition at line 87 of file tree_amg.f90.
| integer tree_amg::tamg_lvl_t::fine_lvl_dofs = 0 |
Definition at line 73 of file tree_amg.f90.
| integer tree_amg::tamg_lvl_t::lvl = -1 |
Definition at line 70 of file tree_amg.f90.
| integer, dimension(:), allocatable tree_amg::tamg_lvl_t::map_f2c |
Definition at line 81 of file tree_amg.f90.
| type(c_ptr) tree_amg::tamg_lvl_t::map_f2c_d = C_NULL_PTR |
Definition at line 82 of file tree_amg.f90.
| integer, dimension(:), allocatable tree_amg::tamg_lvl_t::map_finest2lvl |
Definition at line 78 of file tree_amg.f90.
| type(c_ptr) tree_amg::tamg_lvl_t::map_finest2lvl_d = C_NULL_PTR |
Definition at line 79 of file tree_amg.f90.
| integer tree_amg::tamg_lvl_t::nnodes = 0 |
Definition at line 71 of file tree_amg.f90.
| type(tamg_node_t), dimension(:), allocatable tree_amg::tamg_lvl_t::nodes |
Definition at line 72 of file tree_amg.f90.
| real(kind=rp), dimension(:), allocatable tree_amg::tamg_lvl_t::wrk_in |
Definition at line 74 of file tree_amg.f90.
| type(c_ptr) tree_amg::tamg_lvl_t::wrk_in_d = C_NULL_PTR |
Definition at line 75 of file tree_amg.f90.
| real(kind=rp), dimension(:), allocatable tree_amg::tamg_lvl_t::wrk_out |
Definition at line 76 of file tree_amg.f90.
| type(c_ptr) tree_amg::tamg_lvl_t::wrk_out_d = C_NULL_PTR |
Definition at line 77 of file tree_amg.f90.