mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 22:55:12 +00:00
Take out the backfix method.
Originally it was introduced to handle cases where the stencil was expanded by the smoothing and multiplication process, but the critical step is handled in AGGR%BLD_MAP, this one can be discarded.
This commit is contained in:
@@ -449,11 +449,6 @@ subroutine mld_c_hierarchy_bld(a,desc_a,prec,info)
|
||||
end do
|
||||
end if
|
||||
|
||||
! Does the coarsening need backfix on descriptors?
|
||||
do i=2, iszv
|
||||
if (info == psb_success_) call prec%precv(i)%backfix(prec%precv(i-1),info)
|
||||
end do
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Internal hierarchy build' )
|
||||
|
||||
@@ -449,11 +449,6 @@ subroutine mld_d_hierarchy_bld(a,desc_a,prec,info)
|
||||
end do
|
||||
end if
|
||||
|
||||
! Does the coarsening need backfix on descriptors?
|
||||
do i=2, iszv
|
||||
if (info == psb_success_) call prec%precv(i)%backfix(prec%precv(i-1),info)
|
||||
end do
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Internal hierarchy build' )
|
||||
|
||||
@@ -449,11 +449,6 @@ subroutine mld_s_hierarchy_bld(a,desc_a,prec,info)
|
||||
end do
|
||||
end if
|
||||
|
||||
! Does the coarsening need backfix on descriptors?
|
||||
do i=2, iszv
|
||||
if (info == psb_success_) call prec%precv(i)%backfix(prec%precv(i-1),info)
|
||||
end do
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Internal hierarchy build' )
|
||||
|
||||
@@ -449,11 +449,6 @@ subroutine mld_z_hierarchy_bld(a,desc_a,prec,info)
|
||||
end do
|
||||
end if
|
||||
|
||||
! Does the coarsening need backfix on descriptors?
|
||||
do i=2, iszv
|
||||
if (info == psb_success_) call prec%precv(i)%backfix(prec%precv(i-1),info)
|
||||
end do
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Internal hierarchy build' )
|
||||
|
||||
@@ -103,7 +103,6 @@ module mld_c_base_aggregator_mod
|
||||
procedure, pass(ag) :: csetc => mld_c_base_aggregator_csetc
|
||||
generic, public :: set => cseti, csetr, csetc
|
||||
procedure, nopass :: xt_desc => mld_c_base_aggregator_xt_desc
|
||||
procedure, pass(ag) :: backfix => mld_c_base_aggregator_backfix
|
||||
end type mld_c_base_aggregator_type
|
||||
|
||||
abstract interface
|
||||
@@ -272,20 +271,6 @@ contains
|
||||
val = .false.
|
||||
end function mld_c_base_aggregator_xt_desc
|
||||
|
||||
subroutine mld_c_base_aggregator_backfix(ag,base_a,ac,base_desc,desc_ac,info)
|
||||
implicit none
|
||||
class(mld_c_base_aggregator_type), intent(inout) :: ag
|
||||
type(psb_cspmat_type), pointer :: base_a
|
||||
type(psb_cspmat_type), intent(inout), target :: ac
|
||||
type(psb_desc_type), pointer :: base_desc
|
||||
type(psb_desc_type), intent(inout), target :: desc_ac
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
|
||||
! Base version is to do nothing.
|
||||
info = psb_success_
|
||||
|
||||
end subroutine mld_c_base_aggregator_backfix
|
||||
|
||||
subroutine mld_c_base_aggregator_descr(ag,parms,iout,info)
|
||||
implicit none
|
||||
class(mld_c_base_aggregator_type), intent(in) :: ag
|
||||
|
||||
@@ -171,7 +171,6 @@ module mld_c_onelev_mod
|
||||
contains
|
||||
procedure, pass(lv) :: bld_tprol => c_base_onelev_bld_tprol
|
||||
procedure, pass(lv) :: mat_asb => mld_c_base_onelev_mat_asb
|
||||
procedure, pass(lv) :: backfix => c_base_onelev_backfix
|
||||
procedure, pass(lv) :: update_aggr => c_base_onelev_update_aggr
|
||||
procedure, pass(lv) :: bld => mld_c_base_onelev_build
|
||||
procedure, pass(lv) :: clone => c_base_onelev_clone
|
||||
@@ -514,20 +513,6 @@ contains
|
||||
end subroutine c_base_onelev_update_aggr
|
||||
|
||||
|
||||
subroutine c_base_onelev_backfix(lv,lvprev,info)
|
||||
implicit none
|
||||
class(mld_c_onelev_type), intent(inout), target :: lv, lvprev
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
|
||||
info = psb_success_
|
||||
if (lv%aggr%xt_desc()) then
|
||||
call lv%aggr%backfix(lvprev%base_a,lvprev%ac,&
|
||||
& lvprev%base_desc,lvprev%desc_ac,info)
|
||||
end if
|
||||
|
||||
end subroutine c_base_onelev_backfix
|
||||
|
||||
|
||||
subroutine c_base_onelev_clone(lv,lvout,info)
|
||||
|
||||
Implicit None
|
||||
|
||||
@@ -103,7 +103,6 @@ module mld_d_base_aggregator_mod
|
||||
procedure, pass(ag) :: csetc => mld_d_base_aggregator_csetc
|
||||
generic, public :: set => cseti, csetr, csetc
|
||||
procedure, nopass :: xt_desc => mld_d_base_aggregator_xt_desc
|
||||
procedure, pass(ag) :: backfix => mld_d_base_aggregator_backfix
|
||||
end type mld_d_base_aggregator_type
|
||||
|
||||
abstract interface
|
||||
@@ -272,20 +271,6 @@ contains
|
||||
val = .false.
|
||||
end function mld_d_base_aggregator_xt_desc
|
||||
|
||||
subroutine mld_d_base_aggregator_backfix(ag,base_a,ac,base_desc,desc_ac,info)
|
||||
implicit none
|
||||
class(mld_d_base_aggregator_type), intent(inout) :: ag
|
||||
type(psb_dspmat_type), pointer :: base_a
|
||||
type(psb_dspmat_type), intent(inout), target :: ac
|
||||
type(psb_desc_type), pointer :: base_desc
|
||||
type(psb_desc_type), intent(inout), target :: desc_ac
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
|
||||
! Base version is to do nothing.
|
||||
info = psb_success_
|
||||
|
||||
end subroutine mld_d_base_aggregator_backfix
|
||||
|
||||
subroutine mld_d_base_aggregator_descr(ag,parms,iout,info)
|
||||
implicit none
|
||||
class(mld_d_base_aggregator_type), intent(in) :: ag
|
||||
|
||||
@@ -171,7 +171,6 @@ module mld_d_onelev_mod
|
||||
contains
|
||||
procedure, pass(lv) :: bld_tprol => d_base_onelev_bld_tprol
|
||||
procedure, pass(lv) :: mat_asb => mld_d_base_onelev_mat_asb
|
||||
procedure, pass(lv) :: backfix => d_base_onelev_backfix
|
||||
procedure, pass(lv) :: update_aggr => d_base_onelev_update_aggr
|
||||
procedure, pass(lv) :: bld => mld_d_base_onelev_build
|
||||
procedure, pass(lv) :: clone => d_base_onelev_clone
|
||||
@@ -514,20 +513,6 @@ contains
|
||||
end subroutine d_base_onelev_update_aggr
|
||||
|
||||
|
||||
subroutine d_base_onelev_backfix(lv,lvprev,info)
|
||||
implicit none
|
||||
class(mld_d_onelev_type), intent(inout), target :: lv, lvprev
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
|
||||
info = psb_success_
|
||||
if (lv%aggr%xt_desc()) then
|
||||
call lv%aggr%backfix(lvprev%base_a,lvprev%ac,&
|
||||
& lvprev%base_desc,lvprev%desc_ac,info)
|
||||
end if
|
||||
|
||||
end subroutine d_base_onelev_backfix
|
||||
|
||||
|
||||
subroutine d_base_onelev_clone(lv,lvout,info)
|
||||
|
||||
Implicit None
|
||||
|
||||
@@ -103,7 +103,6 @@ module mld_s_base_aggregator_mod
|
||||
procedure, pass(ag) :: csetc => mld_s_base_aggregator_csetc
|
||||
generic, public :: set => cseti, csetr, csetc
|
||||
procedure, nopass :: xt_desc => mld_s_base_aggregator_xt_desc
|
||||
procedure, pass(ag) :: backfix => mld_s_base_aggregator_backfix
|
||||
end type mld_s_base_aggregator_type
|
||||
|
||||
abstract interface
|
||||
@@ -272,20 +271,6 @@ contains
|
||||
val = .false.
|
||||
end function mld_s_base_aggregator_xt_desc
|
||||
|
||||
subroutine mld_s_base_aggregator_backfix(ag,base_a,ac,base_desc,desc_ac,info)
|
||||
implicit none
|
||||
class(mld_s_base_aggregator_type), intent(inout) :: ag
|
||||
type(psb_sspmat_type), pointer :: base_a
|
||||
type(psb_sspmat_type), intent(inout), target :: ac
|
||||
type(psb_desc_type), pointer :: base_desc
|
||||
type(psb_desc_type), intent(inout), target :: desc_ac
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
|
||||
! Base version is to do nothing.
|
||||
info = psb_success_
|
||||
|
||||
end subroutine mld_s_base_aggregator_backfix
|
||||
|
||||
subroutine mld_s_base_aggregator_descr(ag,parms,iout,info)
|
||||
implicit none
|
||||
class(mld_s_base_aggregator_type), intent(in) :: ag
|
||||
|
||||
@@ -171,7 +171,6 @@ module mld_s_onelev_mod
|
||||
contains
|
||||
procedure, pass(lv) :: bld_tprol => s_base_onelev_bld_tprol
|
||||
procedure, pass(lv) :: mat_asb => mld_s_base_onelev_mat_asb
|
||||
procedure, pass(lv) :: backfix => s_base_onelev_backfix
|
||||
procedure, pass(lv) :: update_aggr => s_base_onelev_update_aggr
|
||||
procedure, pass(lv) :: bld => mld_s_base_onelev_build
|
||||
procedure, pass(lv) :: clone => s_base_onelev_clone
|
||||
@@ -514,20 +513,6 @@ contains
|
||||
end subroutine s_base_onelev_update_aggr
|
||||
|
||||
|
||||
subroutine s_base_onelev_backfix(lv,lvprev,info)
|
||||
implicit none
|
||||
class(mld_s_onelev_type), intent(inout), target :: lv, lvprev
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
|
||||
info = psb_success_
|
||||
if (lv%aggr%xt_desc()) then
|
||||
call lv%aggr%backfix(lvprev%base_a,lvprev%ac,&
|
||||
& lvprev%base_desc,lvprev%desc_ac,info)
|
||||
end if
|
||||
|
||||
end subroutine s_base_onelev_backfix
|
||||
|
||||
|
||||
subroutine s_base_onelev_clone(lv,lvout,info)
|
||||
|
||||
Implicit None
|
||||
|
||||
@@ -103,7 +103,6 @@ module mld_z_base_aggregator_mod
|
||||
procedure, pass(ag) :: csetc => mld_z_base_aggregator_csetc
|
||||
generic, public :: set => cseti, csetr, csetc
|
||||
procedure, nopass :: xt_desc => mld_z_base_aggregator_xt_desc
|
||||
procedure, pass(ag) :: backfix => mld_z_base_aggregator_backfix
|
||||
end type mld_z_base_aggregator_type
|
||||
|
||||
abstract interface
|
||||
@@ -272,20 +271,6 @@ contains
|
||||
val = .false.
|
||||
end function mld_z_base_aggregator_xt_desc
|
||||
|
||||
subroutine mld_z_base_aggregator_backfix(ag,base_a,ac,base_desc,desc_ac,info)
|
||||
implicit none
|
||||
class(mld_z_base_aggregator_type), intent(inout) :: ag
|
||||
type(psb_zspmat_type), pointer :: base_a
|
||||
type(psb_zspmat_type), intent(inout), target :: ac
|
||||
type(psb_desc_type), pointer :: base_desc
|
||||
type(psb_desc_type), intent(inout), target :: desc_ac
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
|
||||
! Base version is to do nothing.
|
||||
info = psb_success_
|
||||
|
||||
end subroutine mld_z_base_aggregator_backfix
|
||||
|
||||
subroutine mld_z_base_aggregator_descr(ag,parms,iout,info)
|
||||
implicit none
|
||||
class(mld_z_base_aggregator_type), intent(in) :: ag
|
||||
|
||||
@@ -171,7 +171,6 @@ module mld_z_onelev_mod
|
||||
contains
|
||||
procedure, pass(lv) :: bld_tprol => z_base_onelev_bld_tprol
|
||||
procedure, pass(lv) :: mat_asb => mld_z_base_onelev_mat_asb
|
||||
procedure, pass(lv) :: backfix => z_base_onelev_backfix
|
||||
procedure, pass(lv) :: update_aggr => z_base_onelev_update_aggr
|
||||
procedure, pass(lv) :: bld => mld_z_base_onelev_build
|
||||
procedure, pass(lv) :: clone => z_base_onelev_clone
|
||||
@@ -514,20 +513,6 @@ contains
|
||||
end subroutine z_base_onelev_update_aggr
|
||||
|
||||
|
||||
subroutine z_base_onelev_backfix(lv,lvprev,info)
|
||||
implicit none
|
||||
class(mld_z_onelev_type), intent(inout), target :: lv, lvprev
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
|
||||
info = psb_success_
|
||||
if (lv%aggr%xt_desc()) then
|
||||
call lv%aggr%backfix(lvprev%base_a,lvprev%ac,&
|
||||
& lvprev%base_desc,lvprev%desc_ac,info)
|
||||
end if
|
||||
|
||||
end subroutine z_base_onelev_backfix
|
||||
|
||||
|
||||
subroutine z_base_onelev_clone(lv,lvout,info)
|
||||
|
||||
Implicit None
|
||||
|
||||
Reference in New Issue
Block a user