mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 22:55:12 +00:00
Propagated fixes from Daniela to S/C/Z
This commit is contained in:
@@ -53,7 +53,7 @@
|
||||
! sweeps (with ILU(0) on the blocks) as coarsest-level solver(Sec. 5.1, Fig. 3)
|
||||
!
|
||||
! - choice = 3, build a W-cycle preconditioner with 2 hybrid forward/backward
|
||||
! GS sweeps as pre/post-smoother, a distributed coarsest
|
||||
! GS sweeps as pre/post-smoother, a distributed coarsest
|
||||
! matrix, and MUMPS as coarsest-level solver (Sec. 5.1, Fig. 4)
|
||||
!
|
||||
! The matrix and the rhs are read from files (if an rhs is not available, the
|
||||
@@ -237,7 +237,6 @@ program mld_cexample_ml
|
||||
|
||||
call P%init('ML',info)
|
||||
call P%set('ML_CYCLE','WCYCLE',info)
|
||||
call P%set('SMOOTHER_TYPE','FBGS',info)
|
||||
call P%set('SMOOTHER_SWEEPS',2,info)
|
||||
call P%set('COARSE_SOLVE','MUMPS',info)
|
||||
call P%set('COARSE_MAT','DIST',info)
|
||||
|
||||
@@ -53,8 +53,8 @@
|
||||
! sweeps (with ILU(0) on the blocks) as coarsest-level solver(Sec. 5.1, Fig. 3)
|
||||
!
|
||||
! - choice = 3, build a W-cycle preconditioner with 2 hybrid forward/backward
|
||||
! GS sweeps as pre/post-smoother, a distributed coarsest matrix,
|
||||
! and MUMPS as coarsest-level solver (Sec. 5.1, Fig. 4)
|
||||
! GS sweeps as pre/post-smoother, a distributed coarsest
|
||||
! matrix, and MUMPS as coarsest-level solver (Sec. 5.1, Fig. 4)
|
||||
!
|
||||
! The matrix and the rhs are read from files (if an rhs is not available, the
|
||||
! unit rhs is set).
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
! sweeps (with ILU(0) on the blocks) as coarsest-level solver(Sec. 5.1, Fig. 3)
|
||||
!
|
||||
! - choice = 3, build a W-cycle preconditioner with 2 hybrid forward/backward
|
||||
! GS sweeps as pre/post-smoother, a distributed coarsest
|
||||
! GS sweeps as pre/post-smoother, a distributed coarsest
|
||||
! matrix, and MUMPS as coarsest-level solver (Sec. 5.1, Fig. 4)
|
||||
!
|
||||
! The matrix and the rhs are read from files (if an rhs is not available, the
|
||||
@@ -237,7 +237,6 @@ program mld_sexample_ml
|
||||
|
||||
call P%init('ML',info)
|
||||
call P%set('ML_CYCLE','WCYCLE',info)
|
||||
call P%set('SMOOTHER_TYPE','FBGS',info)
|
||||
call P%set('SMOOTHER_SWEEPS',2,info)
|
||||
call P%set('COARSE_SOLVE','MUMPS',info)
|
||||
call P%set('COARSE_MAT','DIST',info)
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
! sweeps (with ILU(0) on the blocks) as coarsest-level solver(Sec. 5.1, Fig. 3)
|
||||
!
|
||||
! - choice = 3, build a W-cycle preconditioner with 2 hybrid forward/backward
|
||||
! GS sweeps as pre/post-smoother, a distributed coarsest
|
||||
! GS sweeps as pre/post-smoother, a distributed coarsest
|
||||
! matrix, and MUMPS as coarsest-level solver (Sec. 5.1, Fig. 4)
|
||||
!
|
||||
! The matrix and the rhs are read from files (if an rhs is not available, the
|
||||
@@ -237,7 +237,6 @@ program mld_zexample_ml
|
||||
|
||||
call P%init('ML',info)
|
||||
call P%set('ML_CYCLE','WCYCLE',info)
|
||||
call P%set('SMOOTHER_TYPE','FBGS',info)
|
||||
call P%set('SMOOTHER_SWEEPS',2,info)
|
||||
call P%set('COARSE_SOLVE','MUMPS',info)
|
||||
call P%set('COARSE_MAT','DIST',info)
|
||||
|
||||
@@ -54,8 +54,8 @@
|
||||
! sweeps (with ILU(0) on the blocks) as coarsest-level solver(Sec. 5.1, Fig. 3)
|
||||
!
|
||||
! - choice = 3, build a W-cycle preconditioner with 2 hybrid forward/backward
|
||||
! GS sweeps as pre/post-smoother, a distributed coarsest
|
||||
! matrix, and MUMPS as coarsest-level solver (Sec. 5.1, Fig. 4)
|
||||
! GS sweeps as pre/post-smoother, a distributed coarsest matrix,
|
||||
! and MUMPS as coarsest-level solver (Sec. 5.1, Fig. 4)
|
||||
!
|
||||
! The PDE is a general second order equation in 3d
|
||||
!
|
||||
@@ -193,7 +193,6 @@ program mld_sexample_ml
|
||||
|
||||
call P%init('ML',info)
|
||||
call P%set('ML_CYCLE','WCYCLE',info)
|
||||
call P%set('SMOOTHER_TYPE','FBGS',info)
|
||||
call P%set('SMOOTHER_SWEEPS',2,info)
|
||||
call P%set('COARSE_SOLVE','MUMPS',info)
|
||||
call P%set('COARSE_MAT','DIST',info)
|
||||
|
||||
@@ -177,9 +177,6 @@ program mld_s_pde2d
|
||||
integer(psb_ipk_) :: thrvsz ! size of threshold vector
|
||||
real(psb_spk_) :: athres ! smoothed aggregation threshold
|
||||
real(psb_spk_) :: ascale ! smoothed aggregation scale factor for threshold
|
||||
character(len=16) :: aggr_omalg ! algorithm for estimating omega parameter
|
||||
character(len=16) :: aggr_eig ! Eigenvalue estimation procedure
|
||||
real(psb_spk_) :: omega_val ! Eigenvalue estimate value
|
||||
integer(psb_ipk_) :: csize ! minimum size of coarsest matrix
|
||||
|
||||
! AMG smoother or pre-smoother; also 1-lev preconditioner
|
||||
@@ -298,12 +295,6 @@ program mld_s_pde2d
|
||||
call prec%set('aggr_alg', p_choice%aggr_alg, info)
|
||||
call prec%set('aggr_ord', p_choice%aggr_ord, info)
|
||||
call prec%set('aggr_filter', p_choice%aggr_filter,info)
|
||||
call prec%set('aggr_omega_alg', p_choice%aggr_omalg, info)
|
||||
if (psb_toupper(p_choice%aggr_omalg) == 'EIG_EST') then
|
||||
call prec%set('aggr_eig', p_choice%aggr_eig, info)
|
||||
else if (psb_toupper(p_choice%aggr_omalg) == 'USER_CHOICE') then
|
||||
call prec%set('aggr_omega_val', p_choice%omega_val, info)
|
||||
end if
|
||||
call prec%set('coarse_solve', p_choice%csolve, info)
|
||||
if (psb_toupper(p_choice%csolve) == 'BJAC') &
|
||||
& call prec%set('coarse_subsolve', p_choice%csbsolve, info)
|
||||
@@ -525,9 +516,6 @@ contains
|
||||
read(psb_inp_unit,*) ! dummy read to skip a record
|
||||
end if
|
||||
call read_data(prec%athres,psb_inp_unit) ! smoothed aggr thresh
|
||||
call read_data(prec%aggr_omalg,psb_inp_unit) ! alg for estimating omega
|
||||
call read_data(prec%aggr_eig,psb_inp_unit) ! alg for estimating omega
|
||||
call read_data(prec%omega_val,psb_inp_unit) ! alg for estimating omega
|
||||
! AMG smoother (or pre-smoother) / 1-lev preconditioner
|
||||
call read_data(prec%smther,psb_inp_unit) ! smoother type
|
||||
call read_data(prec%jsweeps,psb_inp_unit) ! (pre-)smoother / 1-lev prec sweeps
|
||||
@@ -606,9 +594,6 @@ contains
|
||||
end if
|
||||
call psb_bcast(ictxt,prec%athres)
|
||||
call psb_bcast(ictxt,prec%ascale)
|
||||
call psb_bcast(ictxt,prec%aggr_omalg)
|
||||
call psb_bcast(ictxt,prec%aggr_eig)
|
||||
call psb_bcast(ictxt,prec%omega_val)
|
||||
|
||||
call psb_bcast(icontxt,prec%csize)
|
||||
call psb_bcast(icontxt,prec%cmat)
|
||||
|
||||
@@ -189,9 +189,6 @@ program mld_s_pde3d
|
||||
integer(psb_ipk_) :: thrvsz ! size of threshold vector
|
||||
real(psb_spk_) :: athres ! smoothed aggregation threshold
|
||||
real(psb_spk_) :: ascale ! smoothed aggregation scale factor for threshold
|
||||
character(len=16) :: aggr_omalg ! algorithm for estimating omega parameter
|
||||
character(len=16) :: aggr_eig ! Eigenvalue estimation procedure
|
||||
real(psb_spk_) :: omega_val ! Eigenvalue estimate value
|
||||
integer(psb_ipk_) :: csize ! minimum size of coarsest matrix
|
||||
|
||||
! AMG smoother or pre-smoother; also 1-lev preconditioner
|
||||
@@ -311,12 +308,6 @@ program mld_s_pde3d
|
||||
call prec%set('aggr_alg', p_choice%aggr_alg, info)
|
||||
call prec%set('aggr_ord', p_choice%aggr_ord, info)
|
||||
call prec%set('aggr_filter', p_choice%aggr_filter,info)
|
||||
call prec%set('aggr_omega_alg', p_choice%aggr_omalg, info)
|
||||
if (psb_toupper(p_choice%aggr_omalg) == 'EIG_EST') then
|
||||
call prec%set('aggr_eig', p_choice%aggr_eig, info)
|
||||
else if (psb_toupper(p_choice%aggr_omalg) == 'USER_CHOICE') then
|
||||
call prec%set('aggr_omega_val', p_choice%omega_val, info)
|
||||
end if
|
||||
call prec%set('coarse_solve', p_choice%csolve, info)
|
||||
if (psb_toupper(p_choice%csolve) == 'BJAC') &
|
||||
& call prec%set('coarse_subsolve', p_choice%csbsolve, info)
|
||||
@@ -538,9 +529,6 @@ contains
|
||||
read(psb_inp_unit,*) ! dummy read to skip a record
|
||||
end if
|
||||
call read_data(prec%athres,psb_inp_unit) ! smoothed aggr thresh
|
||||
call read_data(prec%aggr_omalg,psb_inp_unit) ! alg for estimating omega
|
||||
call read_data(prec%aggr_eig,psb_inp_unit) ! alg for estimating omega
|
||||
call read_data(prec%omega_val,psb_inp_unit) ! alg for estimating omega
|
||||
! AMG smoother (or pre-smoother) / 1-lev preconditioner
|
||||
call read_data(prec%smther,psb_inp_unit) ! smoother type
|
||||
call read_data(prec%jsweeps,psb_inp_unit) ! (pre-)smoother / 1-lev prec sweeps
|
||||
@@ -619,9 +607,6 @@ contains
|
||||
end if
|
||||
call psb_bcast(ictxt,prec%athres)
|
||||
call psb_bcast(ictxt,prec%ascale)
|
||||
call psb_bcast(ictxt,prec%aggr_omalg)
|
||||
call psb_bcast(ictxt,prec%aggr_eig)
|
||||
call psb_bcast(ictxt,prec%omega_val)
|
||||
|
||||
call psb_bcast(icontxt,prec%csize)
|
||||
call psb_bcast(icontxt,prec%cmat)
|
||||
|
||||
Reference in New Issue
Block a user