From 114a5de98ae3541c1a50ea22419113d5e0eefa0a Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Tue, 15 Mar 2011 13:06:54 +0000 Subject: [PATCH] mld2p4-2: krylov krylov/Makefile krylov/cleansymlinks krylov/psb_prec_mod.F90 mlprec/mld_cprecset.F90 mlprec/mld_dprecset.F90 mlprec/mld_sprecset.F90 mlprec/mld_zprecset.F90 tests/fileread/runs/dfs.inp tests/fileread/runs/zfs.inp tests/fileread/zf_sample.f90 Fixed precset to call smoother when it does not know what is asked of it. Taken out krylov subdir, does not make sense anymore. --- krylov/Makefile | 52 ------------------ krylov/cleansymlinks | 9 --- krylov/psb_prec_mod.F90 | 79 --------------------------- mlprec/mld_cprecset.F90 | 53 +++--------------- mlprec/mld_dprecset.F90 | 103 ++++++++++++----------------------- mlprec/mld_sprecset.F90 | 53 +++--------------- mlprec/mld_zprecset.F90 | 53 +++--------------- tests/fileread/runs/dfs.inp | 4 +- tests/fileread/runs/zfs.inp | 10 ++-- tests/fileread/zf_sample.f90 | 1 + 10 files changed, 69 insertions(+), 348 deletions(-) delete mode 100644 krylov/Makefile delete mode 100644 krylov/cleansymlinks delete mode 100644 krylov/psb_prec_mod.F90 diff --git a/krylov/Makefile b/krylov/Makefile deleted file mode 100644 index 46d64c1d..00000000 --- a/krylov/Makefile +++ /dev/null @@ -1,52 +0,0 @@ -include ../Make.inc -LIBDIR=../lib -PSBLIBDIR=$(PSBLASDIR)/lib -HERE=. -# -# Don't you dare touch the include order here! -# The method source file are symlinked, so as not to duplicate -# code, and the symlinks are recompiled using the local version -# of psb_prec_mod, so that they are tricked into using the -# MLD preconditioners while believing to be using the PSB ones. -# -FINCLUDES=$(FMFLAG). $(FMFLAG)$(LIBDIR) $(FMFLAG)$(PSBLIBDIR) -PSBKRYLDIR=$(PSBLASDIR)/krylov - -METHDOBJS= psb_dcgstab.o psb_dcg.o psb_dcgs.o \ - psb_dbicg.o psb_dcgstabl.o psb_drgmres.o\ - psb_scgstab.o psb_scg.o psb_scgs.o \ - psb_sbicg.o psb_scgstabl.o psb_srgmres.o\ - psb_ccgstab.o psb_ccg.o psb_ccgs.o \ - psb_cbicg.o psb_ccgstabl.o psb_crgmres.o\ - psb_zcgstab.o psb_zcg.o psb_zcgs.o \ - psb_zbicg.o psb_zcgstabl.o psb_zrgmres.o - -LIBMOD=psb_krylov_mod$(.mod) psb_prec_mod$(.mod) -MODOBJS=$(LIBMOD:$(.mod)=.o) -LOCAL_MODS= -LOCAL_OBJS=$(LOCAL_MODS:$(.mod)=.o) -OBJS=$(METHDOBJS) $(MODOBJS) -LIBNAME=libmld_krylov.a - -lib: $(OBJS) - $(AR) $(HERE)/$(LIBNAME) $(OBJS) - $(RANLIB) $(HERE)/$(LIBNAME) - /bin/cp -p $(HERE)/$(LIBNAME) $(LIBDIR) - /bin/cp -p $(LIBMOD) $(LIBDIR) - -$(METHDOBJS): psb_prec_mod.o psb_krylov_mod.o - -symlink: - (/bin/ln -fs $(PSBKRYLDIR)/*.f90 . ) - (/bin/ln -fs $(PSBKRYLDIR)/*.F90 . ) - -psb_krylov_mod.o: psb_krylov_mod.f90 $(LIBDIR)/mld_prec_mod$(.mod) - $(F90) $(F90COPT) $(FINCLUDES) -c $< - - -veryclean: clean - (sh ./cleansymlinks *f90 *F90) - /bin/rm -f $(LIBNAME) - -clean: - /bin/rm -f $(OBJS) $(LOCAL_MODS) $(LIBMOD) $(LOCAL_OBJS) diff --git a/krylov/cleansymlinks b/krylov/cleansymlinks deleted file mode 100644 index a5f3c96c..00000000 --- a/krylov/cleansymlinks +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -for file in $* -do -if [ -L $file ] -then -/bin/rm -f $file -fi -done diff --git a/krylov/psb_prec_mod.F90 b/krylov/psb_prec_mod.F90 deleted file mode 100644 index a61d82e8..00000000 --- a/krylov/psb_prec_mod.F90 +++ /dev/null @@ -1,79 +0,0 @@ -!!$ -!!$ -!!$ MLD2P4 version 2.0 -!!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 3.0) -!!$ -!!$ (C) Copyright 2008,2009,2010 -!!$ -!!$ Salvatore Filippone University of Rome Tor Vergata -!!$ Alfredo Buttari CNRS-IRIT, Toulouse -!!$ Pasqua D'Ambra ICAR-CNR, Naples -!!$ Daniela di Serafino Second University of Naples -!!$ -!!$ Redistribution and use in source and binary forms, with or without -!!$ modification, are permitted provided that the following conditions -!!$ are met: -!!$ 1. Redistributions of source code must retain the above copyright -!!$ notice, this list of conditions and the following disclaimer. -!!$ 2. Redistributions in binary form must reproduce the above copyright -!!$ notice, this list of conditions, and the following disclaimer in the -!!$ documentation and/or other materials provided with the distribution. -!!$ 3. The name of the MLD2P4 group or the names of its contributors may -!!$ not be used to endorse or promote products derived from this -!!$ software without specific written permission. -!!$ -!!$ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -!!$ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -!!$ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -!!$ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS -!!$ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -!!$ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -!!$ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -!!$ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -!!$ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -!!$ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -!!$ POSSIBILITY OF SUCH DAMAGE. -!!$ -!!$ -! File: psb_prec_mod.f90. -! -! Module: psb_prec_mod -! -! This version of the preconditioner module psb_prec_mod renames "on the fly" -! the MLD2P4 preconditioner routines and data types so that the Krylov solvers -! in PSBLAS can be tricked into using the MLD2P4 versions instead of the original -! ones. Since there is no native runtime polymorphism this implies a recompilation, -! but thanks to the renaming feature of Fortran 95 (and to the compatibility of -! the calling sequences) there is no need to change the source code for the -! Krylov methods. -! -module psb_prec_mod - - use mld_prec_mod, & - & psb_sbaseprec_type => mld_sbaseprec_type,& - & psb_dbaseprec_type => mld_dbaseprec_type,& - & psb_cbaseprec_type => mld_cbaseprec_type,& - & psb_zbaseprec_type => mld_zbaseprec_type,& - & psb_sprec_type => mld_sprec_type,& - & psb_dprec_type => mld_dprec_type,& - & psb_cprec_type => mld_cprec_type,& - & psb_zprec_type => mld_zprec_type,& - & psb_nullify_baseprec => mld_nullify_baseprec,& - & psb_precdescr => mld_precdescr,& - & psb_prec_short_descr => mld_prec_short_descr,& - & psb_precbld => mld_precbld, & - & psb_precinit => mld_precinit, & - & psb_precfree => mld_precfree, & - & psb_precset => mld_precset, & - & psb_precaply => mld_precaply - - integer, parameter :: psb_noprec_=mld_noprec_, psb_diag_=mld_diag_,& - & psb_bjac_=mld_bjac_ - - interface psb_sizeof - module procedure mld_dprec_sizeof, mld_zprec_sizeof, & - & mld_dbaseprec_sizeof, mld_zbaseprec_sizeof - end interface - -end module psb_prec_mod diff --git a/mlprec/mld_cprecset.F90 b/mlprec/mld_cprecset.F90 index 1246faeb..cee1bcb9 100644 --- a/mlprec/mld_cprecset.F90 +++ b/mlprec/mld_cprecset.F90 @@ -146,8 +146,7 @@ subroutine mld_cprecseti(p,what,val,info,ilev) call p%precv(ilev_)%set(what,val,info) case default - write(0,*) name,': Error: invalid WHAT' - info = -2 + call p%precv(ilev_)%set(what,val,info) end select else if (ilev_ > 1) then @@ -221,8 +220,7 @@ subroutine mld_cprecseti(p,what,val,info,ilev) end if call p%precv(nlev_)%set(mld_sub_fillin_,val,info) case default - write(0,*) name,': Error: invalid WHAT' - info = -2 + call p%precv(ilev_)%set(what,val,info) end select endif @@ -320,8 +318,9 @@ subroutine mld_cprecseti(p,what,val,info,ilev) call p%precv(nlev_)%set(mld_sub_fillin_,val,info) end if case default - write(0,*) name,': Error: invalid WHAT' - info = -2 + do ilev_=1,nlev_ + call p%precv(ilev_)%set(what,val,info) + end do end select endif @@ -810,30 +809,7 @@ subroutine mld_cprecsetr(p,what,val,info,ilev) ! if (present(ilev)) then - if (ilev_ == 1) then - ! - ! Rules for fine level are slightly different. - ! - select case(what) - case(mld_sub_iluthrs_) - call p%precv(ilev_)%set(what,val,info) - - case default - write(0,*) name,': Error: invalid WHAT' - info = -2 - end select - - else if (ilev_ > 1) then - select case(what) - case(mld_sub_iluthrs_) - call p%precv(ilev_)%set(what,val,info) - case(mld_aggr_omega_val_,mld_aggr_thresh_) - call p%precv(ilev_)%set(what,val,info) - case default - write(0,*) name,': Error: invalid WHAT' - info = -2 - end select - endif + call p%precv(ilev_)%set(what,val,info) else if (.not.present(ilev)) then ! @@ -841,26 +817,15 @@ subroutine mld_cprecsetr(p,what,val,info,ilev) ! select case(what) - case(mld_sub_iluthrs_) - do ilev_=1,nlev_ - call p%precv(ilev_)%set(what,val,info) - end do - case(mld_coarse_iluthrs_) ilev_=nlev_ call p%precv(ilev_)%set(mld_sub_iluthrs_,val,info) - case(mld_aggr_omega_val_) - do ilev_=2,nlev_ - call p%precv(ilev_)%set(what,val,info) - end do - case(mld_aggr_thresh_) - do ilev_=2,nlev_ + case default + + do ilev_=1,nlev_ call p%precv(ilev_)%set(what,val,info) end do - case default - write(0,*) name,': Error: invalid WHAT' - info = -2 end select endif diff --git a/mlprec/mld_dprecset.F90 b/mlprec/mld_dprecset.F90 index d0a4d897..cec48d76 100644 --- a/mlprec/mld_dprecset.F90 +++ b/mlprec/mld_dprecset.F90 @@ -149,8 +149,7 @@ subroutine mld_dprecseti(p,what,val,info,ilev) call p%precv(ilev_)%set(what,val,info) case default - write(0,*) name,': Error: invalid WHAT' - info = -2 + call p%precv(ilev_)%set(what,val,info) end select else if (ilev_ > 1) then @@ -226,8 +225,7 @@ subroutine mld_dprecseti(p,what,val,info,ilev) end if call p%precv(nlev_)%set(mld_sub_fillin_,val,info) case default - write(0,*) name,': Error: invalid WHAT' - info = -2 + call p%precv(ilev_)%set(what,val,info) end select endif @@ -327,8 +325,9 @@ subroutine mld_dprecseti(p,what,val,info,ilev) call p%precv(nlev_)%set(mld_sub_fillin_,val,info) end if case default - write(0,*) name,': Error: invalid WHAT' - info = -2 + do ilev_=1,nlev_ + call p%precv(ilev_)%set(what,val,info) + end do end select endif @@ -350,7 +349,7 @@ contains select type (sm => level%sm) type is (mld_d_base_smoother_type) ! do nothing - class default + class default call level%sm%free(info) if (info == 0) deallocate(level%sm) if (info == 0) allocate(mld_d_base_smoother_type ::& @@ -368,12 +367,12 @@ contains case (mld_jac_) if (allocated(level%sm)) then select type (sm => level%sm) - class is (mld_d_jac_smoother_type) - ! do nothing - class default + class is (mld_d_jac_smoother_type) + ! do nothing + class default call level%sm%free(info) if (info == 0) deallocate(level%sm) - if (info == 0) allocate(mld_d_jac_smoother_type :: & +n if (info == 0) allocate(mld_d_jac_smoother_type :: & & level%sm, stat=info) if (info == 0) allocate(mld_d_diag_solver_type :: & & level%sm%sv, stat=info) @@ -387,9 +386,9 @@ contains case (mld_bjac_) if (allocated(level%sm)) then select type (sm => level%sm) - class is (mld_d_jac_smoother_type) - ! do nothing - class default + class is (mld_d_jac_smoother_type) + ! do nothing + class default call level%sm%free(info) if (info == 0) deallocate(level%sm) if (info == 0) allocate(mld_d_jac_smoother_type ::& @@ -406,9 +405,9 @@ contains case (mld_as_) if (allocated(level%sm)) then select type (sm => level%sm) - class is (mld_d_as_smoother_type) - ! do nothing - class default + class is (mld_d_as_smoother_type) + ! do nothing + class default call level%sm%free(info) if (info == 0) deallocate(level%sm) if (info == 0) allocate(mld_d_as_smoother_type ::& @@ -445,9 +444,9 @@ contains case (mld_f_none_) if (allocated(level%sm%sv)) then select type (sv => level%sm%sv) - class is (mld_d_id_solver_type) + class is (mld_d_id_solver_type) ! do nothing - class default + class default call level%sm%sv%free(info) if (info == 0) deallocate(level%sm%sv) if (info == 0) allocate(mld_d_id_solver_type ::& @@ -459,9 +458,9 @@ contains case (mld_diag_scale_) if (allocated(level%sm%sv)) then select type (sv => level%sm%sv) - class is (mld_d_diag_solver_type) - ! do nothing - class default + class is (mld_d_diag_solver_type) + ! do nothing + class default call level%sm%sv%free(info) if (info == 0) deallocate(level%sm%sv) if (info == 0) allocate(mld_d_diag_solver_type ::& @@ -474,9 +473,9 @@ contains case (mld_ilu_n_,mld_milu_n_,mld_ilu_t_) if (allocated(level%sm%sv)) then select type (sv => level%sm%sv) - class is (mld_d_ilu_solver_type) - ! do nothing - class default + class is (mld_d_ilu_solver_type) + ! do nothing + class default call level%sm%sv%free(info) if (info == 0) deallocate(level%sm%sv) if (info == 0) allocate(mld_d_ilu_solver_type ::& @@ -489,9 +488,9 @@ contains case (mld_umf_) if (allocated(level%sm%sv)) then select type (sv => level%sm%sv) - class is (mld_d_umf_solver_type) - ! do nothing - class default + class is (mld_d_umf_solver_type) + ! do nothing + class default call level%sm%sv%free(info) if (info == 0) deallocate(level%sm%sv) if (info == 0) allocate(mld_d_umf_solver_type ::& @@ -505,9 +504,9 @@ contains case (mld_slu_) if (allocated(level%sm%sv)) then select type (sv => level%sm%sv) - class is (mld_d_slu_solver_type) - ! do nothing - class default + class is (mld_d_slu_solver_type) + ! do nothing + class default call level%sm%sv%free(info) if (info == 0) deallocate(level%sm%sv) if (info == 0) allocate(mld_d_slu_solver_type ::& @@ -831,30 +830,7 @@ subroutine mld_dprecsetr(p,what,val,info,ilev) ! if (present(ilev)) then - if (ilev_ == 1) then - ! - ! Rules for fine level are slightly different. - ! - select case(what) - case(mld_sub_iluthrs_) - call p%precv(ilev_)%set(what,val,info) - - case default - write(0,*) name,': Error: invalid WHAT' - info = -2 - end select - - else if (ilev_ > 1) then - select case(what) - case(mld_sub_iluthrs_) - call p%precv(ilev_)%set(what,val,info) - case(mld_aggr_omega_val_,mld_aggr_thresh_) - call p%precv(ilev_)%set(what,val,info) - case default - write(0,*) name,': Error: invalid WHAT' - info = -2 - end select - endif + call p%precv(ilev_)%set(what,val,info) else if (.not.present(ilev)) then ! @@ -862,26 +838,15 @@ subroutine mld_dprecsetr(p,what,val,info,ilev) ! select case(what) - case(mld_sub_iluthrs_) - do ilev_=1,nlev_ - call p%precv(ilev_)%set(what,val,info) - end do - case(mld_coarse_iluthrs_) ilev_=nlev_ call p%precv(ilev_)%set(mld_sub_iluthrs_,val,info) - case(mld_aggr_omega_val_) - do ilev_=2,nlev_ - call p%precv(ilev_)%set(what,val,info) - end do - case(mld_aggr_thresh_) - do ilev_=2,nlev_ + case default + + do ilev_=1,nlev_ call p%precv(ilev_)%set(what,val,info) end do - case default - write(0,*) name,': Error: invalid WHAT' - info = -2 end select endif diff --git a/mlprec/mld_sprecset.F90 b/mlprec/mld_sprecset.F90 index abeb0c03..963c0e8d 100644 --- a/mlprec/mld_sprecset.F90 +++ b/mlprec/mld_sprecset.F90 @@ -146,8 +146,7 @@ subroutine mld_sprecseti(p,what,val,info,ilev) call p%precv(ilev_)%set(what,val,info) case default - write(0,*) name,': Error: invalid WHAT' - info = -2 + call p%precv(ilev_)%set(what,val,info) end select else if (ilev_ > 1) then @@ -221,8 +220,7 @@ subroutine mld_sprecseti(p,what,val,info,ilev) end if call p%precv(nlev_)%set(mld_sub_fillin_,val,info) case default - write(0,*) name,': Error: invalid WHAT' - info = -2 + call p%precv(ilev_)%set(what,val,info) end select endif @@ -320,8 +318,9 @@ subroutine mld_sprecseti(p,what,val,info,ilev) call p%precv(nlev_)%set(mld_sub_fillin_,val,info) end if case default - write(0,*) name,': Error: invalid WHAT' - info = -2 + do ilev_=1,nlev_ + call p%precv(ilev_)%set(what,val,info) + end do end select endif @@ -811,30 +810,7 @@ subroutine mld_sprecsetr(p,what,val,info,ilev) ! if (present(ilev)) then - if (ilev_ == 1) then - ! - ! Rules for fine level are slightly different. - ! - select case(what) - case(mld_sub_iluthrs_) - call p%precv(ilev_)%set(what,val,info) - - case default - write(0,*) name,': Error: invalid WHAT' - info = -2 - end select - - else if (ilev_ > 1) then - select case(what) - case(mld_sub_iluthrs_) - call p%precv(ilev_)%set(what,val,info) - case(mld_aggr_omega_val_,mld_aggr_thresh_) - call p%precv(ilev_)%set(what,val,info) - case default - write(0,*) name,': Error: invalid WHAT' - info = -2 - end select - endif + call p%precv(ilev_)%set(what,val,info) else if (.not.present(ilev)) then ! @@ -842,26 +818,15 @@ subroutine mld_sprecsetr(p,what,val,info,ilev) ! select case(what) - case(mld_sub_iluthrs_) - do ilev_=1,nlev_ - call p%precv(ilev_)%set(what,val,info) - end do - case(mld_coarse_iluthrs_) ilev_=nlev_ call p%precv(ilev_)%set(mld_sub_iluthrs_,val,info) - case(mld_aggr_omega_val_) - do ilev_=2,nlev_ - call p%precv(ilev_)%set(what,val,info) - end do - case(mld_aggr_thresh_) - do ilev_=2,nlev_ + case default + + do ilev_=1,nlev_ call p%precv(ilev_)%set(what,val,info) end do - case default - write(0,*) name,': Error: invalid WHAT' - info = -2 end select endif diff --git a/mlprec/mld_zprecset.F90 b/mlprec/mld_zprecset.F90 index 5fb377e8..8386079c 100644 --- a/mlprec/mld_zprecset.F90 +++ b/mlprec/mld_zprecset.F90 @@ -150,8 +150,7 @@ subroutine mld_zprecseti(p,what,val,info,ilev) call p%precv(ilev_)%set(what,val,info) case default - write(0,*) name,': Error: invalid WHAT' - info = -2 + call p%precv(ilev_)%set(what,val,info) end select else if (ilev_ > 1) then @@ -227,8 +226,7 @@ subroutine mld_zprecseti(p,what,val,info,ilev) end if call p%precv(nlev_)%set(mld_sub_fillin_,val,info) case default - write(0,*) name,': Error: invalid WHAT' - info = -2 + call p%precv(ilev_)%set(what,val,info) end select endif @@ -328,8 +326,9 @@ subroutine mld_zprecseti(p,what,val,info,ilev) call p%precv(nlev_)%set(mld_sub_fillin_,val,info) end if case default - write(0,*) name,': Error: invalid WHAT' - info = -2 + do ilev_=1,nlev_ + call p%precv(ilev_)%set(what,val,info) + end do end select endif @@ -835,30 +834,7 @@ subroutine mld_zprecsetr(p,what,val,info,ilev) ! if (present(ilev)) then - if (ilev_ == 1) then - ! - ! Rules for fine level are slightly different. - ! - select case(what) - case(mld_sub_iluthrs_) - call p%precv(ilev_)%set(what,val,info) - - case default - write(0,*) name,': Error: invalid WHAT' - info = -2 - end select - - else if (ilev_ > 1) then - select case(what) - case(mld_sub_iluthrs_) - call p%precv(ilev_)%set(what,val,info) - case(mld_aggr_omega_val_,mld_aggr_thresh_) - call p%precv(ilev_)%set(what,val,info) - case default - write(0,*) name,': Error: invalid WHAT' - info = -2 - end select - endif + call p%precv(ilev_)%set(what,val,info) else if (.not.present(ilev)) then ! @@ -866,26 +842,15 @@ subroutine mld_zprecsetr(p,what,val,info,ilev) ! select case(what) - case(mld_sub_iluthrs_) - do ilev_=1,nlev_ - call p%precv(ilev_)%set(what,val,info) - end do - case(mld_coarse_iluthrs_) ilev_=nlev_ call p%precv(ilev_)%set(mld_sub_iluthrs_,val,info) - case(mld_aggr_omega_val_) - do ilev_=2,nlev_ - call p%precv(ilev_)%set(what,val,info) - end do - case(mld_aggr_thresh_) - do ilev_=2,nlev_ + case default + + do ilev_=1,nlev_ call p%precv(ilev_)%set(what,val,info) end do - case default - write(0,*) name,': Error: invalid WHAT' - info = -2 end select endif diff --git a/tests/fileread/runs/dfs.inp b/tests/fileread/runs/dfs.inp index 5d4f7e5a..93b4381a 100644 --- a/tests/fileread/runs/dfs.inp +++ b/tests/fileread/runs/dfs.inp @@ -24,9 +24,9 @@ NONSMOOTHED ! Type of aggregation: SMOOTHED NONSMOOTHED DEC ! Type of aggregation: DEC MULT ! Type of multilevel correction: ADD MULT TWOSIDE ! Side of correction PRE POST TWOSIDE (ignored for ADD) -DIST ! Coarsest-level matrix distribution: DIST REPL +REPL ! Coarsest-level matrix distribution: DIST REPL BJAC ! Coarsest-level solver: JACOBI BJAC UMF SLU SLUDIST -ILU ! Coarsest-level subsolver: ILU UMF SLU SLUDIST (DSCALE for JACOBI) +UMF ! Coarsest-level subsolver: ILU UMF SLU SLUDIST (DSCALE for JACOBI) 0 ! Coarsest-level fillin P for ILU(P) and ILU(T,P) 1.d-4 ! Coarsest-level threshold T for ILU(T,P) 4 ! Number of Jacobi sweeps for BJAC/PJAC coarsest-level solver diff --git a/tests/fileread/runs/zfs.inp b/tests/fileread/runs/zfs.inp index f3a576bc..919e402b 100644 --- a/tests/fileread/runs/zfs.inp +++ b/tests/fileread/runs/zfs.inp @@ -1,12 +1,12 @@ -waveguide3D.mtx ! This matrix (and others) from: http://math.nist.gov/MatrixMarket/ or +young1c.mtx ! This matrix (and others) from: http://math.nist.gov/MatrixMarket/ or NONE ! rhs | http://www.cise.ufl.edu/research/sparse/matrices/index.html MM ! File format: MM (Matrix Market) HB (Harwell-Boeing). BICGSTAB ! Iterative method: BiCGSTAB BiCG CGS RGMRES BiCGSTABL CG CSR ! Storage format: CSR COO JAD 0 ! IPART (partition method): 0 (block) 2 (graph, with Metis) 2 ! ISTOPC -01000 ! ITMAX --1 ! ITRACE +00200 ! ITMAX +02 ! ITRACE 30 ! IRST (restart for RGMRES and BiCGSTABL) 1.d-5 ! EPS 3L-M-RAS-I-D4 ! Longer descriptive name for preconditioner (up to 20 chars) @@ -24,9 +24,9 @@ SMOOTHED ! Type of aggregation: SMOOTHED NONSMOOTHED MINENERG DEC ! Type of aggregation: DEC MULT ! Type of multilevel correction: ADD MULT POST ! Side of multiplicative correction PRE POST TWOSIDE (ignored for ADD) -DIST ! Coarsest-level matrix distribution: DIST REPL +REPL ! Coarsest-level matrix distribution: DIST REPL BJAC ! Coarsest-level solver: JACOBI BJAC UMF SLU SLUDIST -ILU ! Coarsest-level subsolver: ILU UMF SLU SLUDIST (DSCALE for JACOBI) +UMF ! Coarsest-level subsolver: ILU UMF SLU SLUDIST (DSCALE for JACOBI) 0 ! Coarsest-level fillin P for ILU(P) and ILU(T,P) 1.d-4 ! Coarsest-level threshold T for ILU(T,P) 4 ! Number of Jacobi sweeps for BJAC coarsest-level solver diff --git a/tests/fileread/zf_sample.f90 b/tests/fileread/zf_sample.f90 index 5410586a..56a1caae 100644 --- a/tests/fileread/zf_sample.f90 +++ b/tests/fileread/zf_sample.f90 @@ -279,6 +279,7 @@ program zf_sample call mld_precset(prec,mld_sub_iluthrs_, prec_choice%thr, info) end if + call psb_set_debug_level(0) ! building the preconditioner t1 = psb_wtime() call mld_precbld(a,desc_a,prec,info)