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.
stopcriterion
Salvatore Filippone 8 years ago
parent 3f7a1d5b38
commit 01de021908

@ -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'

Loading…
Cancel
Save