52 real(kind=
rp),
intent(inout) :: val
54 integer,
intent(in) :: lvl, i, j
55 real(kind=
rp),
allocatable :: u(:), v(:)
57 n = amg%lvl(lvl+1)%fine_lvl_dofs
66 if (lvl.eq.0)
call amg%gs_h%op(u, n, gs_op_add)
68 call amg%matvec(v, u, lvl)
79 integer,
intent(in) :: lvl
82 real(kind=
rp),
allocatable :: u(:), v(:)
84 n = amg%lvl(lvl+1)%fine_lvl_dofs
95 if (lvl.eq.0)
call amg%gs_h%op(u, n, gs_op_add)
97 call amg%matvec(v, u, lvl)
113 integer,
intent(in) :: lvl
114 integer :: n, m, i, j
116 real(kind=
rp),
allocatable :: u(:), v(:)
118 n = amg%lvl(lvl+1)%fine_lvl_dofs
119 m = amg%lvl(lvl+2)%fine_lvl_dofs
130 if (lvl.eq.0)
call amg%gs_h%op(u, n, gs_op_add)
132 call amg%interp_f2c(v, u, lvl+1)
148 integer,
intent(in) :: lvl
149 integer :: n, m, i, j
151 real(kind=
rp),
allocatable :: u(:), v(:)
153 n = amg%lvl(lvl+1)%fine_lvl_dofs
154 m = amg%lvl(lvl+2)%fine_lvl_dofs
167 call amg%interp_c2f(v, u, lvl+1)
integer, parameter, public rp
Global precision used in computations.
Implements utilities for the TreeAMG hierarchy structure.
subroutine tamg_print_restriction_matrix(amg, lvl)
never call this function also this does not account for duplicates/ghosts in dofs
subroutine tamg_print_matrix(amg, lvl)
never call this function also this does not account for duplicates/ghosts in dofs
subroutine tamg_print_prolongation_matrix(amg, lvl)
never call this function also this does not account for duplicates/ghosts in dofs
subroutine, public tamg_sample_matrix_val(val, amg, lvl, i, j)
Sample the values in a matix (expensive, use with caution)
Implements the base type for TreeAMG hierarchy structure.
Type for a TreeAMG hierarchy.