From 01cc7ada880b5adfad0086d9d85648c8bda4e2d2 Mon Sep 17 00:00:00 2001 From: sfilippone Date: Mon, 27 Apr 2026 13:04:04 +0200 Subject: [PATCH] Adjust strategy for stopping on aggregation ratio --- amgprec/impl/amg_c_hierarchy_bld.F90 | 12 ++++-------- amgprec/impl/amg_d_hierarchy_bld.F90 | 13 ++++--------- amgprec/impl/amg_s_hierarchy_bld.F90 | 12 ++++-------- amgprec/impl/amg_z_hierarchy_bld.F90 | 12 ++++-------- 4 files changed, 16 insertions(+), 33 deletions(-) diff --git a/amgprec/impl/amg_c_hierarchy_bld.F90 b/amgprec/impl/amg_c_hierarchy_bld.F90 index 37e009ea..42deda4b 100644 --- a/amgprec/impl/amg_c_hierarchy_bld.F90 +++ b/amgprec/impl/amg_c_hierarchy_bld.F90 @@ -366,14 +366,10 @@ subroutine amg_c_hierarchy_bld(a,desc_a,prec,info,cpymat) if (i>2) then if (sizeratio < mnaggratio) then - if (sizeratio > 1) then - newsz = i - else - ! - ! We are not gaining - ! - newsz = i-1 - end if + ! + ! We are not gaining + ! + newsz = i-1 end if if (all(nlaggr == prec%precv(i-1)%linmap%naggr)) then diff --git a/amgprec/impl/amg_d_hierarchy_bld.F90 b/amgprec/impl/amg_d_hierarchy_bld.F90 index 452a404f..d74801ed 100644 --- a/amgprec/impl/amg_d_hierarchy_bld.F90 +++ b/amgprec/impl/amg_d_hierarchy_bld.F90 @@ -366,14 +366,10 @@ subroutine amg_d_hierarchy_bld(a,desc_a,prec,info,cpymat) if (i>2) then if (sizeratio < mnaggratio) then - if (sizeratio > 1) then - newsz = i - else - ! - ! We are not gaining - ! - newsz = i-1 - end if + ! + ! We are not gaining + ! + newsz = i-1 end if if (all(nlaggr == prec%precv(i-1)%linmap%naggr)) then @@ -434,7 +430,6 @@ subroutine amg_d_hierarchy_bld(a,desc_a,prec,info,cpymat) & ilaggr,nlaggr,op_prol,info) if (do_timings) call psb_toc(idx_matasb) end if - if (info /= psb_success_) then write(ch_err,'(a,i7)') 'Mat asb fail @ level ',i call psb_errpush(psb_err_internal_error_,name,& diff --git a/amgprec/impl/amg_s_hierarchy_bld.F90 b/amgprec/impl/amg_s_hierarchy_bld.F90 index 454847ef..826a1efa 100644 --- a/amgprec/impl/amg_s_hierarchy_bld.F90 +++ b/amgprec/impl/amg_s_hierarchy_bld.F90 @@ -366,14 +366,10 @@ subroutine amg_s_hierarchy_bld(a,desc_a,prec,info,cpymat) if (i>2) then if (sizeratio < mnaggratio) then - if (sizeratio > 1) then - newsz = i - else - ! - ! We are not gaining - ! - newsz = i-1 - end if + ! + ! We are not gaining + ! + newsz = i-1 end if if (all(nlaggr == prec%precv(i-1)%linmap%naggr)) then diff --git a/amgprec/impl/amg_z_hierarchy_bld.F90 b/amgprec/impl/amg_z_hierarchy_bld.F90 index 6678530a..f01d8a1b 100644 --- a/amgprec/impl/amg_z_hierarchy_bld.F90 +++ b/amgprec/impl/amg_z_hierarchy_bld.F90 @@ -366,14 +366,10 @@ subroutine amg_z_hierarchy_bld(a,desc_a,prec,info,cpymat) if (i>2) then if (sizeratio < mnaggratio) then - if (sizeratio > 1) then - newsz = i - else - ! - ! We are not gaining - ! - newsz = i-1 - end if + ! + ! We are not gaining + ! + newsz = i-1 end if if (all(nlaggr == prec%precv(i-1)%linmap%naggr)) then