Fixed reading inputs Added DEFLT choice.

stopcriterion
Salvatore Filippone 7 years ago
parent ca997b8e66
commit 304e125801

@ -404,15 +404,6 @@ program mld_cf_sample
call prec%set('aggr_ord', p_choice%aggr_ord, info)
call prec%set('aggr_filter', p_choice%aggr_filter,info)
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)
call prec%set('smoother_type', p_choice%smther, info)
call prec%set('smoother_sweeps', p_choice%jsweeps, info)
call prec%set('sub_ovr', p_choice%novr, info)
@ -432,6 +423,17 @@ program mld_cf_sample
call prec%set('sub_fillin', p_choice%fill2, info,pos='post')
call prec%set('sub_iluthrs', p_choice%thr2, info,pos='post')
end if
if (psb_toupper(p_choice%csolve) /= 'DEFLT') then
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)
end if
end select
! build the preconditioner
@ -650,8 +652,8 @@ contains
call read_data(prec%thr2,psb_inp_unit) ! threshold for ILUT
! coasest-level solver
call read_data(prec%csolve,psb_inp_unit) ! coarsest-lev solver
call read_data(prec%cmat,psb_inp_unit) ! coarsest mat layout
call read_data(prec%csbsolve,psb_inp_unit) ! coarsest-lev subsolver
call read_data(prec%cmat,psb_inp_unit) ! coarsest mat layout
call read_data(prec%cfill,psb_inp_unit) ! fill-in for incompl LU
call read_data(prec%cthres,psb_inp_unit) ! Threshold for ILUT
call read_data(prec%cjswp,psb_inp_unit) ! sweeps for GS/JAC subsolver

@ -404,15 +404,6 @@ program mld_df_sample
call prec%set('aggr_ord', p_choice%aggr_ord, info)
call prec%set('aggr_filter', p_choice%aggr_filter,info)
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)
call prec%set('smoother_type', p_choice%smther, info)
call prec%set('smoother_sweeps', p_choice%jsweeps, info)
call prec%set('sub_ovr', p_choice%novr, info)
@ -432,6 +423,17 @@ program mld_df_sample
call prec%set('sub_fillin', p_choice%fill2, info,pos='post')
call prec%set('sub_iluthrs', p_choice%thr2, info,pos='post')
end if
if (psb_toupper(p_choice%csolve) /= 'DEFLT') then
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)
end if
end select
! build the preconditioner
@ -650,8 +652,8 @@ contains
call read_data(prec%thr2,psb_inp_unit) ! threshold for ILUT
! coasest-level solver
call read_data(prec%csolve,psb_inp_unit) ! coarsest-lev solver
call read_data(prec%cmat,psb_inp_unit) ! coarsest mat layout
call read_data(prec%csbsolve,psb_inp_unit) ! coarsest-lev subsolver
call read_data(prec%cmat,psb_inp_unit) ! coarsest mat layout
call read_data(prec%cfill,psb_inp_unit) ! fill-in for incompl LU
call read_data(prec%cthres,psb_inp_unit) ! Threshold for ILUT
call read_data(prec%cjswp,psb_inp_unit) ! sweeps for GS/JAC subsolver

@ -404,15 +404,6 @@ program mld_sf_sample
call prec%set('aggr_ord', p_choice%aggr_ord, info)
call prec%set('aggr_filter', p_choice%aggr_filter,info)
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)
call prec%set('smoother_type', p_choice%smther, info)
call prec%set('smoother_sweeps', p_choice%jsweeps, info)
call prec%set('sub_ovr', p_choice%novr, info)
@ -432,6 +423,17 @@ program mld_sf_sample
call prec%set('sub_fillin', p_choice%fill2, info,pos='post')
call prec%set('sub_iluthrs', p_choice%thr2, info,pos='post')
end if
if (psb_toupper(p_choice%csolve) /= 'DEFLT') then
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)
end if
end select
! build the preconditioner
@ -650,8 +652,8 @@ contains
call read_data(prec%thr2,psb_inp_unit) ! threshold for ILUT
! coasest-level solver
call read_data(prec%csolve,psb_inp_unit) ! coarsest-lev solver
call read_data(prec%cmat,psb_inp_unit) ! coarsest mat layout
call read_data(prec%csbsolve,psb_inp_unit) ! coarsest-lev subsolver
call read_data(prec%cmat,psb_inp_unit) ! coarsest mat layout
call read_data(prec%cfill,psb_inp_unit) ! fill-in for incompl LU
call read_data(prec%cthres,psb_inp_unit) ! Threshold for ILUT
call read_data(prec%cjswp,psb_inp_unit) ! sweeps for GS/JAC subsolver

@ -404,15 +404,6 @@ program mld_zf_sample
call prec%set('aggr_ord', p_choice%aggr_ord, info)
call prec%set('aggr_filter', p_choice%aggr_filter,info)
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)
call prec%set('smoother_type', p_choice%smther, info)
call prec%set('smoother_sweeps', p_choice%jsweeps, info)
call prec%set('sub_ovr', p_choice%novr, info)
@ -432,6 +423,17 @@ program mld_zf_sample
call prec%set('sub_fillin', p_choice%fill2, info,pos='post')
call prec%set('sub_iluthrs', p_choice%thr2, info,pos='post')
end if
if (psb_toupper(p_choice%csolve) /= 'DEFLT') then
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)
end if
end select
! build the preconditioner
@ -650,8 +652,8 @@ contains
call read_data(prec%thr2,psb_inp_unit) ! threshold for ILUT
! coasest-level solver
call read_data(prec%csolve,psb_inp_unit) ! coarsest-lev solver
call read_data(prec%cmat,psb_inp_unit) ! coarsest mat layout
call read_data(prec%csbsolve,psb_inp_unit) ! coarsest-lev subsolver
call read_data(prec%cmat,psb_inp_unit) ! coarsest mat layout
call read_data(prec%cfill,psb_inp_unit) ! fill-in for incompl LU
call read_data(prec%cthres,psb_inp_unit) ! Threshold for ILUT
call read_data(prec%cjswp,psb_inp_unit) ! sweeps for GS/JAC subsolver

@ -41,9 +41,9 @@ NONE ! AS prolongation operator: NONE SUM AVG
JACOBI ! Subdomain solver: JACOBI BS BGS ILU ILUT MILU MUMPS SLU UMF
0 ! Fill level P for ILU(P) and ILU(T,P)
1.d-4 ! Threshold T for ILU(T,P)
UMF ! Coarsest-level solver: MUMPS UMF SLU SLUDIST JACOBI GS BJAC
REPL ! Coarsest-level matrix distribution: DIST REPL
DEFLT ! Coarsest-level solver: MUMPS UMF SLU SLUDIST JACOBI GS BJAC
UMF ! Coarsest-level subsolver: ILU UMF SLU MUMPS SLUDIST
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 Jacobi sweeps for JACOBI/GS/BJAC coarsest-level solver

@ -41,9 +41,9 @@ NONE ! AS prolongation operator: NONE SUM AVG
JACOBI ! Subdomain solver: JACOBI BS BGS ILU ILUT MILU MUMPS SLU UMF
0 ! Fill level P for ILU(P) and ILU(T,P)
1.d-4 ! Threshold T for ILU(T,P)
BJAC ! Coarsest-level solver: MUMPS UMF SLU SLUDIST JACOBI GS BJAC
DIST ! Coarsest-level matrix distribution: DIST REPL
DEFLT ! Coarsest-level solver: MUMPS UMF SLU SLUDIST JACOBI GS BJAC
ILU ! Coarsest-level subsolver: ILU UMF SLU MUMPS SLUDIST
DIST ! 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 Jacobi sweeps for JACOBI/GS/BJAC coarsest-level solver

@ -41,9 +41,9 @@ NONE ! AS prolongation operator: NONE SUM AVG
JACOBI ! Subdomain solver: JACOBI BS BGS ILU ILUT MILU MUMPS SLU UMF
0 ! Fill level P for ILU(P) and ILU(T,P)
1.d-4 ! Threshold T for ILU(T,P)
UMF ! Coarsest-level solver: MUMPS UMF SLU SLUDIST JACOBI GS BJAC
REPL ! Coarsest-level matrix distribution: DIST REPL
DEFLT ! Coarsest-level solver: MUMPS UMF SLU SLUDIST JACOBI GS BJAC
UMF ! Coarsest-level subsolver: ILU UMF SLU MUMPS SLUDIST
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 Jacobi sweeps for JACOBI/GS/BJAC coarsest-level solver

@ -41,9 +41,9 @@ NONE ! AS prolongation operator: NONE SUM AVG
JACOBI ! Subdomain solver: JACOBI BS BGS ILU ILUT MILU MUMPS SLU UMF
0 ! Fill level P for ILU(P) and ILU(T,P)
1.d-4 ! Threshold T for ILU(T,P)
UMF ! Coarsest-level solver: MUMPS UMF SLU SLUDIST JACOBI GS BJAC
REPL ! Coarsest-level matrix distribution: DIST REPL
DEFLT ! Coarsest-level solver: MUMPS UMF SLU SLUDIST JACOBI GS BJAC
UMF ! Coarsest-level subsolver: ILU UMF SLU MUMPS SLUDIST
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 Jacobi sweeps for JACOBI/GS/BJAC coarsest-level solver

@ -310,14 +310,6 @@ program mld_d_pde2d
call prec%set('aggr_ord', p_choice%aggr_ord, info)
call prec%set('aggr_filter', p_choice%aggr_filter,info)
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)
call prec%set('smoother_type', p_choice%smther, info)
call prec%set('smoother_sweeps', p_choice%jsweeps, info)
@ -338,6 +330,17 @@ program mld_d_pde2d
call prec%set('sub_fillin', p_choice%fill2, info,pos='post')
call prec%set('sub_iluthrs', p_choice%thr2, info,pos='post')
end if
if (psb_toupper(p_choice%csolve) /= 'DEFLT') then
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)
end if
end select
! build the preconditioner
@ -525,8 +528,8 @@ contains
call read_data(prec%thr2,psb_inp_unit) ! threshold for ILUT
! coasest-level solver
call read_data(prec%csolve,psb_inp_unit) ! coarsest-lev solver
call read_data(prec%cmat,psb_inp_unit) ! coarsest mat layout
call read_data(prec%csbsolve,psb_inp_unit) ! coarsest-lev subsolver
call read_data(prec%cmat,psb_inp_unit) ! coarsest mat layout
call read_data(prec%cfill,psb_inp_unit) ! fill-in for incompl LU
call read_data(prec%cthres,psb_inp_unit) ! Threshold for ILUT
call read_data(prec%cjswp,psb_inp_unit) ! sweeps for GS/JAC subsolver

@ -323,14 +323,6 @@ program mld_d_pde3d
call prec%set('aggr_ord', p_choice%aggr_ord, info)
call prec%set('aggr_filter', p_choice%aggr_filter,info)
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)
call prec%set('smoother_type', p_choice%smther, info)
call prec%set('smoother_sweeps', p_choice%jsweeps, info)
@ -351,6 +343,17 @@ program mld_d_pde3d
call prec%set('sub_fillin', p_choice%fill2, info,pos='post')
call prec%set('sub_iluthrs', p_choice%thr2, info,pos='post')
end if
if (psb_toupper(p_choice%csolve) /= 'DEFLT') then
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)
end if
end select
! build the preconditioner
@ -538,8 +541,8 @@ contains
call read_data(prec%thr2,psb_inp_unit) ! threshold for ILUT
! coasest-level solver
call read_data(prec%csolve,psb_inp_unit) ! coarsest-lev solver
call read_data(prec%cmat,psb_inp_unit) ! coarsest mat layout
call read_data(prec%csbsolve,psb_inp_unit) ! coarsest-lev subsolver
call read_data(prec%cmat,psb_inp_unit) ! coarsest mat layout
call read_data(prec%cfill,psb_inp_unit) ! fill-in for incompl LU
call read_data(prec%cthres,psb_inp_unit) ! Threshold for ILUT
call read_data(prec%cjswp,psb_inp_unit) ! sweeps for GS/JAC subsolver

@ -310,14 +310,6 @@ program mld_s_pde2d
call prec%set('aggr_ord', p_choice%aggr_ord, info)
call prec%set('aggr_filter', p_choice%aggr_filter,info)
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)
call prec%set('smoother_type', p_choice%smther, info)
call prec%set('smoother_sweeps', p_choice%jsweeps, info)
@ -338,6 +330,17 @@ program mld_s_pde2d
call prec%set('sub_fillin', p_choice%fill2, info,pos='post')
call prec%set('sub_iluthrs', p_choice%thr2, info,pos='post')
end if
if (psb_toupper(p_choice%csolve) /= 'DEFLT') then
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)
end if
end select
! build the preconditioner
@ -525,8 +528,8 @@ contains
call read_data(prec%thr2,psb_inp_unit) ! threshold for ILUT
! coasest-level solver
call read_data(prec%csolve,psb_inp_unit) ! coarsest-lev solver
call read_data(prec%cmat,psb_inp_unit) ! coarsest mat layout
call read_data(prec%csbsolve,psb_inp_unit) ! coarsest-lev subsolver
call read_data(prec%cmat,psb_inp_unit) ! coarsest mat layout
call read_data(prec%cfill,psb_inp_unit) ! fill-in for incompl LU
call read_data(prec%cthres,psb_inp_unit) ! Threshold for ILUT
call read_data(prec%cjswp,psb_inp_unit) ! sweeps for GS/JAC subsolver

@ -323,14 +323,6 @@ program mld_s_pde3d
call prec%set('aggr_ord', p_choice%aggr_ord, info)
call prec%set('aggr_filter', p_choice%aggr_filter,info)
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)
call prec%set('smoother_type', p_choice%smther, info)
call prec%set('smoother_sweeps', p_choice%jsweeps, info)
@ -351,6 +343,17 @@ program mld_s_pde3d
call prec%set('sub_fillin', p_choice%fill2, info,pos='post')
call prec%set('sub_iluthrs', p_choice%thr2, info,pos='post')
end if
if (psb_toupper(p_choice%csolve) /= 'DEFLT') then
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)
end if
end select
! build the preconditioner
@ -538,8 +541,8 @@ contains
call read_data(prec%thr2,psb_inp_unit) ! threshold for ILUT
! coasest-level solver
call read_data(prec%csolve,psb_inp_unit) ! coarsest-lev solver
call read_data(prec%cmat,psb_inp_unit) ! coarsest mat layout
call read_data(prec%csbsolve,psb_inp_unit) ! coarsest-lev subsolver
call read_data(prec%cmat,psb_inp_unit) ! coarsest mat layout
call read_data(prec%cfill,psb_inp_unit) ! fill-in for incompl LU
call read_data(prec%cthres,psb_inp_unit) ! Threshold for ILUT
call read_data(prec%cjswp,psb_inp_unit) ! sweeps for GS/JAC subsolver

@ -36,9 +36,9 @@ NONE ! AS prolongation operator: NONE SUM AVG
JACOBI ! Subdomain solver: JACOBI GS BGS ILU ILUT MILU MUMPS SLU UMF
0 ! Fill level P for ILU(P) and ILU(T,P)
1.d-4 ! Threshold T for ILU(T,P)
UMF ! Coarsest-level solver: MUMPS UMF SLU SLUDIST JACOBI GS BJAC
REPL ! Coarsest-level matrix distribution: DIST REPL
DEFLT ! Coarsest-level solver: MUMPS UMF SLU SLUDIST JACOBI GS BJAC DEFLT
UMF ! Coarsest-level subsolver: ILU ILUT MILU UMF MUMPS SLU
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 Jacobi sweeps for JACOBI/GS/BJAC coarsest-level solver

@ -36,9 +36,9 @@ NONE ! AS prolongation operator: NONE SUM AVG
JACOBI ! Subdomain solver: JACOBI GS BGS ILU ILUT MILU MUMPS SLU UMF
0 ! Fill level P for ILU(P) and ILU(T,P)
1.d-4 ! Threshold T for ILU(T,P)
UMF ! Coarsest-level solver: MUMPS UMF SLU SLUDIST JACOBI GS BJAC
REPL ! Coarsest-level matrix distribution: DIST REPL
DEFLT ! Coarsest-level solver: MUMPS UMF SLU SLUDIST JACOBI GS BJAC DEFLT
UMF ! Coarsest-level subsolver: ILU ILUT MILU UMF MUMPS SLU
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 Jacobi sweeps for JACOBI/GS/BJAC coarsest-level solver

Loading…
Cancel
Save