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) call mld_bjac_aply(alpha,prec,x,beta,y,desc_data,trans_,work,info)
if(info /= 0) then if(info /= 0) then
info=4010 info=4010
ch_err='psb_bjacaply' ch_err='psb_bjac_aply'
goto 9999 goto 9999
end if end if

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

@ -66,7 +66,7 @@
! preconditioner). Here K^(-1) denotes the iteration matrix of the ! preconditioner). Here K^(-1) denotes the iteration matrix of the
! block-Jacobi solver, op(K^(-1)) = K^(-1), alpha = 1 and beta = 0. ! 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, ! A*Y = X,
! !
@ -77,7 +77,7 @@
! a linear system ! a linear system
! A*Y = X, ! 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. ! K^(-1), alpha = 1 and beta = 0.
! !
! The block-Jacobi preconditioner or solver and the L and U factors of the LU ! The block-Jacobi preconditioner or solver and the L and U factors of the LU

@ -40,7 +40,9 @@
! Version: real ! Version: real
! !
! This routine builds the base preconditioner corresponding to the current ! 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: ! Arguments:

@ -236,7 +236,7 @@ module mld_prec_type
! Legal values for entry: mld_sub_ren_ ! Legal values for entry: mld_sub_ren_
! !
integer, parameter :: mld_renum_none_=0, mld_renum_glb_=1, mld_renum_gps_=2 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 integer, parameter :: mld_max_renum_=1
! !
! Legal values for entry: mld_ml_type_ ! 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 ! 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) call mld_bjac_aply(alpha,prec,x,beta,y,desc_data,trans_,work,info)
if(info /= 0) then if(info /= 0) then
info=4010 info=4010
ch_err='psb_bjacaply' ch_err='psb_bjac_aply'
goto 9999 goto 9999
end if end if
else else
!
! Overlap > 0
!
n_row = psb_cd_get_local_rows(prec%desc_data) n_row = psb_cd_get_local_rows(prec%desc_data)
n_col = psb_cd_get_local_cols(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 end select
case('T','C') case('T','C')
! !
! With transpose, we have to do it here ! 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_) 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_) call psb_halo(tx,prec%desc_data,info,work=aux,data=psb_comm_ext_)
if(info /=0) then if(info /=0) then
@ -295,7 +297,6 @@ subroutine mld_zas_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
goto 9999 goto 9999
end select end select
! !
! If required, reorder tx according to the row/column permutation of the ! If required, reorder tx according to the row/column permutation of the
! local extended matrix, stored into the permutation vector prec%perm ! local extended matrix, stored into the permutation vector prec%perm

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

@ -66,7 +66,7 @@
! preconditioner). Here K^(-1) denotes the iteration matrix of the ! preconditioner). Here K^(-1) denotes the iteration matrix of the
! block-Jacobi solver, op(K^(-1)) = K^(-1), alpha = 1 and beta = 0. ! 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, ! A*Y = X,
! !
@ -77,7 +77,7 @@
! a linear system ! a linear system
! A*Y = X, ! 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. ! K^(-1), alpha = 1 and beta = 0.
! !
! The block-Jacobi preconditioner or solver and the L and U factors of the LU ! The block-Jacobi preconditioner or solver and the L and U factors of the LU

@ -40,7 +40,9 @@
! Version: complex ! Version: complex
! !
! This routine builds the base preconditioner corresponding to the current ! 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: ! Arguments:

Loading…
Cancel
Save