mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-16 10:52:09 +00:00
mld2p4;
mlprec/impl/level/mld_c_base_onelev_descr.f90 mlprec/impl/level/mld_d_base_onelev_descr.f90 mlprec/impl/level/mld_s_base_onelev_descr.f90 mlprec/impl/level/mld_z_base_onelev_descr.f90 mlprec/impl/mld_c_hierarchy_bld.f90 mlprec/impl/mld_d_hierarchy_bld.f90 mlprec/impl/mld_s_hierarchy_bld.f90 mlprec/impl/mld_z_hierarchy_bld.f90 mlprec/mld_c_onelev_mod.f90 mlprec/mld_c_prec_type.f90 mlprec/mld_d_onelev_mod.f90 mlprec/mld_d_prec_type.f90 mlprec/mld_s_onelev_mod.f90 mlprec/mld_s_prec_type.f90 mlprec/mld_z_onelev_mod.f90 mlprec/mld_z_prec_type.f90 Fix aggregation ratio logs.
This commit is contained in:
@@ -86,6 +86,8 @@ subroutine mld_c_base_onelev_descr(lv,il,nl,ilmin,info,iout)
|
||||
& sum(lv%map%naggr(:)),' Nonzeros: ',lv%ac_nz_tot
|
||||
write(iout_,*) ' Sizes of aggregates: ', &
|
||||
& lv%map%naggr(:)
|
||||
write(iout_,*) ' Aggregation ratio: ', &
|
||||
& lv%szratio
|
||||
end if
|
||||
end if
|
||||
|
||||
|
||||
@@ -86,6 +86,8 @@ subroutine mld_d_base_onelev_descr(lv,il,nl,ilmin,info,iout)
|
||||
& sum(lv%map%naggr(:)),' Nonzeros: ',lv%ac_nz_tot
|
||||
write(iout_,*) ' Sizes of aggregates: ', &
|
||||
& lv%map%naggr(:)
|
||||
write(iout_,*) ' Aggregation ratio: ', &
|
||||
& lv%szratio
|
||||
end if
|
||||
end if
|
||||
|
||||
|
||||
@@ -86,6 +86,8 @@ subroutine mld_s_base_onelev_descr(lv,il,nl,ilmin,info,iout)
|
||||
& sum(lv%map%naggr(:)),' Nonzeros: ',lv%ac_nz_tot
|
||||
write(iout_,*) ' Sizes of aggregates: ', &
|
||||
& lv%map%naggr(:)
|
||||
write(iout_,*) ' Aggregation ratio: ', &
|
||||
& lv%szratio
|
||||
end if
|
||||
end if
|
||||
|
||||
|
||||
@@ -86,6 +86,8 @@ subroutine mld_z_base_onelev_descr(lv,il,nl,ilmin,info,iout)
|
||||
& sum(lv%map%naggr(:)),' Nonzeros: ',lv%ac_nz_tot
|
||||
write(iout_,*) ' Sizes of aggregates: ', &
|
||||
& lv%map%naggr(:)
|
||||
write(iout_,*) ' Aggregation ratio: ', &
|
||||
& lv%szratio
|
||||
end if
|
||||
end if
|
||||
|
||||
|
||||
@@ -311,9 +311,15 @@ subroutine mld_c_hierarchy_bld(a,desc_a,p,info)
|
||||
newsz = i
|
||||
end if
|
||||
|
||||
if (i>2) then
|
||||
sizeratio = iaggsize
|
||||
sizeratio = iaggsize
|
||||
if (i==2) then
|
||||
sizeratio = desc_a%get_global_rows()/sizeratio
|
||||
else
|
||||
sizeratio = sum(p%precv(i-1)%map%naggr)/sizeratio
|
||||
end if
|
||||
p%precv(i)%szratio = sizeratio
|
||||
|
||||
if (i>2) then
|
||||
if (sizeratio < mnaggratio) then
|
||||
if (sizeratio > 1) then
|
||||
newsz = i
|
||||
|
||||
@@ -311,9 +311,15 @@ subroutine mld_d_hierarchy_bld(a,desc_a,p,info)
|
||||
newsz = i
|
||||
end if
|
||||
|
||||
if (i>2) then
|
||||
sizeratio = iaggsize
|
||||
sizeratio = iaggsize
|
||||
if (i==2) then
|
||||
sizeratio = desc_a%get_global_rows()/sizeratio
|
||||
else
|
||||
sizeratio = sum(p%precv(i-1)%map%naggr)/sizeratio
|
||||
end if
|
||||
p%precv(i)%szratio = sizeratio
|
||||
|
||||
if (i>2) then
|
||||
if (sizeratio < mnaggratio) then
|
||||
if (sizeratio > 1) then
|
||||
newsz = i
|
||||
|
||||
@@ -311,9 +311,15 @@ subroutine mld_s_hierarchy_bld(a,desc_a,p,info)
|
||||
newsz = i
|
||||
end if
|
||||
|
||||
if (i>2) then
|
||||
sizeratio = iaggsize
|
||||
sizeratio = iaggsize
|
||||
if (i==2) then
|
||||
sizeratio = desc_a%get_global_rows()/sizeratio
|
||||
else
|
||||
sizeratio = sum(p%precv(i-1)%map%naggr)/sizeratio
|
||||
end if
|
||||
p%precv(i)%szratio = sizeratio
|
||||
|
||||
if (i>2) then
|
||||
if (sizeratio < mnaggratio) then
|
||||
if (sizeratio > 1) then
|
||||
newsz = i
|
||||
|
||||
@@ -311,9 +311,15 @@ subroutine mld_z_hierarchy_bld(a,desc_a,p,info)
|
||||
newsz = i
|
||||
end if
|
||||
|
||||
if (i>2) then
|
||||
sizeratio = iaggsize
|
||||
sizeratio = iaggsize
|
||||
if (i==2) then
|
||||
sizeratio = desc_a%get_global_rows()/sizeratio
|
||||
else
|
||||
sizeratio = sum(p%precv(i-1)%map%naggr)/sizeratio
|
||||
end if
|
||||
p%precv(i)%szratio = sizeratio
|
||||
|
||||
if (i>2) then
|
||||
if (sizeratio < mnaggratio) then
|
||||
if (sizeratio > 1) then
|
||||
newsz = i
|
||||
|
||||
@@ -130,6 +130,7 @@ module mld_c_onelev_mod
|
||||
type(psb_cspmat_type), pointer :: base_a => null()
|
||||
type(psb_desc_type), pointer :: base_desc => null()
|
||||
type(psb_clinmap_type) :: map
|
||||
real(psb_spk_) :: szratio
|
||||
contains
|
||||
procedure, pass(lv) :: bld => mld_c_base_onelev_build
|
||||
procedure, pass(lv) :: clone => c_base_onelev_clone
|
||||
@@ -505,6 +506,7 @@ contains
|
||||
|
||||
call b%free(info)
|
||||
b%parms = lv%parms
|
||||
b%szratio = lv%szratio
|
||||
if (associated(lv%sm2,lv%sm2a)) then
|
||||
call move_alloc(lv%sm,b%sm)
|
||||
call move_alloc(lv%sm2a,b%sm2a)
|
||||
|
||||
@@ -500,7 +500,7 @@ contains
|
||||
! Print description of base preconditioner
|
||||
!
|
||||
if (nlev > 1) then
|
||||
write(iout_,*) 'Multilevel Schwarz'
|
||||
write(iout_,*) 'Multilevel Preconditioner'
|
||||
write(iout_,*) 'Outer sweeps:',p%outer_sweeps
|
||||
write(iout_,*)
|
||||
write(iout_,*) 'Base preconditioner (smoother) details'
|
||||
|
||||
@@ -130,6 +130,7 @@ module mld_d_onelev_mod
|
||||
type(psb_dspmat_type), pointer :: base_a => null()
|
||||
type(psb_desc_type), pointer :: base_desc => null()
|
||||
type(psb_dlinmap_type) :: map
|
||||
real(psb_dpk_) :: szratio
|
||||
contains
|
||||
procedure, pass(lv) :: bld => mld_d_base_onelev_build
|
||||
procedure, pass(lv) :: clone => d_base_onelev_clone
|
||||
@@ -505,6 +506,7 @@ contains
|
||||
|
||||
call b%free(info)
|
||||
b%parms = lv%parms
|
||||
b%szratio = lv%szratio
|
||||
if (associated(lv%sm2,lv%sm2a)) then
|
||||
call move_alloc(lv%sm,b%sm)
|
||||
call move_alloc(lv%sm2a,b%sm2a)
|
||||
|
||||
@@ -500,7 +500,7 @@ contains
|
||||
! Print description of base preconditioner
|
||||
!
|
||||
if (nlev > 1) then
|
||||
write(iout_,*) 'Multilevel Schwarz'
|
||||
write(iout_,*) 'Multilevel Preconditioner'
|
||||
write(iout_,*) 'Outer sweeps:',p%outer_sweeps
|
||||
write(iout_,*)
|
||||
write(iout_,*) 'Base preconditioner (smoother) details'
|
||||
|
||||
@@ -130,6 +130,7 @@ module mld_s_onelev_mod
|
||||
type(psb_sspmat_type), pointer :: base_a => null()
|
||||
type(psb_desc_type), pointer :: base_desc => null()
|
||||
type(psb_slinmap_type) :: map
|
||||
real(psb_spk_) :: szratio
|
||||
contains
|
||||
procedure, pass(lv) :: bld => mld_s_base_onelev_build
|
||||
procedure, pass(lv) :: clone => s_base_onelev_clone
|
||||
@@ -505,6 +506,7 @@ contains
|
||||
|
||||
call b%free(info)
|
||||
b%parms = lv%parms
|
||||
b%szratio = lv%szratio
|
||||
if (associated(lv%sm2,lv%sm2a)) then
|
||||
call move_alloc(lv%sm,b%sm)
|
||||
call move_alloc(lv%sm2a,b%sm2a)
|
||||
|
||||
@@ -500,7 +500,7 @@ contains
|
||||
! Print description of base preconditioner
|
||||
!
|
||||
if (nlev > 1) then
|
||||
write(iout_,*) 'Multilevel Schwarz'
|
||||
write(iout_,*) 'Multilevel Preconditioner'
|
||||
write(iout_,*) 'Outer sweeps:',p%outer_sweeps
|
||||
write(iout_,*)
|
||||
write(iout_,*) 'Base preconditioner (smoother) details'
|
||||
|
||||
@@ -130,6 +130,7 @@ module mld_z_onelev_mod
|
||||
type(psb_zspmat_type), pointer :: base_a => null()
|
||||
type(psb_desc_type), pointer :: base_desc => null()
|
||||
type(psb_zlinmap_type) :: map
|
||||
real(psb_dpk_) :: szratio
|
||||
contains
|
||||
procedure, pass(lv) :: bld => mld_z_base_onelev_build
|
||||
procedure, pass(lv) :: clone => z_base_onelev_clone
|
||||
@@ -505,6 +506,7 @@ contains
|
||||
|
||||
call b%free(info)
|
||||
b%parms = lv%parms
|
||||
b%szratio = lv%szratio
|
||||
if (associated(lv%sm2,lv%sm2a)) then
|
||||
call move_alloc(lv%sm,b%sm)
|
||||
call move_alloc(lv%sm2a,b%sm2a)
|
||||
|
||||
@@ -500,7 +500,7 @@ contains
|
||||
! Print description of base preconditioner
|
||||
!
|
||||
if (nlev > 1) then
|
||||
write(iout_,*) 'Multilevel Schwarz'
|
||||
write(iout_,*) 'Multilevel Preconditioner'
|
||||
write(iout_,*) 'Outer sweeps:',p%outer_sweeps
|
||||
write(iout_,*)
|
||||
write(iout_,*) 'Base preconditioner (smoother) details'
|
||||
|
||||
Reference in New Issue
Block a user