54 real(kind=
rp),
intent(inout) :: val
56 integer,
intent(in) :: lvl, i, j
57 real(kind=
rp),
allocatable :: u(:), v(:)
59 n = amg%lvl(lvl+1)%fine_lvl_dofs
68 if (lvl.eq.0)
call amg%gs_h%op(u, n, gs_op_add)
70 call amg%matvec(v, u, lvl)
81 integer,
intent(in) :: lvl
84 real(kind=
rp),
allocatable :: u(:), v(:)
86 n = amg%lvl(lvl+1)%fine_lvl_dofs
97 if (lvl.eq.0)
call amg%gs_h%op(u, n, gs_op_add)
99 call amg%matvec(v, u, lvl)
115 integer,
intent(in) :: lvl
116 integer :: n, m, i, j
118 real(kind=
rp),
allocatable :: u(:), v(:)
120 n = amg%lvl(lvl+1)%fine_lvl_dofs
121 m = amg%lvl(lvl+2)%fine_lvl_dofs
132 if (lvl.eq.0)
call amg%gs_h%op(u, n, gs_op_add)
134 call amg%interp_f2c(v, u, lvl+1)
150 integer,
intent(in) :: lvl
151 integer :: n, m, i, j
153 real(kind=
rp),
allocatable :: u(:), v(:)
155 n = amg%lvl(lvl+1)%fine_lvl_dofs
156 m = amg%lvl(lvl+2)%fine_lvl_dofs
169 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.