Add options for KRM coarse solver in fileread

example.
cmake
Fabio Durastante 1 year ago
parent 75f768028c
commit c07dad642f

@ -116,7 +116,17 @@ program amg_cf_sample
integer(psb_ipk_) :: cfill ! fill-in for incomplete LU factorization
real(psb_spk_) :: cthres ! threshold for ILUT factorization
integer(psb_ipk_) :: cjswp ! sweeps for GS or JAC coarsest-lev subsolver
! settings for the Krylov method
character(len=16) :: krm_method ! Krylov method for coarsest level
character(len=16) :: krm_prec ! Preconditioner for coarsest level
character(len=16) :: krm_subsolve ! Subsolver for coarsest level
character(len=16) :: krm_global ! Is the solver global or local? TRUE or FALSE
real(psb_spk_) :: krm_eps ! Stopping tolerance
integer(psb_ipk_) :: krm_irst ! Restart for Krylov method
integer(psb_ipk_) :: krm_istop ! Stopping criterion
integer(psb_ipk_) :: krm_itmax ! Maximum number of iterations
integer(psb_ipk_) :: krm_itrace ! Trace of the lower Krylov iterations
integer(psb_ipk_) :: krm_fillin ! Fill-in for incomplete LU factorization
end type precdata
type(precdata) :: p_choice
@ -457,13 +467,26 @@ program amg_cf_sample
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)
call prec%set('coarse_mat', p_choice%cmat, info)
call prec%set('coarse_fillin', p_choice%cfill, info)
call prec%set('coarse_iluthrs', p_choice%cthres, info)
call prec%set('coarse_sweeps', p_choice%cjswp, info)
! Set for the case of a KRM solver
if (psb_toupper(p_choice%csolve) == 'KRM') then
call prec%set('krm_method', p_choice%krm_method, info)
call prec%set('krm_kprec', p_choice%krm_prec, info)
call prec%set('krm_sub_solve', p_choice%krm_subsolve, info)
call prec%set('krm_global', p_choice%krm_global, info)
call prec%set('krm_eps', p_choice%krm_eps, info)
call prec%set('krm_irst', p_choice%krm_irst, info)
call prec%set('krm_istopc', p_choice%krm_istop, info)
call prec%set('krm_itmax', p_choice%krm_itmax, info)
call prec%set('krm_itrace', p_choice%krm_itrace, info)
call prec%set('krm_fillin', p_choice%krm_fillin, info)
else
if (psb_toupper(p_choice%csolve) == 'BJAC') &
& call prec%set('coarse_subsolve', p_choice%csbsolve, info)
call prec%set('coarse_fillin', p_choice%cfill, info)
call prec%set('coarse_iluthrs', p_choice%cthres, info)
call prec%set('coarse_sweeps', p_choice%cjswp, info)
end if
end select
! build the preconditioner
@ -701,6 +724,17 @@ 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
! Krylov method for coarsest level
call read_data(prec%krm_method,inp_unit) ! Krylov method for coarsest level
call read_data(prec%krm_prec,inp_unit) ! Preconditioner for coarsest level
call read_data(prec%krm_subsolve,inp_unit) ! Subsolver for coarsest level
call read_data(prec%krm_global,inp_unit) ! Is the solver global or local? TRUE or FALSE
call read_data(prec%krm_eps,inp_unit) ! Stopping tolerance
call read_data(prec%krm_irst,inp_unit) ! Restart for Krylov method
call read_data(prec%krm_istop,inp_unit) ! Stopping criterion
call read_data(prec%krm_itmax,inp_unit) ! Maximum number of iterations
call read_data(prec%krm_itrace,inp_unit) ! Trace of the lower Krylov iterations
call read_data(prec%krm_fillin,inp_unit) ! Fill-in for incomplete LU factorization
if (inp_unit /= psb_inp_unit) then
close(inp_unit)
end if
@ -767,6 +801,17 @@ contains
call psb_bcast(ctxt,prec%cfill)
call psb_bcast(ctxt,prec%cthres)
call psb_bcast(ctxt,prec%cjswp)
! Krylov method for coarsest level (broadcast)
call psb_bcast(ctxt,prec%krm_method)
call psb_bcast(ctxt,prec%krm_prec)
call psb_bcast(ctxt,prec%krm_subsolve)
call psb_bcast(ctxt,prec%krm_global)
call psb_bcast(ctxt,prec%krm_eps)
call psb_bcast(ctxt,prec%krm_irst)
call psb_bcast(ctxt,prec%krm_istop)
call psb_bcast(ctxt,prec%krm_itmax)
call psb_bcast(ctxt,prec%krm_itrace)
call psb_bcast(ctxt,prec%krm_fillin)
end subroutine get_parms

@ -116,7 +116,17 @@ program amg_df_sample
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
! settings for the Krylov method
character(len=16) :: krm_method ! Krylov method for coarsest level
character(len=16) :: krm_prec ! Preconditioner for coarsest level
character(len=16) :: krm_subsolve ! Subsolver for coarsest level
character(len=16) :: krm_global ! Is the solver global or local? TRUE or FALSE
real(psb_dpk_) :: krm_eps ! Stopping tolerance
integer(psb_ipk_) :: krm_irst ! Restart for Krylov method
integer(psb_ipk_) :: krm_istop ! Stopping criterion
integer(psb_ipk_) :: krm_itmax ! Maximum number of iterations
integer(psb_ipk_) :: krm_itrace ! Trace of the lower Krylov iterations
integer(psb_ipk_) :: krm_fillin ! Fill-in for incomplete LU factorization
end type precdata
type(precdata) :: p_choice
@ -457,13 +467,26 @@ program amg_df_sample
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)
call prec%set('coarse_mat', p_choice%cmat, info)
call prec%set('coarse_fillin', p_choice%cfill, info)
call prec%set('coarse_iluthrs', p_choice%cthres, info)
call prec%set('coarse_sweeps', p_choice%cjswp, info)
! Set for the case of a KRM solver
if (psb_toupper(p_choice%csolve) == 'KRM') then
call prec%set('krm_method', p_choice%krm_method, info)
call prec%set('krm_kprec', p_choice%krm_prec, info)
call prec%set('krm_sub_solve', p_choice%krm_subsolve, info)
call prec%set('krm_global', p_choice%krm_global, info)
call prec%set('krm_eps', p_choice%krm_eps, info)
call prec%set('krm_irst', p_choice%krm_irst, info)
call prec%set('krm_istopc', p_choice%krm_istop, info)
call prec%set('krm_itmax', p_choice%krm_itmax, info)
call prec%set('krm_itrace', p_choice%krm_itrace, info)
call prec%set('krm_fillin', p_choice%krm_fillin, info)
else
if (psb_toupper(p_choice%csolve) == 'BJAC') &
& call prec%set('coarse_subsolve', p_choice%csbsolve, info)
call prec%set('coarse_fillin', p_choice%cfill, info)
call prec%set('coarse_iluthrs', p_choice%cthres, info)
call prec%set('coarse_sweeps', p_choice%cjswp, info)
end if
end select
! build the preconditioner
@ -701,6 +724,17 @@ 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
! Krylov method for coarsest level
call read_data(prec%krm_method,inp_unit) ! Krylov method for coarsest level
call read_data(prec%krm_prec,inp_unit) ! Preconditioner for coarsest level
call read_data(prec%krm_subsolve,inp_unit) ! Subsolver for coarsest level
call read_data(prec%krm_global,inp_unit) ! Is the solver global or local? TRUE or FALSE
call read_data(prec%krm_eps,inp_unit) ! Stopping tolerance
call read_data(prec%krm_irst,inp_unit) ! Restart for Krylov method
call read_data(prec%krm_istop,inp_unit) ! Stopping criterion
call read_data(prec%krm_itmax,inp_unit) ! Maximum number of iterations
call read_data(prec%krm_itrace,inp_unit) ! Trace of the lower Krylov iterations
call read_data(prec%krm_fillin,inp_unit) ! Fill-in for incomplete LU factorization
if (inp_unit /= psb_inp_unit) then
close(inp_unit)
end if
@ -767,6 +801,17 @@ contains
call psb_bcast(ctxt,prec%cfill)
call psb_bcast(ctxt,prec%cthres)
call psb_bcast(ctxt,prec%cjswp)
! Krylov method for coarsest level (broadcast)
call psb_bcast(ctxt,prec%krm_method)
call psb_bcast(ctxt,prec%krm_prec)
call psb_bcast(ctxt,prec%krm_subsolve)
call psb_bcast(ctxt,prec%krm_global)
call psb_bcast(ctxt,prec%krm_eps)
call psb_bcast(ctxt,prec%krm_irst)
call psb_bcast(ctxt,prec%krm_istop)
call psb_bcast(ctxt,prec%krm_itmax)
call psb_bcast(ctxt,prec%krm_itrace)
call psb_bcast(ctxt,prec%krm_fillin)
end subroutine get_parms

@ -116,7 +116,17 @@ program amg_sf_sample
integer(psb_ipk_) :: cfill ! fill-in for incomplete LU factorization
real(psb_spk_) :: cthres ! threshold for ILUT factorization
integer(psb_ipk_) :: cjswp ! sweeps for GS or JAC coarsest-lev subsolver
! settings for the Krylov method
character(len=16) :: krm_method ! Krylov method for coarsest level
character(len=16) :: krm_prec ! Preconditioner for coarsest level
character(len=16) :: krm_subsolve ! Subsolver for coarsest level
character(len=16) :: krm_global ! Is the solver global or local? TRUE or FALSE
real(psb_spk_) :: krm_eps ! Stopping tolerance
integer(psb_ipk_) :: krm_irst ! Restart for Krylov method
integer(psb_ipk_) :: krm_istop ! Stopping criterion
integer(psb_ipk_) :: krm_itmax ! Maximum number of iterations
integer(psb_ipk_) :: krm_itrace ! Trace of the lower Krylov iterations
integer(psb_ipk_) :: krm_fillin ! Fill-in for incomplete LU factorization
end type precdata
type(precdata) :: p_choice
@ -457,13 +467,26 @@ program amg_sf_sample
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)
call prec%set('coarse_mat', p_choice%cmat, info)
call prec%set('coarse_fillin', p_choice%cfill, info)
call prec%set('coarse_iluthrs', p_choice%cthres, info)
call prec%set('coarse_sweeps', p_choice%cjswp, info)
! Set for the case of a KRM solver
if (psb_toupper(p_choice%csolve) == 'KRM') then
call prec%set('krm_method', p_choice%krm_method, info)
call prec%set('krm_kprec', p_choice%krm_prec, info)
call prec%set('krm_sub_solve', p_choice%krm_subsolve, info)
call prec%set('krm_global', p_choice%krm_global, info)
call prec%set('krm_eps', p_choice%krm_eps, info)
call prec%set('krm_irst', p_choice%krm_irst, info)
call prec%set('krm_istopc', p_choice%krm_istop, info)
call prec%set('krm_itmax', p_choice%krm_itmax, info)
call prec%set('krm_itrace', p_choice%krm_itrace, info)
call prec%set('krm_fillin', p_choice%krm_fillin, info)
else
if (psb_toupper(p_choice%csolve) == 'BJAC') &
& call prec%set('coarse_subsolve', p_choice%csbsolve, info)
call prec%set('coarse_fillin', p_choice%cfill, info)
call prec%set('coarse_iluthrs', p_choice%cthres, info)
call prec%set('coarse_sweeps', p_choice%cjswp, info)
end if
end select
! build the preconditioner
@ -701,6 +724,17 @@ 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
! Krylov method for coarsest level
call read_data(prec%krm_method,inp_unit) ! Krylov method for coarsest level
call read_data(prec%krm_prec,inp_unit) ! Preconditioner for coarsest level
call read_data(prec%krm_subsolve,inp_unit) ! Subsolver for coarsest level
call read_data(prec%krm_global,inp_unit) ! Is the solver global or local? TRUE or FALSE
call read_data(prec%krm_eps,inp_unit) ! Stopping tolerance
call read_data(prec%krm_irst,inp_unit) ! Restart for Krylov method
call read_data(prec%krm_istop,inp_unit) ! Stopping criterion
call read_data(prec%krm_itmax,inp_unit) ! Maximum number of iterations
call read_data(prec%krm_itrace,inp_unit) ! Trace of the lower Krylov iterations
call read_data(prec%krm_fillin,inp_unit) ! Fill-in for incomplete LU factorization
if (inp_unit /= psb_inp_unit) then
close(inp_unit)
end if
@ -767,6 +801,17 @@ contains
call psb_bcast(ctxt,prec%cfill)
call psb_bcast(ctxt,prec%cthres)
call psb_bcast(ctxt,prec%cjswp)
! Krylov method for coarsest level (broadcast)
call psb_bcast(ctxt,prec%krm_method)
call psb_bcast(ctxt,prec%krm_prec)
call psb_bcast(ctxt,prec%krm_subsolve)
call psb_bcast(ctxt,prec%krm_global)
call psb_bcast(ctxt,prec%krm_eps)
call psb_bcast(ctxt,prec%krm_irst)
call psb_bcast(ctxt,prec%krm_istop)
call psb_bcast(ctxt,prec%krm_itmax)
call psb_bcast(ctxt,prec%krm_itrace)
call psb_bcast(ctxt,prec%krm_fillin)
end subroutine get_parms

@ -116,7 +116,17 @@ program amg_zf_sample
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
! settings for the Krylov method
character(len=16) :: krm_method ! Krylov method for coarsest level
character(len=16) :: krm_prec ! Preconditioner for coarsest level
character(len=16) :: krm_subsolve ! Subsolver for coarsest level
character(len=16) :: krm_global ! Is the solver global or local? TRUE or FALSE
real(psb_dpk_) :: krm_eps ! Stopping tolerance
integer(psb_ipk_) :: krm_irst ! Restart for Krylov method
integer(psb_ipk_) :: krm_istop ! Stopping criterion
integer(psb_ipk_) :: krm_itmax ! Maximum number of iterations
integer(psb_ipk_) :: krm_itrace ! Trace of the lower Krylov iterations
integer(psb_ipk_) :: krm_fillin ! Fill-in for incomplete LU factorization
end type precdata
type(precdata) :: p_choice
@ -457,13 +467,26 @@ program amg_zf_sample
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)
call prec%set('coarse_mat', p_choice%cmat, info)
call prec%set('coarse_fillin', p_choice%cfill, info)
call prec%set('coarse_iluthrs', p_choice%cthres, info)
call prec%set('coarse_sweeps', p_choice%cjswp, info)
! Set for the case of a KRM solver
if (psb_toupper(p_choice%csolve) == 'KRM') then
call prec%set('krm_method', p_choice%krm_method, info)
call prec%set('krm_kprec', p_choice%krm_prec, info)
call prec%set('krm_sub_solve', p_choice%krm_subsolve, info)
call prec%set('krm_global', p_choice%krm_global, info)
call prec%set('krm_eps', p_choice%krm_eps, info)
call prec%set('krm_irst', p_choice%krm_irst, info)
call prec%set('krm_istopc', p_choice%krm_istop, info)
call prec%set('krm_itmax', p_choice%krm_itmax, info)
call prec%set('krm_itrace', p_choice%krm_itrace, info)
call prec%set('krm_fillin', p_choice%krm_fillin, info)
else
if (psb_toupper(p_choice%csolve) == 'BJAC') &
& call prec%set('coarse_subsolve', p_choice%csbsolve, info)
call prec%set('coarse_fillin', p_choice%cfill, info)
call prec%set('coarse_iluthrs', p_choice%cthres, info)
call prec%set('coarse_sweeps', p_choice%cjswp, info)
end if
end select
! build the preconditioner
@ -701,6 +724,17 @@ 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
! Krylov method for coarsest level
call read_data(prec%krm_method,inp_unit) ! Krylov method for coarsest level
call read_data(prec%krm_prec,inp_unit) ! Preconditioner for coarsest level
call read_data(prec%krm_subsolve,inp_unit) ! Subsolver for coarsest level
call read_data(prec%krm_global,inp_unit) ! Is the solver global or local? TRUE or FALSE
call read_data(prec%krm_eps,inp_unit) ! Stopping tolerance
call read_data(prec%krm_irst,inp_unit) ! Restart for Krylov method
call read_data(prec%krm_istop,inp_unit) ! Stopping criterion
call read_data(prec%krm_itmax,inp_unit) ! Maximum number of iterations
call read_data(prec%krm_itrace,inp_unit) ! Trace of the lower Krylov iterations
call read_data(prec%krm_fillin,inp_unit) ! Fill-in for incomplete LU factorization
if (inp_unit /= psb_inp_unit) then
close(inp_unit)
end if
@ -767,6 +801,17 @@ contains
call psb_bcast(ctxt,prec%cfill)
call psb_bcast(ctxt,prec%cthres)
call psb_bcast(ctxt,prec%cjswp)
! Krylov method for coarsest level (broadcast)
call psb_bcast(ctxt,prec%krm_method)
call psb_bcast(ctxt,prec%krm_prec)
call psb_bcast(ctxt,prec%krm_subsolve)
call psb_bcast(ctxt,prec%krm_global)
call psb_bcast(ctxt,prec%krm_eps)
call psb_bcast(ctxt,prec%krm_irst)
call psb_bcast(ctxt,prec%krm_istop)
call psb_bcast(ctxt,prec%krm_itmax)
call psb_bcast(ctxt,prec%krm_itrace)
call psb_bcast(ctxt,prec%krm_fillin)
end subroutine get_parms

@ -14,15 +14,17 @@ CG ! Iterative method: BiCGSTAB BiCGSTABL BiCG CG CGS F
1.d-6 ! EPS
%%%%%%%%%%% Main preconditioner choices %%%%%%%%%%%%%%%%
ML-VCYCLE-FBGS-R-UMF ! Longer descriptive name for preconditioner (up to 20 chars)
ML ! Preconditioner type: NONE JACOBI GS FBGS BJAC AS ML
%%%%%%%%%%% Main preconditioner choices %%%%%%%%%%%%%%%%
AS-ILU-8AVG-D ! Longer descriptive name for preconditioner (up to 20 chars)
AS ! 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.
AS ! Smoother type JACOBI FBGS GS BWGS BJAC AS. For 1-level, repeats previous.
1 ! Number of sweeps for smoother
0 ! Number of overlap layers for AS preconditioner
8 ! Number of overlap layers for AS preconditioner
HALO ! AS restriction operator: NONE HALO
NONE ! AS prolongation operator: NONE SUM AVG
SUM ! AS prolongation operator: NONE SUM AVG
ILU ! Subdomain solver for BJAC/AS: JACOBI GS BGS ILU ILUT MILU MUMPS SLU UMF
0 ! Fill level P for ILU(P) and ILU(T,P)
2 ! Fill level P for ILU(P) and ILU(T,P)
1.d-4 ! Threshold T for ILU(T,P)
%%%%%%%%%%% Second smoother, always ignored for non-ML %%%%%%%%%%%%%%%%
NONE ! Second (post) smoother, ignored if NONE
@ -53,3 +55,14 @@ REPL ! Coarsest-level matrix distribution: DIST REPL
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
%%%%%%%%%% Krylov coarse solver options %%%%%%%%%%
GMRES ! Krylov method for coarsest level
BJAC ! Preconditioner for coarsest level
ILU ! Subsolver for coarsest level
FALSE ! Is the solver global (TRUE) or local (FALSE)?
1.d-4 ! Tolerance
-1 ! Restart for Krylov method
2 ! Stopping criterion
30 ! Maximum number of iterations
-1 ! Trace of the lower Krylov iterations
0 ! Fill-in for incomplete LU factorization

@ -53,3 +53,14 @@ REPL ! Coarsest-level matrix distribution: DIST REPL
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
%%%%%%%%%% Krylov coarse solver options %%%%%%%%%%
GMRES ! Krylov method for coarsest level
BJAC ! Preconditioner for coarsest level
ILU ! Subsolver for coarsest level
FALSE ! Is the solver global (TRUE) or local (FALSE)?
1.d-4 ! Tolerance
-1 ! Restart for Krylov method
2 ! Stopping criterion
30 ! Maximum number of iterations
-1 ! Trace of the lower Krylov iterations
0 ! Fill-in for incomplete LU factorization

@ -53,3 +53,14 @@ REPL ! Coarsest-level matrix distribution: DIST REPL
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
%%%%%%%%%% Krylov coarse solver options %%%%%%%%%%
GMRES ! Krylov method for coarsest level
BJAC ! Preconditioner for coarsest level
ILU ! Subsolver for coarsest level
FALSE ! Is the solver global (TRUE) or local (FALSE)?
1.d-4 ! Tolerance
-1 ! Restart for Krylov method
2 ! Stopping criterion
30 ! Maximum number of iterations
-1 ! Trace of the lower Krylov iterations
0 ! Fill-in for incomplete LU factorization

@ -14,15 +14,15 @@ CG ! Iterative method: BiCGSTAB BiCGSTABL BiCG CG CGS F
1.d-6 ! EPS
%%%%%%%%%%% Main preconditioner choices %%%%%%%%%%%%%%%%
ML-VCYCLE-FBGS-R-UMF ! Longer descriptive name for preconditioner (up to 20 chars)
ML ! Preconditioner type: NONE JACOBI GS FBGS BJAC AS ML
AS ! 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.
AS ! Smoother type JACOBI FBGS GS BWGS BJAC AS. For 1-level, repeats previous.
1 ! Number of sweeps for smoother
0 ! Number of overlap layers for AS preconditioner
8 ! Number of overlap layers for AS preconditioner
HALO ! AS restriction operator: NONE HALO
NONE ! AS prolongation operator: NONE SUM AVG
SUM ! AS prolongation operator: NONE SUM AVG
ILU ! Subdomain solver for BJAC/AS: JACOBI GS BGS ILU ILUT MILU MUMPS SLU UMF
0 ! Fill level P for ILU(P) and ILU(T,P)
2 ! Fill level P for ILU(P) and ILU(T,P)
1.d-4 ! Threshold T for ILU(T,P)
%%%%%%%%%%% Second smoother, always ignored for non-ML %%%%%%%%%%%%%%%%
NONE ! Second (post) smoother, ignored if NONE
@ -53,3 +53,14 @@ REPL ! Coarsest-level matrix distribution: DIST REPL,
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
%%%%%%%%%% Krylov coarse solver options %%%%%%%%%%
GMRES ! Krylov method for coarsest level
BJAC ! Preconditioner for coarsest level
ILU ! Subsolver for coarsest level
FALSE ! Is the solver global (TRUE) or local (FALSE)?
1.d-4 ! Tolerance
-1 ! Restart for Krylov method
2 ! Stopping criterion
30 ! Maximum number of iterations
-1 ! Trace of the lower Krylov iterations
0 ! Fill-in for incomplete LU factorization

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save