New version with aggregator object interface.

Take out SET with integer WHAT.
This commit is contained in:
Salvatore Filippone
2018-09-30 21:17:39 +01:00
parent 532ad262b0
commit 3951e449bb
106 changed files with 288 additions and 9079 deletions
+11 -6
View File
@@ -638,7 +638,9 @@ program mld_d_pde3d
integer(psb_ipk_) :: thrvsz ! size of threshold vector
real(psb_dpk_) :: athres ! smoothed aggregation threshold
integer(psb_ipk_) :: csize ! minimum size of coarsest matrix
logical :: use_bcm ! use BootCMatch
integer(psb_ipk_) :: bcm_alg ! Matching method: 0 PREIS, 1 MC64, 2 SPRAL (auction)
integer(psb_ipk_) :: bcm_sweeps ! Pairing sweeps
! AMG smoother or pre-smoother; also 1-lev preconditioner
character(len=16) :: smther ! (pre-)smoother type: BJAC, AS
integer(psb_ipk_) :: jsweeps ! (pre-)smoother / 1-lev prec. sweeps
@@ -671,7 +673,6 @@ program mld_d_pde3d
integer(psb_ipk_) :: cfill ! fill-in for incomplete LU factorization
real(psb_dpk_) :: cthres ! threshold for ILUT factorization
integer(psb_ipk_) :: cjswp ! sweeps for GS or JAC coarsest-lev subsolver
logical :: use_bcm ! Use BootCMatch aggregation
end type precdata
type(precdata) :: p_choice
@@ -819,8 +820,8 @@ program mld_d_pde3d
call prec%set('coarse_sweeps', p_choice%cjswp, info)
if (p_choice%use_bcm) then
call prec%set(bcmag,info)
call prec%set('BCM_MATCH_ALG',2, info)
call prec%set('BCM_SWEEPS',3, info)
call prec%set('BCM_MATCH_ALG',p_choice%bcm_alg, info)
call prec%set('BCM_SWEEPS',p_choice%bcm_sweeps, info)
!!$ if (p_choice%csize>0) call prec%set('BCM_MAX_CSIZE',p_choice%csize, info)
call prec%set('BCM_MAX_NLEVELS',p_choice%maxlevs, info)
!call prec%set('BCM_W_SIZE',desc_a%get_local_rows(), info,ilev=2)
@@ -1035,7 +1036,9 @@ contains
call read_data(prec%cfill,inp_unit) ! fill-in for incompl LU
call read_data(prec%cthres,inp_unit) ! Threshold for ILUT
call read_data(prec%cjswp,inp_unit) ! sweeps for GS/JAC subsolver
call read_data(prec%use_bcm,inp_unit) ! BootCMatch?
call read_data(prec%use_bcm,inp_unit)
call read_data(prec%bcm_alg,inp_unit)
call read_data(prec%bcm_sweeps,inp_unit)
if (inp_unit /= psb_inp_unit) then
close(inp_unit)
end if
@@ -1097,7 +1100,9 @@ contains
call psb_bcast(icontxt,prec%cfill)
call psb_bcast(icontxt,prec%cthres)
call psb_bcast(icontxt,prec%cjswp)
call psb_bcast(icontxt,prec%use_bcm)
call psb_bcast(ictxt,prec%use_bcm)
call psb_bcast(ictxt,prec%bcm_alg)
call psb_bcast(ictxt,prec%bcm_sweeps)
end subroutine get_parms
+9 -7
View File
@@ -1,17 +1,17 @@
%%%%%%%%%%% General arguments % Lines starting with % are ignored.
CSR ! Storage format CSR COO JAD
0040 ! IDIM; domain size. Linear system size is IDIM**2
CG ! Iterative method: BiCGSTAB BiCGSTABL BiCG CG CGS FCG GCR RGMRES
0100 ! IDIM; domain size. Linear system size is IDIM**2
FCG ! Iterative method: BiCGSTAB BiCGSTABL BiCG CG CGS FCG GCR RGMRES
2 ! ISTOPC
00500 ! ITMAX
1 ! ITRACE
30 ! IRST (restart for RGMRES and BiCGSTABL)
1.d-6 ! EPS
ML-VCYCLE-FBGS-ILU ! Longer descriptive name for preconditioner (up to 20 chars)
ML-KCYCLE-FBGS-ILU ! Longer descriptive name for preconditioner (up to 20 chars)
ML ! Preconditioner type: NONE JACOBI GS FBGS BJAC AS ML
%%%%%%%%%%% First smoother (for all levels but coarsest) %%%%%%%%%%%%%%%%
FBGS ! Smoother type JACOBI FBGS GS BWGS BJAC AS. For 1-level, repeats previous.
2 ! Number of sweeps for smoother
1 ! Number of sweeps for smoother
0 ! Number of overlap layers for AS preconditioner
HALO ! AS restriction operator: NONE HALO
NONE ! AS prolongation operator: NONE SUM AVG
@@ -28,11 +28,11 @@ ILU ! Subdomain solver for BJAC/AS: JACOBI GS BGS ILU IL
0 ! Fill level P for ILU(P) and ILU(T,P)
1.d-4 ! Threshold T for ILU(T,P)
%%%%%%%%%%% Multilevel parameters %%%%%%%%%%%%%%%%
VCYCLE ! Type of multilevel CYCLE: VCYCLE WCYCLE KCYCLE MULT ADD
KCYCLE ! Type of multilevel CYCLE: VCYCLE WCYCLE KCYCLE MULT ADD
1 ! Number of outer sweeps for ML
-3 ! Max Number of levels in a multilevel preconditioner; if <0, lib default
-3 ! Target coarse matrix size; if <0, lib default
SMOOTHED ! Type of aggregation: SMOOTHED UNSMOOTHED
UNSMOOTHED ! Type of aggregation: SMOOTHED UNSMOOTHED
DEC ! Parallel aggregation: DEC, SYMDEC
NATURAL ! Ordering of aggregation NATURAL DEGREE
NOFILTER ! Filtering of matrix: FILTER NOFILTER
@@ -47,4 +47,6 @@ DIST ! Coarsest-level matrix distribution: DIST REPL, DE
1 ! Coarsest-level fillin P for ILU(P) and ILU(T,P)
1.d-4 ! Coarsest-level threshold T for ILU(T,P)
1 ! Number of sweeps for JACOBI/GS/BJAC coarsest-level solver
T ! Use BootCMatch aggregator
T ! Use BootCMatch
2 ! Matching method: 0 PREIS, 1 MC64, 2 SPRAL (auction)
2 ! Pairing sweeps