test/fileread/cf_sample.f90
 test/fileread/df_bench.f90
 test/fileread/df_sample.f90
 test/fileread/runs/drt.sh
 test/fileread/sf_sample.f90
 test/fileread/zf_bench.f90
 test/fileread/zf_sample.f90

Fixes in test programs for ordering within calls to precset.
stopcriterion
Salvatore Filippone 17 years ago
parent 8f87ed6703
commit b8b99a6083

@ -228,27 +228,26 @@ program cf_sample
nlv = 1
end if
call mld_precinit(prec,prec_choice%prec,info,nlev=nlv)
call mld_precset(prec,mld_sub_ovr_,prec_choice%novr,info)
call mld_precset(prec,mld_sub_restr_,prec_choice%restr,info)
call mld_precset(prec,mld_sub_prol_,prec_choice%prol,info)
call mld_precset(prec,mld_sub_solve_,prec_choice%solve,info)
call mld_precset(prec,mld_sub_ovr_, prec_choice%novr, info)
call mld_precset(prec,mld_sub_restr_, prec_choice%restr,info)
call mld_precset(prec,mld_sub_prol_, prec_choice%prol, info)
call mld_precset(prec,mld_sub_solve_, prec_choice%solve,info)
call mld_precset(prec,mld_sub_fillin_,prec_choice%fill1,info)
call mld_precset(prec,mld_fact_thrs_,prec_choice%thr1,info)
call mld_precset(prec,mld_fact_thrs_, prec_choice%thr1, info)
if (psb_toupper(prec_choice%prec) =='ML') then
call mld_precset(prec,mld_aggr_kind_,prec_choice%aggrkind,info)
call mld_precset(prec,mld_aggr_alg_,prec_choice%aggr_alg,info)
call mld_precset(prec,mld_ml_type_,prec_choice%mltype,info)
call mld_precset(prec,mld_ml_type_,prec_choice%mltype,info)
call mld_precset(prec,mld_smoother_pos_,prec_choice%smthpos,info)
call mld_precset(prec,mld_coarse_solve_,prec_choice%csolve,info)
call mld_precset(prec,mld_coarse_subsolve_,prec_choice%csbsolve,info)
call mld_precset(prec,mld_coarse_mat_,prec_choice%cmat,info)
call mld_precset(prec,mld_coarse_fillin_,prec_choice%cfill,info)
call mld_precset(prec,mld_fact_thrs_,prec_choice%cthres,info,ilev=nlv)
call mld_precset(prec,mld_aggr_thresh_,prec_choice%athres,info)
call mld_precset(prec,mld_coarse_sweeps_,prec_choice%cjswp,info)
call mld_precset(prec,mld_aggr_kind_, prec_choice%aggrkind,info)
call mld_precset(prec,mld_aggr_alg_, prec_choice%aggr_alg,info)
call mld_precset(prec,mld_ml_type_, prec_choice%mltype, info)
call mld_precset(prec,mld_smoother_pos_, prec_choice%smthpos, info)
call mld_precset(prec,mld_aggr_thresh_, prec_choice%athres, info)
call mld_precset(prec,mld_coarse_solve_, prec_choice%csolve, info)
call mld_precset(prec,mld_coarse_subsolve_, prec_choice%csbsolve,info)
call mld_precset(prec,mld_coarse_mat_, prec_choice%cmat, info)
call mld_precset(prec,mld_coarse_fillin_, prec_choice%cfill, info)
call mld_precset(prec,mld_coarse_fthrs_, prec_choice%cthres, info)
call mld_precset(prec,mld_coarse_sweeps_, prec_choice%cjswp, info)
if (prec_choice%omega>=0.0) then
call mld_precset(prec,mld_aggr_damp_,prec_choice%omega,info,ilev=nlv)
call mld_precset(prec,mld_aggr_damp_,prec_choice%omega,info)
end if
end if

@ -24,6 +24,7 @@ program df_bench
integer :: cmat ! coarse mat
integer :: smthpos ! pre, post, both smoothing
integer :: glbsmth ! global smoothing
integer :: cslv ! Coarse solver: BJAC, SuperLU_Dist, UMF.
integer :: ftype2 ! Factorization type: ILU, SuperLU, UMFPACK.
integer :: fill2 ! Fill-in for factorization 1
real(psb_dpk_) :: thr2 ! Threshold for fact. 1 ILU(T)
@ -232,24 +233,25 @@ program df_bench
if (precs(pp)%omega>=0.0) then
call mld_precset(pre,mld_aggr_damp_,precs(pp)%omega,info,ilev=nlev)
end if
call mld_precset(pre,mld_ml_type_, precs(pp)%mltype, info,ilev=nlev)
call mld_precset(pre,mld_aggr_alg_, precs(pp)%aggr, info,ilev=nlev)
call mld_precset(pre,mld_coarse_mat_, precs(pp)%cmat, info,ilev=nlev)
call mld_precset(pre,mld_smoother_pos_, precs(pp)%smthpos, info,ilev=nlev)
call mld_precset(pre,mld_sub_solve_, precs(pp)%ftype2, info,ilev=nlev)
call mld_precset(pre,mld_sub_fillin_, precs(pp)%fill2, info,ilev=nlev)
call mld_precset(pre,mld_fact_thrs_, precs(pp)%thr2, info,ilev=nlev)
call mld_precset(pre,mld_smoother_sweeps_, precs(pp)%jswp, info,ilev=nlev)
call mld_precset(pre,mld_aggr_kind_, precs(pp)%smthkind, info,ilev=nlev)
call mld_precset(pre,mld_ml_type_, precs(pp)%mltype, info)
call mld_precset(pre,mld_aggr_alg_, precs(pp)%aggr, info)
call mld_precset(pre,mld_aggr_kind_, precs(pp)%smthkind, info)
call mld_precset(pre,mld_smoother_pos_, precs(pp)%smthpos, info)
call mld_precset(pre,mld_coarse_solve_, precs(pp)%cslv, info)
call mld_precset(pre,mld_coarse_subsolve_, precs(pp)%ftype2, info)
call mld_precset(pre,mld_coarse_fillin_, precs(pp)%fill2, info)
call mld_precset(pre,mld_coarse_fthrs_, precs(pp)%thr2, info)
call mld_precset(pre,mld_coarse_sweeps_, precs(pp)%jswp, info)
call mld_precset(pre,mld_coarse_mat_, precs(pp)%cmat, info)
else
call mld_precinit(pre,precs(pp)%lv1,info)
end if
call mld_precset(pre,mld_sub_ovr_, precs(pp)%novr, info,ilev=1)
call mld_precset(pre,mld_sub_restr_, precs(pp)%restr, info,ilev=1)
call mld_precset(pre,mld_sub_prol_, precs(pp)%prol, info,ilev=1)
call mld_precset(pre,mld_sub_solve_, precs(pp)%ftype1, info,ilev=1)
call mld_precset(pre,mld_sub_fillin_, precs(pp)%fill1, info,ilev=1)
call mld_precset(pre,mld_fact_thrs_, precs(pp)%thr1, info,ilev=1)
call mld_precset(pre,mld_sub_solve_, precs(pp)%ftype1, info)
call mld_precset(pre,mld_sub_restr_, precs(pp)%restr, info)
call mld_precset(pre,mld_sub_prol_, precs(pp)%prol, info)
call mld_precset(pre,mld_sub_ovr_, precs(pp)%novr, info)
call mld_precset(pre,mld_sub_fillin_, precs(pp)%fill1, info)
call mld_precset(pre,mld_fact_thrs_, precs(pp)%thr1, info)
! setting initial guess to zero
@ -439,7 +441,7 @@ contains
real(psb_dpk_) :: eps, omega,thr1,thr2
character :: afmt*5, lv1*10, lv2*10, pdescr*40
integer :: iam, nm, np, i, idx
integer, parameter :: npparms=14
integer, parameter :: npparms=15
integer :: inparms(40), ip, pparms(npparms)
call psb_info(icontxt,iam,np)
@ -527,10 +529,11 @@ contains
precs(np)%smthkind = pparms(8)
precs(np)%cmat = pparms(9)
precs(np)%smthpos = pparms(10)
precs(np)%ftype2 = pparms(11)
precs(np)%fill2 = pparms(12)
precs(np)%jswp = pparms(13)
precs(np)%nlev = pparms(14)
precs(np)%cslv = pparms(11)
precs(np)%ftype2 = pparms(12)
precs(np)%fill2 = pparms(13)
precs(np)%jswp = pparms(14)
precs(np)%nlev = pparms(15)
precs(np)%omega = omega
precs(np)%thr1 = thr1
precs(np)%thr2 = thr2
@ -595,10 +598,11 @@ contains
precs(np)%smthkind = pparms(8)
precs(np)%cmat = pparms(9)
precs(np)%smthpos = pparms(10)
precs(np)%ftype2 = pparms(11)
precs(np)%fill2 = pparms(12)
precs(np)%jswp = pparms(13)
precs(np)%nlev = pparms(14)
precs(np)%cslv = pparms(11)
precs(np)%ftype2 = pparms(12)
precs(np)%fill2 = pparms(13)
precs(np)%jswp = pparms(14)
precs(np)%nlev = pparms(15)
precs(np)%omega = omega
precs(np)%thr1 = thr1
precs(np)%thr2 = thr2

@ -228,27 +228,26 @@ program df_sample
nlv = 1
end if
call mld_precinit(prec,prec_choice%prec,info,nlev=nlv)
call mld_precset(prec,mld_sub_ovr_,prec_choice%novr,info)
call mld_precset(prec,mld_sub_restr_,prec_choice%restr,info)
call mld_precset(prec,mld_sub_prol_,prec_choice%prol,info)
call mld_precset(prec,mld_sub_solve_,prec_choice%solve,info)
call mld_precset(prec,mld_sub_ovr_, prec_choice%novr, info)
call mld_precset(prec,mld_sub_restr_, prec_choice%restr,info)
call mld_precset(prec,mld_sub_prol_, prec_choice%prol, info)
call mld_precset(prec,mld_sub_solve_, prec_choice%solve,info)
call mld_precset(prec,mld_sub_fillin_,prec_choice%fill1,info)
call mld_precset(prec,mld_fact_thrs_,prec_choice%thr1,info)
call mld_precset(prec,mld_fact_thrs_, prec_choice%thr1, info)
if (psb_toupper(prec_choice%prec) =='ML') then
call mld_precset(prec,mld_aggr_kind_,prec_choice%aggrkind,info)
call mld_precset(prec,mld_aggr_alg_,prec_choice%aggr_alg,info)
call mld_precset(prec,mld_ml_type_,prec_choice%mltype,info)
call mld_precset(prec,mld_ml_type_,prec_choice%mltype,info)
call mld_precset(prec,mld_smoother_pos_,prec_choice%smthpos,info)
call mld_precset(prec,mld_coarse_solve_,prec_choice%csolve,info)
call mld_precset(prec,mld_coarse_subsolve_,prec_choice%csbsolve,info)
call mld_precset(prec,mld_coarse_mat_,prec_choice%cmat,info)
call mld_precset(prec,mld_coarse_fillin_,prec_choice%cfill,info)
call mld_precset(prec,mld_fact_thrs_,prec_choice%cthres,info,ilev=nlv)
call mld_precset(prec,mld_aggr_thresh_,prec_choice%athres,info)
call mld_precset(prec,mld_coarse_sweeps_,prec_choice%cjswp,info)
call mld_precset(prec,mld_aggr_kind_, prec_choice%aggrkind,info)
call mld_precset(prec,mld_aggr_alg_, prec_choice%aggr_alg,info)
call mld_precset(prec,mld_ml_type_, prec_choice%mltype, info)
call mld_precset(prec,mld_smoother_pos_, prec_choice%smthpos, info)
call mld_precset(prec,mld_aggr_thresh_, prec_choice%athres, info)
call mld_precset(prec,mld_coarse_solve_, prec_choice%csolve, info)
call mld_precset(prec,mld_coarse_subsolve_, prec_choice%csbsolve,info)
call mld_precset(prec,mld_coarse_mat_, prec_choice%cmat, info)
call mld_precset(prec,mld_coarse_fillin_, prec_choice%cfill, info)
call mld_precset(prec,mld_coarse_fthrs_, prec_choice%cthres, info)
call mld_precset(prec,mld_coarse_sweeps_, prec_choice%cjswp, info)
if (prec_choice%omega>=0.0) then
call mld_precset(prec,mld_aggr_damp_,prec_choice%omega,info,ilev=nlv)
call mld_precset(prec,mld_aggr_damp_,prec_choice%omega,info)
end if
end if

@ -29,37 +29,37 @@ CSR Matrix format
30 IRST Restart parameter for GMRES and BiCGSTAB(L)
0 RENUM: 0: none 1: global indices (2: GPS band reduction)
$ntry NTRY for each comb. print out best timings
30 NPRCS nov rst prl fc1 fl1 mlt agg smt cm smp ft2 fl2 jsw nl omg th1 th2 name
none none 0 0 0 0 0 0 0 0 0 0 0 0 0 1 -1.0 1e-4 1e-4 NOPREC
diag none 0 0 0 1 0 2 0 1 0 2 1 0 4 1 -1.0 1e-4 1e-4 DIAG
bjac none 0 0 0 1 0 2 0 1 0 2 1 0 4 1 -1.0 1e-4 1e-4 BJAC
as none 0 1 0 1 0 2 0 1 0 2 1 0 4 1 -1.0 1e-4 1e-4 RAS
as none 1 1 0 1 0 2 0 1 0 2 1 0 4 1 -1.0 1e-4 1e-4 RAS
as none 2 1 0 1 0 2 0 1 0 2 1 0 4 1 -1.0 1e-4 1e-4 RAS
as ml 0 1 0 1 0 2 0 1 0 2 1 0 4 2 -1.0 1e-4 1e-4 2L-M-RAS-I-D4
as ml 1 1 0 1 0 2 0 1 0 2 1 0 4 2 -1.0 1e-4 1e-4 2L-M-RAS-I-D4
as ml 2 1 0 1 0 2 0 1 0 2 1 0 4 2 -1.0 1e-4 1e-4 2L-M-RAS-I-D4
as ml 0 1 0 1 0 2 0 1 0 2 5 0 4 2 -1.0 1e-4 1e-4 2L-M-RAS-U-D4
as ml 1 1 0 1 0 2 0 1 0 2 5 0 4 2 -1.0 1e-4 1e-4 2L-M-RAS-U-D4
as ml 2 1 0 1 0 2 0 1 0 2 5 0 4 2 -1.0 1e-4 1e-4 2L-M-RAS-U-D4
as ml 0 1 0 1 0 2 0 1 0 2 1 0 4 3 -1.0 1e-4 1e-4 3L-M-RAS-I-D4
as ml 1 1 0 1 0 2 0 1 0 2 1 0 4 3 -1.0 1e-4 1e-4 3L-M-RAS-I-D4
as ml 2 1 0 1 0 2 0 1 0 2 1 0 4 3 -1.0 1e-4 1e-4 3L-M-RAS-I-D4
as ml 0 1 0 1 0 2 0 1 0 2 5 0 4 3 -1.0 1e-4 1e-4 3L-M-RAS-U-D4
as ml 1 1 0 1 0 2 0 1 0 2 5 0 4 3 -1.0 1e-4 1e-4 3L-M-RAS-U-D4
as ml 2 1 0 1 0 2 0 1 0 2 5 0 4 3 -1.0 1e-4 1e-4 3L-M-RAS-U-D4
as ml 0 1 0 1 0 2 0 1 1 2 1 0 1 2 -1.0 1e-4 1e-4 2L-M-RAS-I-R
as ml 1 1 0 1 0 2 0 1 1 2 1 0 1 2 -1.0 1e-4 1e-4 2L-M-RAS-I-R
as ml 2 1 0 1 0 2 0 1 1 2 1 0 1 2 -1.0 1e-4 1e-4 2L-M-RAS-I-R
as ml 0 1 0 1 0 2 0 1 1 2 5 0 1 2 -1.0 1e-4 1e-4 2L-M-RAS-U-R
as ml 1 1 0 1 0 2 0 1 1 2 5 0 1 2 -1.0 1e-4 1e-4 2L-M-RAS-U-R
as ml 2 1 0 1 0 2 0 1 1 2 5 0 1 2 -1.0 1e-4 1e-4 2L-M-RAS-U-R
as ml 0 1 0 1 0 2 0 1 1 2 1 0 1 3 -1.0 1e-4 1e-4 3L-M-RAS-I-R
as ml 1 1 0 1 0 2 0 1 1 2 1 0 1 3 -1.0 1e-4 1e-4 3L-M-RAS-I-R
as ml 2 1 0 1 0 2 0 1 1 2 1 0 1 3 -1.0 1e-4 1e-4 3L-M-RAS-I-R
as ml 0 1 0 1 0 2 0 1 1 2 5 0 1 3 -1.0 1e-4 1e-4 3L-M-RAS-U-R
as ml 1 1 0 1 0 2 0 1 1 2 5 0 1 3 -1.0 1e-4 1e-4 3L-M-RAS-U-R
as ml 2 1 0 1 0 2 0 1 1 2 5 0 1 3 -1.0 1e-4 1e-4 3L-M-RAS-U-R
30 NPRCS nov rst prl fc1 fl1 mlt agg smt cm smp csv ft2 fl2 jsw nl omg th1 th2 name
none none 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 -1.0 1e-4 1e-4 NOPREC
diag none 0 0 0 1 0 2 0 1 0 2 2 1 0 4 1 -1.0 1e-4 1e-4 DIAG
bjac none 0 0 0 1 0 2 0 1 0 2 2 1 0 4 1 -1.0 1e-4 1e-4 BJAC
as none 0 1 0 1 0 2 0 1 0 2 2 1 0 4 1 -1.0 1e-4 1e-4 RAS
as none 1 1 0 1 0 2 0 1 0 2 2 1 0 4 1 -1.0 1e-4 1e-4 RAS
as none 2 1 0 1 0 2 0 1 0 2 2 1 0 4 1 -1.0 1e-4 1e-4 RAS
as ml 0 1 0 1 0 2 0 1 0 2 2 1 0 4 2 -1.0 1e-4 1e-4 2L-M-RAS-I-D4
as ml 1 1 0 1 0 2 0 1 0 2 2 1 0 4 2 -1.0 1e-4 1e-4 2L-M-RAS-I-D4
as ml 2 1 0 1 0 2 0 1 0 2 2 1 0 4 2 -1.0 1e-4 1e-4 2L-M-RAS-I-D4
as ml 0 1 0 1 0 2 0 1 0 2 2 5 0 4 2 -1.0 1e-4 1e-4 2L-M-RAS-U-D4
as ml 1 1 0 1 0 2 0 1 0 2 2 5 0 4 2 -1.0 1e-4 1e-4 2L-M-RAS-U-D4
as ml 2 1 0 1 0 2 0 1 0 2 2 5 0 4 2 -1.0 1e-4 1e-4 2L-M-RAS-U-D4
as ml 0 1 0 1 0 2 0 1 0 2 2 1 0 4 3 -1.0 1e-4 1e-4 3L-M-RAS-I-D4
as ml 1 1 0 1 0 2 0 1 0 2 2 1 0 4 3 -1.0 1e-4 1e-4 3L-M-RAS-I-D4
as ml 2 1 0 1 0 2 0 1 0 2 2 1 0 4 3 -1.0 1e-4 1e-4 3L-M-RAS-I-D4
as ml 0 1 0 1 0 2 0 1 0 2 2 5 0 4 3 -1.0 1e-4 1e-4 3L-M-RAS-U-D4
as ml 1 1 0 1 0 2 0 1 0 2 2 5 0 4 3 -1.0 1e-4 1e-4 3L-M-RAS-U-D4
as ml 2 1 0 1 0 2 0 1 0 2 2 5 0 4 3 -1.0 1e-4 1e-4 3L-M-RAS-U-D4
as ml 0 1 0 1 0 2 0 1 1 2 2 1 0 1 2 -1.0 1e-4 1e-4 2L-M-RAS-I-R
as ml 1 1 0 1 0 2 0 1 1 2 2 1 0 1 2 -1.0 1e-4 1e-4 2L-M-RAS-I-R
as ml 2 1 0 1 0 2 0 1 1 2 2 1 0 1 2 -1.0 1e-4 1e-4 2L-M-RAS-I-R
as ml 0 1 0 1 0 2 0 1 1 2 2 5 0 1 2 -1.0 1e-4 1e-4 2L-M-RAS-U-R
as ml 1 1 0 1 0 2 0 1 1 2 2 5 0 1 2 -1.0 1e-4 1e-4 2L-M-RAS-U-R
as ml 2 1 0 1 0 2 0 1 1 2 2 5 0 1 2 -1.0 1e-4 1e-4 2L-M-RAS-U-R
as ml 0 1 0 1 0 2 0 1 1 2 2 1 0 1 3 -1.0 1e-4 1e-4 3L-M-RAS-I-R
as ml 1 1 0 1 0 2 0 1 1 2 2 1 0 1 3 -1.0 1e-4 1e-4 3L-M-RAS-I-R
as ml 2 1 0 1 0 2 0 1 1 2 2 1 0 1 3 -1.0 1e-4 1e-4 3L-M-RAS-I-R
as ml 0 1 0 1 0 2 0 1 1 2 2 5 0 1 3 -1.0 1e-4 1e-4 3L-M-RAS-U-R
as ml 1 1 0 1 0 2 0 1 1 2 2 5 0 1 3 -1.0 1e-4 1e-4 3L-M-RAS-U-R
as ml 2 1 0 1 0 2 0 1 1 2 2 5 0 1 3 -1.0 1e-4 1e-4 3L-M-RAS-U-R
2 Number of matrices
kivap004.mtx none
kivap001.mtx none

@ -228,27 +228,26 @@ program sf_sample
nlv = 1
end if
call mld_precinit(prec,prec_choice%prec,info,nlev=nlv)
call mld_precset(prec,mld_sub_ovr_,prec_choice%novr,info)
call mld_precset(prec,mld_sub_restr_,prec_choice%restr,info)
call mld_precset(prec,mld_sub_prol_,prec_choice%prol,info)
call mld_precset(prec,mld_sub_solve_,prec_choice%solve,info)
call mld_precset(prec,mld_sub_ovr_, prec_choice%novr, info)
call mld_precset(prec,mld_sub_restr_, prec_choice%restr,info)
call mld_precset(prec,mld_sub_prol_, prec_choice%prol, info)
call mld_precset(prec,mld_sub_solve_, prec_choice%solve,info)
call mld_precset(prec,mld_sub_fillin_,prec_choice%fill1,info)
call mld_precset(prec,mld_fact_thrs_,prec_choice%thr1,info)
call mld_precset(prec,mld_fact_thrs_, prec_choice%thr1, info)
if (psb_toupper(prec_choice%prec) =='ML') then
call mld_precset(prec,mld_aggr_kind_,prec_choice%aggrkind,info)
call mld_precset(prec,mld_aggr_alg_,prec_choice%aggr_alg,info)
call mld_precset(prec,mld_ml_type_,prec_choice%mltype,info)
call mld_precset(prec,mld_ml_type_,prec_choice%mltype,info)
call mld_precset(prec,mld_smoother_pos_,prec_choice%smthpos,info)
call mld_precset(prec,mld_coarse_solve_,prec_choice%csolve,info)
call mld_precset(prec,mld_coarse_subsolve_,prec_choice%csbsolve,info)
call mld_precset(prec,mld_coarse_mat_,prec_choice%cmat,info)
call mld_precset(prec,mld_coarse_fillin_,prec_choice%cfill,info)
call mld_precset(prec,mld_fact_thrs_,prec_choice%cthres,info,ilev=nlv)
call mld_precset(prec,mld_aggr_thresh_,prec_choice%athres,info)
call mld_precset(prec,mld_coarse_sweeps_,prec_choice%cjswp,info)
call mld_precset(prec,mld_aggr_kind_, prec_choice%aggrkind,info)
call mld_precset(prec,mld_aggr_alg_, prec_choice%aggr_alg,info)
call mld_precset(prec,mld_ml_type_, prec_choice%mltype, info)
call mld_precset(prec,mld_smoother_pos_, prec_choice%smthpos, info)
call mld_precset(prec,mld_aggr_thresh_, prec_choice%athres, info)
call mld_precset(prec,mld_coarse_solve_, prec_choice%csolve, info)
call mld_precset(prec,mld_coarse_subsolve_, prec_choice%csbsolve,info)
call mld_precset(prec,mld_coarse_mat_, prec_choice%cmat, info)
call mld_precset(prec,mld_coarse_fillin_, prec_choice%cfill, info)
call mld_precset(prec,mld_coarse_fthrs_, prec_choice%cthres, info)
call mld_precset(prec,mld_coarse_sweeps_, prec_choice%cjswp, info)
if (prec_choice%omega>=0.0) then
call mld_precset(prec,mld_aggr_damp_,prec_choice%omega,info,ilev=nlv)
call mld_precset(prec,mld_aggr_damp_,prec_choice%omega,info)
end if
end if

@ -24,11 +24,13 @@ program zf_bench
integer :: cmat ! coarse mat
integer :: smthpos ! pre, post, both smoothing
integer :: glbsmth ! global smoothing
integer :: cslv ! Coarse solver: BJAC, SuperLU_Dist, UMF.
integer :: ftype2 ! Factorization type: ILU, SuperLU, UMFPACK.
integer :: fill2 ! Fill-in for factorization 1
real(psb_dpk_) :: thr2 ! Threshold for fact. 1 ILU(T)
integer :: jswp ! Jacobi sweeps
real(psb_dpk_) :: omega ! smoother omega
real(psb_dpk_) :: athres ! smoother aggregation
character(len=40) :: descr ! verbose description of the prec
end type precdata
type(precdata), allocatable :: precs(:)
@ -217,24 +219,25 @@ program zf_bench
if (precs(pp)%omega>=0.0) then
call mld_precset(pre,mld_aggr_damp_,precs(pp)%omega,info,ilev=nlev)
end if
call mld_precset(pre,mld_ml_type_, precs(pp)%mltype, info,ilev=nlev)
call mld_precset(pre,mld_aggr_alg_, precs(pp)%aggr, info,ilev=nlev)
call mld_precset(pre,mld_coarse_mat_, precs(pp)%cmat, info,ilev=nlev)
call mld_precset(pre,mld_smoother_pos_, precs(pp)%smthpos, info,ilev=nlev)
call mld_precset(pre,mld_sub_solve_, precs(pp)%ftype2, info,ilev=nlev)
call mld_precset(pre,mld_sub_fillin_, precs(pp)%fill2, info,ilev=nlev)
call mld_precset(pre,mld_fact_thrs_, precs(pp)%thr2, info,ilev=nlev)
call mld_precset(pre,mld_smoother_sweeps_, precs(pp)%jswp, info,ilev=nlev)
call mld_precset(pre,mld_aggr_kind_, precs(pp)%smthkind, info,ilev=nlev)
call mld_precset(pre,mld_ml_type_, precs(pp)%mltype, info)
call mld_precset(pre,mld_aggr_alg_, precs(pp)%aggr, info)
call mld_precset(pre,mld_aggr_kind_, precs(pp)%smthkind, info)
call mld_precset(pre,mld_smoother_pos_, precs(pp)%smthpos, info)
call mld_precset(pre,mld_coarse_solve_, precs(pp)%cslv, info)
call mld_precset(pre,mld_coarse_subsolve_, precs(pp)%ftype2, info)
call mld_precset(pre,mld_coarse_fillin_, precs(pp)%fill2, info)
call mld_precset(pre,mld_coarse_fthrs_, precs(pp)%thr2, info)
call mld_precset(pre,mld_coarse_sweeps_, precs(pp)%jswp, info)
call mld_precset(pre,mld_coarse_mat_, precs(pp)%cmat, info)
else
call mld_precinit(pre,precs(pp)%lv1,info)
end if
call mld_precset(pre,mld_sub_ovr_, precs(pp)%novr, info,ilev=1)
call mld_precset(pre,mld_sub_restr_, precs(pp)%restr, info,ilev=1)
call mld_precset(pre,mld_sub_prol_, precs(pp)%prol, info,ilev=1)
call mld_precset(pre,mld_sub_solve_, precs(pp)%ftype1, info,ilev=1)
call mld_precset(pre,mld_sub_fillin_, precs(pp)%fill1, info,ilev=1)
call mld_precset(pre,mld_fact_thrs_, precs(pp)%thr1, info,ilev=1)
call mld_precset(pre,mld_sub_solve_, precs(pp)%ftype1, info)
call mld_precset(pre,mld_sub_restr_, precs(pp)%restr, info)
call mld_precset(pre,mld_sub_prol_, precs(pp)%prol, info)
call mld_precset(pre,mld_sub_ovr_, precs(pp)%novr, info)
call mld_precset(pre,mld_sub_fillin_, precs(pp)%fill1, info)
call mld_precset(pre,mld_fact_thrs_, precs(pp)%thr1, info)
! setting initial guess to zero
@ -383,7 +386,7 @@ contains
real(psb_dpk_) :: eps, omega,thr1,thr2
character :: afmt*5, lv1*10, lv2*10, pdescr*40
integer :: iam, nm, np, i, idx
integer, parameter :: npparms=14
integer, parameter :: npparms=15
integer :: inparms(40), ip, pparms(npparms)
call psb_info(icontxt,iam,np)
@ -471,10 +474,11 @@ contains
precs(np)%smthkind = pparms(8)
precs(np)%cmat = pparms(9)
precs(np)%smthpos = pparms(10)
precs(np)%ftype2 = pparms(11)
precs(np)%fill2 = pparms(12)
precs(np)%jswp = pparms(13)
precs(np)%nlev = pparms(14)
precs(np)%cslv = pparms(11)
precs(np)%ftype2 = pparms(12)
precs(np)%fill2 = pparms(13)
precs(np)%jswp = pparms(14)
precs(np)%nlev = pparms(15)
precs(np)%omega = omega
precs(np)%thr1 = thr1
precs(np)%thr2 = thr2
@ -539,10 +543,11 @@ contains
precs(np)%smthkind = pparms(8)
precs(np)%cmat = pparms(9)
precs(np)%smthpos = pparms(10)
precs(np)%ftype2 = pparms(11)
precs(np)%fill2 = pparms(12)
precs(np)%jswp = pparms(13)
precs(np)%nlev = pparms(14)
precs(np)%cslv = pparms(11)
precs(np)%ftype2 = pparms(12)
precs(np)%fill2 = pparms(13)
precs(np)%jswp = pparms(14)
precs(np)%nlev = pparms(15)
precs(np)%omega = omega
precs(np)%thr1 = thr1
precs(np)%thr2 = thr2

@ -228,27 +228,26 @@ program zf_sample
nlv = 1
end if
call mld_precinit(prec,prec_choice%prec,info,nlev=nlv)
call mld_precset(prec,mld_sub_ovr_,prec_choice%novr,info)
call mld_precset(prec,mld_sub_restr_,prec_choice%restr,info)
call mld_precset(prec,mld_sub_prol_,prec_choice%prol,info)
call mld_precset(prec,mld_sub_solve_,prec_choice%solve,info)
call mld_precset(prec,mld_sub_ovr_, prec_choice%novr, info)
call mld_precset(prec,mld_sub_restr_, prec_choice%restr,info)
call mld_precset(prec,mld_sub_prol_, prec_choice%prol, info)
call mld_precset(prec,mld_sub_solve_, prec_choice%solve,info)
call mld_precset(prec,mld_sub_fillin_,prec_choice%fill1,info)
call mld_precset(prec,mld_fact_thrs_,prec_choice%thr1,info)
call mld_precset(prec,mld_fact_thrs_, prec_choice%thr1, info)
if (psb_toupper(prec_choice%prec) =='ML') then
call mld_precset(prec,mld_aggr_kind_,prec_choice%aggrkind,info)
call mld_precset(prec,mld_aggr_alg_,prec_choice%aggr_alg,info)
call mld_precset(prec,mld_ml_type_,prec_choice%mltype,info)
call mld_precset(prec,mld_ml_type_,prec_choice%mltype,info)
call mld_precset(prec,mld_smoother_pos_,prec_choice%smthpos,info)
call mld_precset(prec,mld_coarse_solve_,prec_choice%csolve,info)
call mld_precset(prec,mld_coarse_subsolve_,prec_choice%csbsolve,info)
call mld_precset(prec,mld_coarse_mat_,prec_choice%cmat,info)
call mld_precset(prec,mld_coarse_fillin_,prec_choice%cfill,info)
call mld_precset(prec,mld_fact_thrs_,prec_choice%cthres,info,ilev=nlv)
call mld_precset(prec,mld_aggr_thresh_,prec_choice%athres,info)
call mld_precset(prec,mld_coarse_sweeps_,prec_choice%cjswp,info)
call mld_precset(prec,mld_aggr_kind_, prec_choice%aggrkind,info)
call mld_precset(prec,mld_aggr_alg_, prec_choice%aggr_alg,info)
call mld_precset(prec,mld_ml_type_, prec_choice%mltype, info)
call mld_precset(prec,mld_smoother_pos_, prec_choice%smthpos, info)
call mld_precset(prec,mld_aggr_thresh_, prec_choice%athres, info)
call mld_precset(prec,mld_coarse_solve_, prec_choice%csolve, info)
call mld_precset(prec,mld_coarse_subsolve_, prec_choice%csbsolve,info)
call mld_precset(prec,mld_coarse_mat_, prec_choice%cmat, info)
call mld_precset(prec,mld_coarse_fillin_, prec_choice%cfill, info)
call mld_precset(prec,mld_coarse_fthrs_, prec_choice%cthres, info)
call mld_precset(prec,mld_coarse_sweeps_, prec_choice%cjswp, info)
if (prec_choice%omega>=0.0) then
call mld_precset(prec,mld_aggr_damp_,prec_choice%omega,info,ilev=nlv)
call mld_precset(prec,mld_aggr_damp_,prec_choice%omega,info)
end if
end if

Loading…
Cancel
Save