mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-25 07:11:51 +00:00
New L1-Jacobi smoother.
This commit is contained in:
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user