mld2p4-2:

mlprec/mld_daggrmat_nosmth_asb.F90
 tests/pdegen/ppde.f90
 tests/pdegen/runs/ppde.inp

Fixed bug: control flow in nonsmoothed aggregation assembly.
stopcriterion
Salvatore Filippone 15 years ago
parent 19b5e9bc15
commit 07c209137b

@ -160,7 +160,10 @@ subroutine mld_daggrmat_nosmth_asb(a,desc_a,ilaggr,nlaggr,p,info)
acoo1%ja(i) = ilaggr(i) acoo1%ja(i) = ilaggr(i)
end do end do
call acoo1%set_dupl(psb_dupl_add_)
call acoo1%set_nzeros(nrow) call acoo1%set_nzeros(nrow)
call acoo1%set_asb()
call acoo1%fix(info)
call acoo2%transp(acoo1) call acoo2%transp(acoo1)
call a%csclip(bcoo,info,jmax=nrow) call a%csclip(bcoo,info,jmax=nrow)
@ -222,12 +225,12 @@ subroutine mld_daggrmat_nosmth_asb(a,desc_a,ilaggr,nlaggr,p,info)
call psb_errpush(4001,name,a_err='Build ac, desc_ac') call psb_errpush(4001,name,a_err='Build ac, desc_ac')
goto 9999 goto 9999
else
info = 4001
call psb_errpush(4001,name,a_err='invalid mld_coarse_mat_')
goto 9999
end if end if
else
info = 4001
call psb_errpush(4001,name,a_err='invalid mld_coarse_mat_')
goto 9999
end if end if
call bcoo%free() call bcoo%free()

@ -145,7 +145,7 @@ program ppde
! !
! get parameters ! get parameters
! !
call get_parms(ictxt,kmethd,prectype,afmt,idim,istopc,itmax,itrace,irst) call get_parms(ictxt,kmethd,prectype,afmt,idim,istopc,itmax,itrace,irst,eps)
! !
! allocate and fill in the coefficient matrix, rhs and initial guess ! allocate and fill in the coefficient matrix, rhs and initial guess
@ -219,7 +219,6 @@ program ppde
if(iam == psb_root_) write(*,'("Calling iterative method ",a)')kmethd if(iam == psb_root_) write(*,'("Calling iterative method ",a)')kmethd
call psb_barrier(ictxt) call psb_barrier(ictxt)
t1 = psb_wtime() t1 = psb_wtime()
eps = 1.d-9
call psb_krylov(kmethd,a,prec,b,x,eps,desc_a,info,& call psb_krylov(kmethd,a,prec,b,x,eps,desc_a,info,&
& itmax=itmax,iter=iter,err=err,itrace=itrace,istop=istopc,irst=irst) & itmax=itmax,iter=iter,err=err,itrace=itrace,istop=istopc,irst=irst)
@ -278,12 +277,13 @@ contains
! !
! get iteration parameters from standard input ! get iteration parameters from standard input
! !
subroutine get_parms(ictxt,kmethd,prectype,afmt,idim,istopc,itmax,itrace,irst) subroutine get_parms(ictxt,kmethd,prectype,afmt,idim,istopc,itmax,itrace,irst,eps)
integer :: ictxt integer :: ictxt
type(precdata) :: prectype type(precdata) :: prectype
character(len=*) :: kmethd, afmt character(len=*) :: kmethd, afmt
integer :: idim, istopc,itmax,itrace,irst integer :: idim, istopc,itmax,itrace,irst
integer :: np, iam, info integer :: np, iam, info
real(psb_dpk_) :: eps
character(len=20) :: buffer character(len=20) :: buffer
call psb_info(ictxt, iam, np) call psb_info(ictxt, iam, np)
@ -329,6 +329,7 @@ contains
call psb_bcast(ictxt,itmax) call psb_bcast(ictxt,itmax)
call psb_bcast(ictxt,itrace) call psb_bcast(ictxt,itrace)
call psb_bcast(ictxt,irst) call psb_bcast(ictxt,irst)
call psb_bcast(ictxt,eps)
call psb_bcast(ictxt,prectype%descr) ! verbose description of the prec call psb_bcast(ictxt,prectype%descr) ! verbose description of the prec

@ -5,8 +5,8 @@ CSR ! Storage format CSR COO JAD
00100 ! ITMAX 00100 ! ITMAX
01 ! ITRACE 01 ! ITRACE
30 ! IRST (restart for RGMRES and BiCGSTABL) 30 ! IRST (restart for RGMRES and BiCGSTABL)
1.d-6 ! EPS 1.d-7 ! EPS
2L-M-RAS-I-D4 ! Longer descriptive name for preconditioner (up to 20 chars) 3L-M-RAS-I-D4 ! Longer descriptive name for preconditioner (up to 20 chars)
ML ! Preconditioner NONE DIAG BJAC AS ML ML ! Preconditioner NONE DIAG BJAC AS ML
1 ! Number of overlap layers for AS preconditioner at finest level 1 ! Number of overlap layers for AS preconditioner at finest level
HALO ! Restriction operator NONE HALO HALO ! Restriction operator NONE HALO
@ -14,15 +14,15 @@ NONE ! Prolongation operator NONE SUM AVG
ILU ! Subdomain solver ILU MILU ILUT UMF SLU ILU ! Subdomain solver ILU MILU ILUT UMF SLU
1 ! Level-set N for ILU(N) 1 ! Level-set N for ILU(N)
1.d-4 ! Threshold T for ILU(T,P) 1.d-4 ! Threshold T for ILU(T,P)
2 ! Number of levels in a multilevel preconditioner 3 ! Number of levels in a multilevel preconditioner
SMOOTHED ! Kind of aggregation: SMOOTHED, NONSMOOTHED, MINENERGY NONSMOOTHED ! Kind of aggregation: SMOOTHED, NONSMOOTHED, MINENERGY
DEC ! Type of aggregation DEC SYMDEC GLB DEC ! Type of aggregation DEC SYMDEC GLB
MULT ! Type of multilevel correction: ADD MULT MULT ! Type of multilevel correction: ADD MULT
POST ! Side of multiplicative correction PRE POST TWOSIDE (ignored for ADD) TWOSIDE ! Side of mult. correction PRE POST TWOSIDE (ignored for ADD)
DIST ! Coarse level: matrix distribution DIST REPL REPL ! Coarse level: matrix distribution DIST REPL
BJAC ! Coarse level: solver BJAC UMF SLU SLUDIST BJAC ! Coarse level: solver BJAC UMF SLU SLUDIST
ILU ! Coarse level: subsolver ILU UMF SLU SLUDIST ILUT ! Coarse level: subsolver ILU UMF SLU SLUDIST
0 ! Coarse level: Level-set N for ILU(N) 1 ! Coarse level: Level-set N for ILU(N)
1.d-4 ! Coarse level: Threshold T for ILU(T,P) 1.d-4 ! Coarse level: Threshold T for ILU(T,P)
4 ! Coarse level: Number of Jacobi sweeps 4 ! Coarse level: Number of Jacobi sweeps
0.10d0 ! Smoother Aggregation Threshold: >= 0.0 0.10d0 ! Smoother Aggregation Threshold: >= 0.0

Loading…
Cancel
Save