Rename dec_map_bld into vmb_map_bld, following the split between

PAR_AGGR_ALG and AGGR_TYPE.
stopcriterion
Salvatore Filippone 7 years ago
parent 13dc383079
commit cce189c450

@ -13,28 +13,28 @@ mld_s_dec_aggregator_mat_asb.o \
mld_s_dec_aggregator_tprol.o \ mld_s_dec_aggregator_tprol.o \
mld_s_hybrid_aggregator_tprol.o \ mld_s_hybrid_aggregator_tprol.o \
mld_s_symdec_aggregator_tprol.o \ mld_s_symdec_aggregator_tprol.o \
mld_s_map_to_tprol.o mld_s_dec_map_bld.o mld_s_hyb_map_bld.o\ mld_s_map_to_tprol.o mld_s_vmb_map_bld.o mld_s_hyb_map_bld.o\
mld_saggrmat_biz_asb.o mld_saggrmat_minnrg_asb.o\ mld_saggrmat_biz_asb.o mld_saggrmat_minnrg_asb.o\
mld_saggrmat_nosmth_asb.o mld_saggrmat_smth_asb.o \ mld_saggrmat_nosmth_asb.o mld_saggrmat_smth_asb.o \
mld_d_dec_aggregator_mat_asb.o \ mld_d_dec_aggregator_mat_asb.o \
mld_d_dec_aggregator_tprol.o \ mld_d_dec_aggregator_tprol.o \
mld_d_hybrid_aggregator_tprol.o \ mld_d_hybrid_aggregator_tprol.o \
mld_d_symdec_aggregator_tprol.o \ mld_d_symdec_aggregator_tprol.o \
mld_d_map_to_tprol.o mld_d_dec_map_bld.o mld_d_hyb_map_bld.o\ mld_d_map_to_tprol.o mld_d_vmb_map_bld.o mld_d_hyb_map_bld.o\
mld_daggrmat_biz_asb.o mld_daggrmat_minnrg_asb.o\ mld_daggrmat_biz_asb.o mld_daggrmat_minnrg_asb.o\
mld_daggrmat_nosmth_asb.o mld_daggrmat_smth_asb.o \ mld_daggrmat_nosmth_asb.o mld_daggrmat_smth_asb.o \
mld_c_dec_aggregator_mat_asb.o \ mld_c_dec_aggregator_mat_asb.o \
mld_c_dec_aggregator_tprol.o \ mld_c_dec_aggregator_tprol.o \
mld_c_hybrid_aggregator_tprol.o \ mld_c_hybrid_aggregator_tprol.o \
mld_c_symdec_aggregator_tprol.o \ mld_c_symdec_aggregator_tprol.o \
mld_c_map_to_tprol.o mld_c_dec_map_bld.o mld_c_hyb_map_bld.o\ mld_c_map_to_tprol.o mld_c_vmb_map_bld.o mld_c_hyb_map_bld.o\
mld_caggrmat_biz_asb.o mld_caggrmat_minnrg_asb.o\ mld_caggrmat_biz_asb.o mld_caggrmat_minnrg_asb.o\
mld_caggrmat_nosmth_asb.o mld_caggrmat_smth_asb.o \ mld_caggrmat_nosmth_asb.o mld_caggrmat_smth_asb.o \
mld_z_dec_aggregator_mat_asb.o \ mld_z_dec_aggregator_mat_asb.o \
mld_z_dec_aggregator_tprol.o \ mld_z_dec_aggregator_tprol.o \
mld_z_hybrid_aggregator_tprol.o \ mld_z_hybrid_aggregator_tprol.o \
mld_z_symdec_aggregator_tprol.o \ mld_z_symdec_aggregator_tprol.o \
mld_z_map_to_tprol.o mld_z_dec_map_bld.o mld_z_hyb_map_bld.o\ mld_z_map_to_tprol.o mld_z_vmb_map_bld.o mld_z_hyb_map_bld.o\
mld_zaggrmat_biz_asb.o mld_zaggrmat_minnrg_asb.o\ mld_zaggrmat_biz_asb.o mld_zaggrmat_minnrg_asb.o\
mld_zaggrmat_nosmth_asb.o mld_zaggrmat_smth_asb.o mld_zaggrmat_nosmth_asb.o mld_zaggrmat_smth_asb.o

@ -40,7 +40,7 @@
! Subroutine: mld_c_dec_aggregator_tprol ! Subroutine: mld_c_dec_aggregator_tprol
! Version: complex ! Version: complex
! !
! This routine is mainly an interface to dec_map_bld where the real work is performed. ! This routine is mainly an interface to vmb_map_bld where the real work is performed.
! It takes care of some consistency checking, and calls map_to_tprol, which is ! It takes care of some consistency checking, and calls map_to_tprol, which is
! refactored and shared among all the aggregation methods that produce a simple ! refactored and shared among all the aggregation methods that produce a simple
! integer mapping. ! integer mapping.
@ -110,12 +110,12 @@ subroutine mld_c_dec_aggregator_build_tprol(ag,parms,a,desc_a,ilaggr,nlaggr,op_
call mld_check_def(parms%aggr_thresh,'Aggr_Thresh',szero,is_legal_s_aggr_thrs) call mld_check_def(parms%aggr_thresh,'Aggr_Thresh',szero,is_legal_s_aggr_thrs)
call mld_dec_map_bld(parms%aggr_ord,parms%aggr_thresh,a,desc_a,nlaggr,ilaggr,info) call mld_vmb_map_bld(parms%aggr_ord,parms%aggr_thresh,a,desc_a,nlaggr,ilaggr,info)
if (info==psb_success_) call mld_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info) if (info==psb_success_) call mld_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info)
if (info /= psb_success_) then if (info /= psb_success_) then
info=psb_err_from_subroutine_ info=psb_err_from_subroutine_
call psb_errpush(info,name,a_err='dec_map_bld/map_to_tprol') call psb_errpush(info,name,a_err='vmb_map_bld/map_to_tprol')
goto 9999 goto 9999
endif endif

@ -41,14 +41,13 @@
! Subroutine: mld_c_hyb_map_bld ! Subroutine: mld_c_hyb_map_bld
! Version: complex ! Version: complex
! !
! This routine builds the tentative prolongator based on the ! The aggregator object hosts the aggregation method for building
! decoupled aggregation algorithm presented in ! the multilevel hierarchy. This variant is based on the hybrid method
! ! presented in
! M. Brezina and P. Vanek, A black-box iterative solver based on a !
! two-level Schwarz method, Computing, 63 (1999), 233-263. ! S. Gratton, P. Henon, P. Jiranek and X. Vasseur:
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of ! Reducing complexity of algebraic multigrid by aggregation
! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math. ! Numerical Lin. Algebra with Applications, 2016, 23:501-518
! 57 (2007), 1181-1196.
! !
! Note: upon exit ! Note: upon exit
! !

@ -41,7 +41,7 @@
! Version: complex ! Version: complex
! !
! !
! This routine is mainly an interface to dec_map_bld where the real work is performed. ! This routine is mainly an interface to vmb_map_bld where the real work is performed.
! It takes care of some consistency checking, and calls map_to_tprol, which is ! It takes care of some consistency checking, and calls map_to_tprol, which is
! refactored and shared among all the aggregation methods that produce a simple ! refactored and shared among all the aggregation methods that produce a simple
! integer mapping. ! integer mapping.
@ -127,13 +127,13 @@ subroutine mld_c_symdec_aggregator_build_tprol(ag,parms,a,desc_a,ilaggr,nlaggr,
if (info == psb_success_) call atmp%cscnv(info,type='CSR') if (info == psb_success_) call atmp%cscnv(info,type='CSR')
if (info == psb_success_) & if (info == psb_success_) &
& call mld_dec_map_bld(parms%aggr_ord,parms%aggr_thresh,atmp,desc_a,nlaggr,ilaggr,info) & call mld_vmb_map_bld(parms%aggr_ord,parms%aggr_thresh,atmp,desc_a,nlaggr,ilaggr,info)
if (info == psb_success_) call atmp%free() if (info == psb_success_) call atmp%free()
if (info == psb_success_) call mld_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info) if (info == psb_success_) call mld_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info)
if (info /= psb_success_) then if (info /= psb_success_) then
info=psb_err_from_subroutine_ info=psb_err_from_subroutine_
call psb_errpush(info,name,a_err='dec_map_bld/map_to_tprol') call psb_errpush(info,name,a_err='vmb_map_bld/map_to_tprol')
goto 9999 goto 9999
endif endif

@ -36,13 +36,13 @@
! !
! !
! !
! File: mld_c_dec_map__bld.f90 ! File: mld_c_vmb_map__bld.f90
! !
! Subroutine: mld_c_dec_map_bld ! Subroutine: mld_c_vmb_map_bld
! Version: complex ! Version: complex
! !
! This routine builds the tentative prolongator based on the ! This routine builds the tentative prolongator based on the
! decoupled aggregation algorithm presented in ! strength of connection aggregation algorithm presented in
! !
! M. Brezina and P. Vanek, A black-box iterative solver based on a ! M. Brezina and P. Vanek, A black-box iterative solver based on a
! two-level Schwarz method, Computing, 63 (1999), 233-263. ! two-level Schwarz method, Computing, 63 (1999), 233-263.
@ -67,11 +67,11 @@
! !
! !
! !
subroutine mld_c_dec_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) subroutine mld_c_vmb_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
use psb_base_mod use psb_base_mod
use mld_base_prec_type use mld_base_prec_type
use mld_c_inner_mod, mld_protect_name => mld_c_dec_map_bld use mld_c_inner_mod, mld_protect_name => mld_c_vmb_map_bld
implicit none implicit none
@ -98,7 +98,7 @@ subroutine mld_c_dec_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
if (psb_get_errstatus() /= 0) return if (psb_get_errstatus() /= 0) return
info=psb_success_ info=psb_success_
name = 'mld_dec_map_bld' name = 'mld_vmb_map_bld'
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
debug_unit = psb_get_debug_unit() debug_unit = psb_get_debug_unit()
debug_level = psb_get_debug_level() debug_level = psb_get_debug_level()
@ -318,5 +318,5 @@ subroutine mld_c_dec_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
return return
end subroutine mld_c_dec_map_bld end subroutine mld_c_vmb_map_bld

@ -40,7 +40,7 @@
! Subroutine: mld_d_dec_aggregator_tprol ! Subroutine: mld_d_dec_aggregator_tprol
! Version: real ! Version: real
! !
! This routine is mainly an interface to dec_map_bld where the real work is performed. ! This routine is mainly an interface to vmb_map_bld where the real work is performed.
! It takes care of some consistency checking, and calls map_to_tprol, which is ! It takes care of some consistency checking, and calls map_to_tprol, which is
! refactored and shared among all the aggregation methods that produce a simple ! refactored and shared among all the aggregation methods that produce a simple
! integer mapping. ! integer mapping.
@ -110,12 +110,12 @@ subroutine mld_d_dec_aggregator_build_tprol(ag,parms,a,desc_a,ilaggr,nlaggr,op_
call mld_check_def(parms%aggr_thresh,'Aggr_Thresh',dzero,is_legal_d_aggr_thrs) call mld_check_def(parms%aggr_thresh,'Aggr_Thresh',dzero,is_legal_d_aggr_thrs)
call mld_dec_map_bld(parms%aggr_ord,parms%aggr_thresh,a,desc_a,nlaggr,ilaggr,info) call mld_vmb_map_bld(parms%aggr_ord,parms%aggr_thresh,a,desc_a,nlaggr,ilaggr,info)
if (info==psb_success_) call mld_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info) if (info==psb_success_) call mld_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info)
if (info /= psb_success_) then if (info /= psb_success_) then
info=psb_err_from_subroutine_ info=psb_err_from_subroutine_
call psb_errpush(info,name,a_err='dec_map_bld/map_to_tprol') call psb_errpush(info,name,a_err='vmb_map_bld/map_to_tprol')
goto 9999 goto 9999
endif endif

@ -41,14 +41,13 @@
! Subroutine: mld_d_hyb_map_bld ! Subroutine: mld_d_hyb_map_bld
! Version: real ! Version: real
! !
! This routine builds the tentative prolongator based on the ! The aggregator object hosts the aggregation method for building
! decoupled aggregation algorithm presented in ! the multilevel hierarchy. This variant is based on the hybrid method
! ! presented in
! M. Brezina and P. Vanek, A black-box iterative solver based on a !
! two-level Schwarz method, Computing, 63 (1999), 233-263. ! S. Gratton, P. Henon, P. Jiranek and X. Vasseur:
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of ! Reducing complexity of algebraic multigrid by aggregation
! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math. ! Numerical Lin. Algebra with Applications, 2016, 23:501-518
! 57 (2007), 1181-1196.
! !
! Note: upon exit ! Note: upon exit
! !

@ -41,7 +41,7 @@
! Version: real ! Version: real
! !
! !
! This routine is mainly an interface to dec_map_bld where the real work is performed. ! This routine is mainly an interface to vmb_map_bld where the real work is performed.
! It takes care of some consistency checking, and calls map_to_tprol, which is ! It takes care of some consistency checking, and calls map_to_tprol, which is
! refactored and shared among all the aggregation methods that produce a simple ! refactored and shared among all the aggregation methods that produce a simple
! integer mapping. ! integer mapping.
@ -127,13 +127,13 @@ subroutine mld_d_symdec_aggregator_build_tprol(ag,parms,a,desc_a,ilaggr,nlaggr,
if (info == psb_success_) call atmp%cscnv(info,type='CSR') if (info == psb_success_) call atmp%cscnv(info,type='CSR')
if (info == psb_success_) & if (info == psb_success_) &
& call mld_dec_map_bld(parms%aggr_ord,parms%aggr_thresh,atmp,desc_a,nlaggr,ilaggr,info) & call mld_vmb_map_bld(parms%aggr_ord,parms%aggr_thresh,atmp,desc_a,nlaggr,ilaggr,info)
if (info == psb_success_) call atmp%free() if (info == psb_success_) call atmp%free()
if (info == psb_success_) call mld_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info) if (info == psb_success_) call mld_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info)
if (info /= psb_success_) then if (info /= psb_success_) then
info=psb_err_from_subroutine_ info=psb_err_from_subroutine_
call psb_errpush(info,name,a_err='dec_map_bld/map_to_tprol') call psb_errpush(info,name,a_err='vmb_map_bld/map_to_tprol')
goto 9999 goto 9999
endif endif

@ -36,13 +36,13 @@
! !
! !
! !
! File: mld_d_dec_map__bld.f90 ! File: mld_d_vmb_map__bld.f90
! !
! Subroutine: mld_d_dec_map_bld ! Subroutine: mld_d_vmb_map_bld
! Version: real ! Version: real
! !
! This routine builds the tentative prolongator based on the ! This routine builds the tentative prolongator based on the
! decoupled aggregation algorithm presented in ! strength of connection aggregation algorithm presented in
! !
! M. Brezina and P. Vanek, A black-box iterative solver based on a ! M. Brezina and P. Vanek, A black-box iterative solver based on a
! two-level Schwarz method, Computing, 63 (1999), 233-263. ! two-level Schwarz method, Computing, 63 (1999), 233-263.
@ -67,11 +67,11 @@
! !
! !
! !
subroutine mld_d_dec_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) subroutine mld_d_vmb_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
use psb_base_mod use psb_base_mod
use mld_base_prec_type use mld_base_prec_type
use mld_d_inner_mod, mld_protect_name => mld_d_dec_map_bld use mld_d_inner_mod, mld_protect_name => mld_d_vmb_map_bld
implicit none implicit none
@ -98,7 +98,7 @@ subroutine mld_d_dec_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
if (psb_get_errstatus() /= 0) return if (psb_get_errstatus() /= 0) return
info=psb_success_ info=psb_success_
name = 'mld_dec_map_bld' name = 'mld_vmb_map_bld'
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
debug_unit = psb_get_debug_unit() debug_unit = psb_get_debug_unit()
debug_level = psb_get_debug_level() debug_level = psb_get_debug_level()
@ -318,5 +318,5 @@ subroutine mld_d_dec_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
return return
end subroutine mld_d_dec_map_bld end subroutine mld_d_vmb_map_bld

@ -40,7 +40,7 @@
! Subroutine: mld_s_dec_aggregator_tprol ! Subroutine: mld_s_dec_aggregator_tprol
! Version: real ! Version: real
! !
! This routine is mainly an interface to dec_map_bld where the real work is performed. ! This routine is mainly an interface to vmb_map_bld where the real work is performed.
! It takes care of some consistency checking, and calls map_to_tprol, which is ! It takes care of some consistency checking, and calls map_to_tprol, which is
! refactored and shared among all the aggregation methods that produce a simple ! refactored and shared among all the aggregation methods that produce a simple
! integer mapping. ! integer mapping.
@ -110,12 +110,12 @@ subroutine mld_s_dec_aggregator_build_tprol(ag,parms,a,desc_a,ilaggr,nlaggr,op_
call mld_check_def(parms%aggr_thresh,'Aggr_Thresh',szero,is_legal_s_aggr_thrs) call mld_check_def(parms%aggr_thresh,'Aggr_Thresh',szero,is_legal_s_aggr_thrs)
call mld_dec_map_bld(parms%aggr_ord,parms%aggr_thresh,a,desc_a,nlaggr,ilaggr,info) call mld_vmb_map_bld(parms%aggr_ord,parms%aggr_thresh,a,desc_a,nlaggr,ilaggr,info)
if (info==psb_success_) call mld_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info) if (info==psb_success_) call mld_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info)
if (info /= psb_success_) then if (info /= psb_success_) then
info=psb_err_from_subroutine_ info=psb_err_from_subroutine_
call psb_errpush(info,name,a_err='dec_map_bld/map_to_tprol') call psb_errpush(info,name,a_err='vmb_map_bld/map_to_tprol')
goto 9999 goto 9999
endif endif

@ -41,14 +41,13 @@
! Subroutine: mld_s_hyb_map_bld ! Subroutine: mld_s_hyb_map_bld
! Version: real ! Version: real
! !
! This routine builds the tentative prolongator based on the ! The aggregator object hosts the aggregation method for building
! decoupled aggregation algorithm presented in ! the multilevel hierarchy. This variant is based on the hybrid method
! ! presented in
! M. Brezina and P. Vanek, A black-box iterative solver based on a !
! two-level Schwarz method, Computing, 63 (1999), 233-263. ! S. Gratton, P. Henon, P. Jiranek and X. Vasseur:
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of ! Reducing complexity of algebraic multigrid by aggregation
! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math. ! Numerical Lin. Algebra with Applications, 2016, 23:501-518
! 57 (2007), 1181-1196.
! !
! Note: upon exit ! Note: upon exit
! !

@ -41,7 +41,7 @@
! Version: real ! Version: real
! !
! !
! This routine is mainly an interface to dec_map_bld where the real work is performed. ! This routine is mainly an interface to vmb_map_bld where the real work is performed.
! It takes care of some consistency checking, and calls map_to_tprol, which is ! It takes care of some consistency checking, and calls map_to_tprol, which is
! refactored and shared among all the aggregation methods that produce a simple ! refactored and shared among all the aggregation methods that produce a simple
! integer mapping. ! integer mapping.
@ -127,13 +127,13 @@ subroutine mld_s_symdec_aggregator_build_tprol(ag,parms,a,desc_a,ilaggr,nlaggr,
if (info == psb_success_) call atmp%cscnv(info,type='CSR') if (info == psb_success_) call atmp%cscnv(info,type='CSR')
if (info == psb_success_) & if (info == psb_success_) &
& call mld_dec_map_bld(parms%aggr_ord,parms%aggr_thresh,atmp,desc_a,nlaggr,ilaggr,info) & call mld_vmb_map_bld(parms%aggr_ord,parms%aggr_thresh,atmp,desc_a,nlaggr,ilaggr,info)
if (info == psb_success_) call atmp%free() if (info == psb_success_) call atmp%free()
if (info == psb_success_) call mld_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info) if (info == psb_success_) call mld_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info)
if (info /= psb_success_) then if (info /= psb_success_) then
info=psb_err_from_subroutine_ info=psb_err_from_subroutine_
call psb_errpush(info,name,a_err='dec_map_bld/map_to_tprol') call psb_errpush(info,name,a_err='vmb_map_bld/map_to_tprol')
goto 9999 goto 9999
endif endif

@ -36,13 +36,13 @@
! !
! !
! !
! File: mld_s_dec_map__bld.f90 ! File: mld_s_vmb_map__bld.f90
! !
! Subroutine: mld_s_dec_map_bld ! Subroutine: mld_s_vmb_map_bld
! Version: real ! Version: real
! !
! This routine builds the tentative prolongator based on the ! This routine builds the tentative prolongator based on the
! decoupled aggregation algorithm presented in ! strength of connection aggregation algorithm presented in
! !
! M. Brezina and P. Vanek, A black-box iterative solver based on a ! M. Brezina and P. Vanek, A black-box iterative solver based on a
! two-level Schwarz method, Computing, 63 (1999), 233-263. ! two-level Schwarz method, Computing, 63 (1999), 233-263.
@ -67,11 +67,11 @@
! !
! !
! !
subroutine mld_s_dec_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) subroutine mld_s_vmb_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
use psb_base_mod use psb_base_mod
use mld_base_prec_type use mld_base_prec_type
use mld_s_inner_mod, mld_protect_name => mld_s_dec_map_bld use mld_s_inner_mod, mld_protect_name => mld_s_vmb_map_bld
implicit none implicit none
@ -98,7 +98,7 @@ subroutine mld_s_dec_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
if (psb_get_errstatus() /= 0) return if (psb_get_errstatus() /= 0) return
info=psb_success_ info=psb_success_
name = 'mld_dec_map_bld' name = 'mld_vmb_map_bld'
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
debug_unit = psb_get_debug_unit() debug_unit = psb_get_debug_unit()
debug_level = psb_get_debug_level() debug_level = psb_get_debug_level()
@ -318,5 +318,5 @@ subroutine mld_s_dec_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
return return
end subroutine mld_s_dec_map_bld end subroutine mld_s_vmb_map_bld

@ -40,7 +40,7 @@
! Subroutine: mld_z_dec_aggregator_tprol ! Subroutine: mld_z_dec_aggregator_tprol
! Version: complex ! Version: complex
! !
! This routine is mainly an interface to dec_map_bld where the real work is performed. ! This routine is mainly an interface to vmb_map_bld where the real work is performed.
! It takes care of some consistency checking, and calls map_to_tprol, which is ! It takes care of some consistency checking, and calls map_to_tprol, which is
! refactored and shared among all the aggregation methods that produce a simple ! refactored and shared among all the aggregation methods that produce a simple
! integer mapping. ! integer mapping.
@ -110,12 +110,12 @@ subroutine mld_z_dec_aggregator_build_tprol(ag,parms,a,desc_a,ilaggr,nlaggr,op_
call mld_check_def(parms%aggr_thresh,'Aggr_Thresh',dzero,is_legal_d_aggr_thrs) call mld_check_def(parms%aggr_thresh,'Aggr_Thresh',dzero,is_legal_d_aggr_thrs)
call mld_dec_map_bld(parms%aggr_ord,parms%aggr_thresh,a,desc_a,nlaggr,ilaggr,info) call mld_vmb_map_bld(parms%aggr_ord,parms%aggr_thresh,a,desc_a,nlaggr,ilaggr,info)
if (info==psb_success_) call mld_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info) if (info==psb_success_) call mld_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info)
if (info /= psb_success_) then if (info /= psb_success_) then
info=psb_err_from_subroutine_ info=psb_err_from_subroutine_
call psb_errpush(info,name,a_err='dec_map_bld/map_to_tprol') call psb_errpush(info,name,a_err='vmb_map_bld/map_to_tprol')
goto 9999 goto 9999
endif endif

@ -41,14 +41,13 @@
! Subroutine: mld_z_hyb_map_bld ! Subroutine: mld_z_hyb_map_bld
! Version: complex ! Version: complex
! !
! This routine builds the tentative prolongator based on the ! The aggregator object hosts the aggregation method for building
! decoupled aggregation algorithm presented in ! the multilevel hierarchy. This variant is based on the hybrid method
! ! presented in
! M. Brezina and P. Vanek, A black-box iterative solver based on a !
! two-level Schwarz method, Computing, 63 (1999), 233-263. ! S. Gratton, P. Henon, P. Jiranek and X. Vasseur:
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of ! Reducing complexity of algebraic multigrid by aggregation
! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math. ! Numerical Lin. Algebra with Applications, 2016, 23:501-518
! 57 (2007), 1181-1196.
! !
! Note: upon exit ! Note: upon exit
! !

@ -41,7 +41,7 @@
! Version: complex ! Version: complex
! !
! !
! This routine is mainly an interface to dec_map_bld where the real work is performed. ! This routine is mainly an interface to vmb_map_bld where the real work is performed.
! It takes care of some consistency checking, and calls map_to_tprol, which is ! It takes care of some consistency checking, and calls map_to_tprol, which is
! refactored and shared among all the aggregation methods that produce a simple ! refactored and shared among all the aggregation methods that produce a simple
! integer mapping. ! integer mapping.
@ -127,13 +127,13 @@ subroutine mld_z_symdec_aggregator_build_tprol(ag,parms,a,desc_a,ilaggr,nlaggr,
if (info == psb_success_) call atmp%cscnv(info,type='CSR') if (info == psb_success_) call atmp%cscnv(info,type='CSR')
if (info == psb_success_) & if (info == psb_success_) &
& call mld_dec_map_bld(parms%aggr_ord,parms%aggr_thresh,atmp,desc_a,nlaggr,ilaggr,info) & call mld_vmb_map_bld(parms%aggr_ord,parms%aggr_thresh,atmp,desc_a,nlaggr,ilaggr,info)
if (info == psb_success_) call atmp%free() if (info == psb_success_) call atmp%free()
if (info == psb_success_) call mld_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info) if (info == psb_success_) call mld_map_to_tprol(desc_a,ilaggr,nlaggr,op_prol,info)
if (info /= psb_success_) then if (info /= psb_success_) then
info=psb_err_from_subroutine_ info=psb_err_from_subroutine_
call psb_errpush(info,name,a_err='dec_map_bld/map_to_tprol') call psb_errpush(info,name,a_err='vmb_map_bld/map_to_tprol')
goto 9999 goto 9999
endif endif

@ -36,13 +36,13 @@
! !
! !
! !
! File: mld_z_dec_map__bld.f90 ! File: mld_z_vmb_map__bld.f90
! !
! Subroutine: mld_z_dec_map_bld ! Subroutine: mld_z_vmb_map_bld
! Version: complex ! Version: complex
! !
! This routine builds the tentative prolongator based on the ! This routine builds the tentative prolongator based on the
! decoupled aggregation algorithm presented in ! strength of connection aggregation algorithm presented in
! !
! M. Brezina and P. Vanek, A black-box iterative solver based on a ! M. Brezina and P. Vanek, A black-box iterative solver based on a
! two-level Schwarz method, Computing, 63 (1999), 233-263. ! two-level Schwarz method, Computing, 63 (1999), 233-263.
@ -67,11 +67,11 @@
! !
! !
! !
subroutine mld_z_dec_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) subroutine mld_z_vmb_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
use psb_base_mod use psb_base_mod
use mld_base_prec_type use mld_base_prec_type
use mld_z_inner_mod, mld_protect_name => mld_z_dec_map_bld use mld_z_inner_mod, mld_protect_name => mld_z_vmb_map_bld
implicit none implicit none
@ -98,7 +98,7 @@ subroutine mld_z_dec_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
if (psb_get_errstatus() /= 0) return if (psb_get_errstatus() /= 0) return
info=psb_success_ info=psb_success_
name = 'mld_dec_map_bld' name = 'mld_vmb_map_bld'
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
debug_unit = psb_get_debug_unit() debug_unit = psb_get_debug_unit()
debug_level = psb_get_debug_level() debug_level = psb_get_debug_level()
@ -318,5 +318,5 @@ subroutine mld_z_dec_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
return return
end subroutine mld_z_dec_map_bld end subroutine mld_z_vmb_map_bld

@ -124,8 +124,8 @@ module mld_c_inner_mod
end interface mld_aggrmap_bld end interface mld_aggrmap_bld
interface mld_dec_map_bld interface mld_vmb_map_bld
subroutine mld_c_dec_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) subroutine mld_c_vmb_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
import :: psb_cspmat_type, psb_desc_type, psb_spk_, psb_ipk_ import :: psb_cspmat_type, psb_desc_type, psb_spk_, psb_ipk_
implicit none implicit none
integer(psb_ipk_), intent(in) :: iorder integer(psb_ipk_), intent(in) :: iorder
@ -134,8 +134,8 @@ module mld_c_inner_mod
real(psb_spk_), intent(in) :: theta real(psb_spk_), intent(in) :: theta
integer(psb_ipk_), allocatable, intent(out) :: ilaggr(:),nlaggr(:) integer(psb_ipk_), allocatable, intent(out) :: ilaggr(:),nlaggr(:)
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
end subroutine mld_c_dec_map_bld end subroutine mld_c_vmb_map_bld
end interface mld_dec_map_bld end interface mld_vmb_map_bld
interface mld_hyb_map_bld interface mld_hyb_map_bld
subroutine mld_c_hyb_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) subroutine mld_c_hyb_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)

@ -124,8 +124,8 @@ module mld_d_inner_mod
end interface mld_aggrmap_bld end interface mld_aggrmap_bld
interface mld_dec_map_bld interface mld_vmb_map_bld
subroutine mld_d_dec_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) subroutine mld_d_vmb_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
import :: psb_dspmat_type, psb_desc_type, psb_dpk_, psb_ipk_ import :: psb_dspmat_type, psb_desc_type, psb_dpk_, psb_ipk_
implicit none implicit none
integer(psb_ipk_), intent(in) :: iorder integer(psb_ipk_), intent(in) :: iorder
@ -134,8 +134,8 @@ module mld_d_inner_mod
real(psb_dpk_), intent(in) :: theta real(psb_dpk_), intent(in) :: theta
integer(psb_ipk_), allocatable, intent(out) :: ilaggr(:),nlaggr(:) integer(psb_ipk_), allocatable, intent(out) :: ilaggr(:),nlaggr(:)
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
end subroutine mld_d_dec_map_bld end subroutine mld_d_vmb_map_bld
end interface mld_dec_map_bld end interface mld_vmb_map_bld
interface mld_hyb_map_bld interface mld_hyb_map_bld
subroutine mld_d_hyb_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) subroutine mld_d_hyb_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)

@ -124,8 +124,8 @@ module mld_s_inner_mod
end interface mld_aggrmap_bld end interface mld_aggrmap_bld
interface mld_dec_map_bld interface mld_vmb_map_bld
subroutine mld_s_dec_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) subroutine mld_s_vmb_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
import :: psb_sspmat_type, psb_desc_type, psb_spk_, psb_ipk_ import :: psb_sspmat_type, psb_desc_type, psb_spk_, psb_ipk_
implicit none implicit none
integer(psb_ipk_), intent(in) :: iorder integer(psb_ipk_), intent(in) :: iorder
@ -134,8 +134,8 @@ module mld_s_inner_mod
real(psb_spk_), intent(in) :: theta real(psb_spk_), intent(in) :: theta
integer(psb_ipk_), allocatable, intent(out) :: ilaggr(:),nlaggr(:) integer(psb_ipk_), allocatable, intent(out) :: ilaggr(:),nlaggr(:)
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
end subroutine mld_s_dec_map_bld end subroutine mld_s_vmb_map_bld
end interface mld_dec_map_bld end interface mld_vmb_map_bld
interface mld_hyb_map_bld interface mld_hyb_map_bld
subroutine mld_s_hyb_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) subroutine mld_s_hyb_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)

@ -124,8 +124,8 @@ module mld_z_inner_mod
end interface mld_aggrmap_bld end interface mld_aggrmap_bld
interface mld_dec_map_bld interface mld_vmb_map_bld
subroutine mld_z_dec_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) subroutine mld_z_vmb_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
import :: psb_zspmat_type, psb_desc_type, psb_dpk_, psb_ipk_ import :: psb_zspmat_type, psb_desc_type, psb_dpk_, psb_ipk_
implicit none implicit none
integer(psb_ipk_), intent(in) :: iorder integer(psb_ipk_), intent(in) :: iorder
@ -134,8 +134,8 @@ module mld_z_inner_mod
real(psb_dpk_), intent(in) :: theta real(psb_dpk_), intent(in) :: theta
integer(psb_ipk_), allocatable, intent(out) :: ilaggr(:),nlaggr(:) integer(psb_ipk_), allocatable, intent(out) :: ilaggr(:),nlaggr(:)
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
end subroutine mld_z_dec_map_bld end subroutine mld_z_vmb_map_bld
end interface mld_dec_map_bld end interface mld_vmb_map_bld
interface mld_hyb_map_bld interface mld_hyb_map_bld
subroutine mld_z_hyb_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info) subroutine mld_z_hyb_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)

Loading…
Cancel
Save