New L1-Jacobi smoother.

stopcriterion
Salvatore Filippone 6 years ago
parent 88976ec108
commit 712d95fbc7

@ -102,7 +102,6 @@ subroutine mld_c_base_onelev_cseti(lv,what,val,info,pos,idx)
select case (psb_toupper(what))
case ('SMOOTHER_TYPE')
select case (val)
case (mld_noprec_)
call lv%set(mld_c_base_smoother_mold,info,pos=pos)
@ -113,7 +112,6 @@ subroutine mld_c_base_onelev_cseti(lv,what,val,info,pos,idx)
if (info == 0) call lv%set(mld_c_diag_solver_mold,info,pos=pos)
case (mld_l1_jac_)
call lv%set(mld_c_jac_smoother_mold,info,pos=pos)
if (info == 0) call lv%set(mld_c_l1_diag_solver_mold,info,pos=pos)

@ -114,7 +114,6 @@ subroutine mld_d_base_onelev_cseti(lv,what,val,info,pos,idx)
select case (psb_toupper(what))
case ('SMOOTHER_TYPE')
select case (val)
case (mld_noprec_)
call lv%set(mld_d_base_smoother_mold,info,pos=pos)
@ -125,7 +124,6 @@ subroutine mld_d_base_onelev_cseti(lv,what,val,info,pos,idx)
if (info == 0) call lv%set(mld_d_diag_solver_mold,info,pos=pos)
case (mld_l1_jac_)
call lv%set(mld_d_jac_smoother_mold,info,pos=pos)
if (info == 0) call lv%set(mld_d_l1_diag_solver_mold,info,pos=pos)

@ -102,7 +102,6 @@ subroutine mld_s_base_onelev_cseti(lv,what,val,info,pos,idx)
select case (psb_toupper(what))
case ('SMOOTHER_TYPE')
select case (val)
case (mld_noprec_)
call lv%set(mld_s_base_smoother_mold,info,pos=pos)
@ -113,7 +112,6 @@ subroutine mld_s_base_onelev_cseti(lv,what,val,info,pos,idx)
if (info == 0) call lv%set(mld_s_diag_solver_mold,info,pos=pos)
case (mld_l1_jac_)
call lv%set(mld_s_jac_smoother_mold,info,pos=pos)
if (info == 0) call lv%set(mld_s_l1_diag_solver_mold,info,pos=pos)

@ -114,7 +114,6 @@ subroutine mld_z_base_onelev_cseti(lv,what,val,info,pos,idx)
select case (psb_toupper(what))
case ('SMOOTHER_TYPE')
select case (val)
case (mld_noprec_)
call lv%set(mld_z_base_smoother_mold,info,pos=pos)
@ -125,7 +124,6 @@ subroutine mld_z_base_onelev_cseti(lv,what,val,info,pos,idx)
if (info == 0) call lv%set(mld_z_diag_solver_mold,info,pos=pos)
case (mld_l1_jac_)
call lv%set(mld_z_jac_smoother_mold,info,pos=pos)
if (info == 0) call lv%set(mld_z_l1_diag_solver_mold,info,pos=pos)

@ -75,6 +75,7 @@ subroutine mld_c_jac_smoother_descr(sm,info,iout,coarse)
select type(smv=>sm%sv)
class is (mld_c_diag_solver_type)
write(iout_,*) ' Point Jacobi '
write(iout_,*) ' Local diagonal:'
call smv%descr(info,iout_,coarse=coarse)
class is (mld_c_bwgs_solver_type)
write(iout_,*) ' Hybrid Backward Gauss-Seidel '

@ -75,6 +75,7 @@ subroutine mld_d_jac_smoother_descr(sm,info,iout,coarse)
select type(smv=>sm%sv)
class is (mld_d_diag_solver_type)
write(iout_,*) ' Point Jacobi '
write(iout_,*) ' Local diagonal:'
call smv%descr(info,iout_,coarse=coarse)
class is (mld_d_bwgs_solver_type)
write(iout_,*) ' Hybrid Backward Gauss-Seidel '

@ -75,6 +75,7 @@ subroutine mld_s_jac_smoother_descr(sm,info,iout,coarse)
select type(smv=>sm%sv)
class is (mld_s_diag_solver_type)
write(iout_,*) ' Point Jacobi '
write(iout_,*) ' Local diagonal:'
call smv%descr(info,iout_,coarse=coarse)
class is (mld_s_bwgs_solver_type)
write(iout_,*) ' Hybrid Backward Gauss-Seidel '

@ -75,6 +75,7 @@ subroutine mld_z_jac_smoother_descr(sm,info,iout,coarse)
select type(smv=>sm%sv)
class is (mld_z_diag_solver_type)
write(iout_,*) ' Point Jacobi '
write(iout_,*) ' Local diagonal:'
call smv%descr(info,iout_,coarse=coarse)
class is (mld_z_bwgs_solver_type)
write(iout_,*) ' Hybrid Backward Gauss-Seidel '

@ -78,7 +78,7 @@ module mld_c_jac_smoother
end type mld_c_jac_smoother_type
private :: c_jac_smoother_free, c_jac_smoother_descr, &
private :: c_jac_smoother_free, &
& c_jac_smoother_sizeof, c_jac_smoother_get_nzeros, &
& c_jac_smoother_get_fmt, c_jac_smoother_get_id, &
& c_jac_smoother_get_wrksize

@ -78,7 +78,7 @@ module mld_d_jac_smoother
end type mld_d_jac_smoother_type
private :: d_jac_smoother_free, d_jac_smoother_descr, &
private :: d_jac_smoother_free, &
& d_jac_smoother_sizeof, d_jac_smoother_get_nzeros, &
& d_jac_smoother_get_fmt, d_jac_smoother_get_id, &
& d_jac_smoother_get_wrksize

@ -78,7 +78,7 @@ module mld_s_jac_smoother
end type mld_s_jac_smoother_type
private :: s_jac_smoother_free, s_jac_smoother_descr, &
private :: s_jac_smoother_free, &
& s_jac_smoother_sizeof, s_jac_smoother_get_nzeros, &
& s_jac_smoother_get_fmt, s_jac_smoother_get_id, &
& s_jac_smoother_get_wrksize

@ -78,7 +78,7 @@ module mld_z_jac_smoother
end type mld_z_jac_smoother_type
private :: z_jac_smoother_free, z_jac_smoother_descr, &
private :: z_jac_smoother_free, &
& z_jac_smoother_sizeof, z_jac_smoother_get_nzeros, &
& z_jac_smoother_get_fmt, z_jac_smoother_get_id, &
& z_jac_smoother_get_wrksize

@ -697,7 +697,7 @@ program mld_d_pde2d
case ('NONE','NOPREC')
! Do nothing, keep defaults
case ('JACOBI','GS','FWGS','FBGS')
case ('JACOBI','L1-JACOBI','GS','FWGS','FBGS')
! 1-level sweeps from "outer_sweeps"
call prec%set('smoother_sweeps', p_choice%jsweeps, info)
@ -745,7 +745,7 @@ program mld_d_pde2d
call prec%set('smoother_sweeps', p_choice%jsweeps, info)
select case (psb_toupper(p_choice%smther))
case ('GS','BWGS','FBGS','JACOBI')
case ('GS','BWGS','FBGS','JACOBI','L1-JACOBI')
! do nothing
case default
call prec%set('sub_ovr', p_choice%novr, info)
@ -760,7 +760,7 @@ program mld_d_pde2d
call prec%set('smoother_type', p_choice%smther2, info,pos='post')
call prec%set('smoother_sweeps', p_choice%jsweeps2, info,pos='post')
select case (psb_toupper(p_choice%smther2))
case ('GS','BWGS','FBGS','JACOBI')
case ('GS','BWGS','FBGS','JACOBI','L1-JACOBI')
! do nothing
case default
call prec%set('sub_ovr', p_choice%novr2, info,pos='post')

@ -738,7 +738,7 @@ program mld_d_pde3d
case ('NONE','NOPREC')
! Do nothing, keep defaults
case ('JACOBI','GS','FWGS','FBGS')
case ('JACOBI','L1-JACOBI','GS','FWGS','FBGS')
! 1-level sweeps from "outer_sweeps"
call prec%set('smoother_sweeps', p_choice%jsweeps, info)
@ -786,7 +786,7 @@ program mld_d_pde3d
call prec%set('smoother_sweeps', p_choice%jsweeps, info)
select case (psb_toupper(p_choice%smther))
case ('GS','BWGS','FBGS','JACOBI')
case ('GS','BWGS','FBGS','JACOBI','L1-JACOBI')
! do nothing
case default
call prec%set('sub_ovr', p_choice%novr, info)
@ -801,7 +801,7 @@ program mld_d_pde3d
call prec%set('smoother_type', p_choice%smther2, info,pos='post')
call prec%set('smoother_sweeps', p_choice%jsweeps2, info,pos='post')
select case (psb_toupper(p_choice%smther2))
case ('GS','BWGS','FBGS','JACOBI')
case ('GS','BWGS','FBGS','JACOBI','L1-JACOBI')
! do nothing
case default
call prec%set('sub_ovr', p_choice%novr2, info,pos='post')

@ -697,7 +697,7 @@ program mld_s_pde2d
case ('NONE','NOPREC')
! Do nothing, keep defaults
case ('JACOBI','GS','FWGS','FBGS')
case ('JACOBI','L1-JACOBI','GS','FWGS','FBGS')
! 1-level sweeps from "outer_sweeps"
call prec%set('smoother_sweeps', p_choice%jsweeps, info)
@ -745,7 +745,7 @@ program mld_s_pde2d
call prec%set('smoother_sweeps', p_choice%jsweeps, info)
select case (psb_toupper(p_choice%smther))
case ('GS','BWGS','FBGS','JACOBI')
case ('GS','BWGS','FBGS','JACOBI','L1-JACOBI')
! do nothing
case default
call prec%set('sub_ovr', p_choice%novr, info)
@ -760,7 +760,7 @@ program mld_s_pde2d
call prec%set('smoother_type', p_choice%smther2, info,pos='post')
call prec%set('smoother_sweeps', p_choice%jsweeps2, info,pos='post')
select case (psb_toupper(p_choice%smther2))
case ('GS','BWGS','FBGS','JACOBI')
case ('GS','BWGS','FBGS','JACOBI','L1-JACOBI')
! do nothing
case default
call prec%set('sub_ovr', p_choice%novr2, info,pos='post')

@ -738,7 +738,7 @@ program mld_s_pde3d
case ('NONE','NOPREC')
! Do nothing, keep defaults
case ('JACOBI','GS','FWGS','FBGS')
case ('JACOBI','L1-JACOBI','GS','FWGS','FBGS')
! 1-level sweeps from "outer_sweeps"
call prec%set('smoother_sweeps', p_choice%jsweeps, info)
@ -786,7 +786,7 @@ program mld_s_pde3d
call prec%set('smoother_sweeps', p_choice%jsweeps, info)
select case (psb_toupper(p_choice%smther))
case ('GS','BWGS','FBGS','JACOBI')
case ('GS','BWGS','FBGS','JACOBI','L1-JACOBI')
! do nothing
case default
call prec%set('sub_ovr', p_choice%novr, info)
@ -801,7 +801,7 @@ program mld_s_pde3d
call prec%set('smoother_type', p_choice%smther2, info,pos='post')
call prec%set('smoother_sweeps', p_choice%jsweeps2, info,pos='post')
select case (psb_toupper(p_choice%smther2))
case ('GS','BWGS','FBGS','JACOBI')
case ('GS','BWGS','FBGS','JACOBI','L1-JACOBI')
! do nothing
case default
call prec%set('sub_ovr', p_choice%novr2, info,pos='post')

Loading…
Cancel
Save