mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 22:55:12 +00:00
mld2p4:
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.
This commit is contained in:
+17
-18
@@ -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
|
||||
|
||||
|
||||
+28
-24
@@ -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
|
||||
|
||||
+17
-18
@@ -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
|
||||
|
||||
|
||||
+31
-31
@@ -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
|
||||
|
||||
+17
-18
@@ -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
|
||||
|
||||
|
||||
+29
-24
@@ -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
|
||||
|
||||
+17
-18
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user