MLPREC: merged changes from Daniela of 2008/01/18, minor doc fixes.

stopcriterion
Salvatore Filippone 17 years ago
parent 7b3e12b296
commit 5a0956030d

@ -120,7 +120,7 @@ subroutine mld_das_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
call mld_bjac_aply(alpha,prec,x,beta,y,desc_data,trans_,work,info)
if(info /= 0) then
info=4010
ch_err='psb_bjacaply'
ch_err='psb_bjac_aply'
goto 9999
end if

@ -39,20 +39,19 @@
! Subroutine: mld_dbaseprc_bld
! Version: real
!
! This routine builds the 'base preconditioner' corresponding to a certain level
! of a multilevel preconditioner, according to the requirements made by the
! user through mld_dprecinit and mld_dprecset (for details on the preconditioner
! data structure see its description in mld_prec_type.f90).
! This routine builds a 'base preconditioner' related to a matrix A.
! In a multilevel framework, it is called by mld_mlprec_bld to build the
! base preconditioner at each level.
!
! The level at which the base preconditioner is built is identified in the
! call to mld_dbaseprec_bld made by mld_dprec_bld. For one-level preconditioners,
! the 'base preconditioner' is the preconditioner itself.
! Details on the base preconditioner to be built are stored in the iprcparm
! field of the preconditioner data structure (for a description of this
! structure see mld_prec_type.f90).
!
!
! Arguments:
! a - type(psb_dspmat_type).
! The sparse matrix structure containing the local part of the
! matrix to be preconditioned.
! matrix A to be preconditioned.
! desc_a - type(psb_desc_type), input.
! The communication descriptor of a.
! p - type(mld_dbaseprec_type), input/output.

@ -66,7 +66,7 @@
! preconditioner). Here K^(-1) denotes the iteration matrix of the
! block-Jacobi solver, op(K^(-1)) = K^(-1), alpha = 1 and beta = 0.
!
! 3. Solution, through the LU factorization, of a linear system
! 3. Solution, through the LU factorization, of a linear system
!
! A*Y = X,
!
@ -77,7 +77,7 @@
! a linear system
! A*Y = X,
!
! replicated on the processes. Here K = L*U = A or K = L*U ~ A, op(K^(-1)) =
! replicated on the processes. Here K = L*U = A or K = L*U ~ A, op(K^(-1)) =
! K^(-1), alpha = 1 and beta = 0.
!
! The block-Jacobi preconditioner or solver and the L and U factors of the LU

@ -40,7 +40,9 @@
! Version: real
!
! This routine builds the base preconditioner corresponding to the current
! level of the multilevel preconditioner.
! level of the multilevel preconditioner. The routine first builds the
! (coarse) matrix associated to the current level from the (fine) matrix
! associated to the previous level, then builds the related base preconditioner.
!
!
! Arguments:

@ -236,7 +236,7 @@ module mld_prec_type
! Legal values for entry: mld_sub_ren_
!
integer, parameter :: mld_renum_none_=0, mld_renum_glb_=1, mld_renum_gps_=2
! For the time being we are disabling GPS renumbering...
! For the time being we are disabling GPS renumbering.
integer, parameter :: mld_max_renum_=1
!
! Legal values for entry: mld_ml_type_

@ -113,18 +113,21 @@ subroutine mld_zas_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
! Additive Schwarz preconditioner
!
if (prec%iprcparm(mld_n_ovr_)==0) then
if ((prec%iprcparm(mld_n_ovr_)==0).or.(np==1)) then
!
! shortcut: this fixes performance for RAS(0) == BJA
! Shortcut: this fixes performance for RAS(0) == BJA
!
call mld_bjac_aply(alpha,prec,x,beta,y,desc_data,trans_,work,info)
if(info /= 0) then
info=4010
ch_err='psb_bjacaply'
ch_err='psb_bjac_aply'
goto 9999
end if
else
!
! Overlap > 0
!
n_row = psb_cd_get_local_rows(prec%desc_data)
n_col = psb_cd_get_local_cols(prec%desc_data)
@ -248,7 +251,6 @@ subroutine mld_zas_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
end select
case('T','C')
!
! With transpose, we have to do it here
!
@ -261,7 +263,7 @@ subroutine mld_zas_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
case(psb_sum_)
!
! Transpose of sum is halo
! The transpose of sum is halo
!
call psb_halo(tx,prec%desc_data,info,work=aux,data=psb_comm_ext_)
if(info /=0) then
@ -295,7 +297,6 @@ subroutine mld_zas_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
goto 9999
end select
!
! If required, reorder tx according to the row/column permutation of the
! local extended matrix, stored into the permutation vector prec%perm

@ -39,20 +39,19 @@
! Subroutine: mld_zbaseprc_bld
! Version: complex
!
! This routine builds the 'base preconditioner' corresponding to a certain level
! of a multilevel preconditioner, according to the requirements made by the
! user through mld_dprecinit and mld_dprecset (for details on the preconditioner
! data structure see its description in mld_prec_type.f90).
! This routine builds a 'base preconditioner' related to a matrix A.
! In a multilevel framework, it is called by mld_mlprec_bld to build the
! base preconditioner at each level.
!
! The level at which the base preconditioner is built is identified in the
! call to mld_dbaseprec_bld made by mld_dprec_bld. For one-level preconditioners,
! the 'base preconditioner' is the preconditioner itself.
! Details on the base preconditioner to be built are stored in the iprcparm
! field of the preconditioner data structure (for a description of this
! structure see mld_prec_type.f90).
!
!
! Arguments:
! a - type(psb_zspmat_type).
! The sparse matrix structure containing the local part of the
! matrix to be preconditioned.
! matrix A to be preconditioned.
! desc_a - type(psb_desc_type), input.
! The communication descriptor of a.
! p - type(mld_zbaseprec_type), input/output.

@ -66,7 +66,7 @@
! preconditioner). Here K^(-1) denotes the iteration matrix of the
! block-Jacobi solver, op(K^(-1)) = K^(-1), alpha = 1 and beta = 0.
!
! 3. Solution, through the LU factorization, of a linear system
! 3. Solution, through the LU factorization, of a linear system
!
! A*Y = X,
!
@ -77,7 +77,7 @@
! a linear system
! A*Y = X,
!
! replicated on the processes. Here K = L*U = A or K = L*U ~ A, op(K^(-1)) =
! replicated on the processes. Here K = L*U = A or K = L*U ~ A, op(K^(-1)) =
! K^(-1), alpha = 1 and beta = 0.
!
! The block-Jacobi preconditioner or solver and the L and U factors of the LU

@ -40,7 +40,9 @@
! Version: complex
!
! This routine builds the base preconditioner corresponding to the current
! level of the multilevel preconditioner.
! level of the multilevel preconditioner. The routine first builds the
! (coarse) matrix associated to the current level from the (fine) matrix
! associated to the previous level, then builds the related base preconditioner.
!
!
! Arguments:

Loading…
Cancel
Save