Added internal documentation. Take out obsolete methods.

stopcriterion
Salvatore Filippone 6 years ago
parent 3c58dfaefd
commit 73823102a2

@ -83,6 +83,9 @@
! For more details see
! M. Brezina and P. Vanek, A black-box iterative solver based on a two-level
! Schwarz method, Computing, 63 (1999), 233-263.
! P. Vanek, J. Mandel and M. Brezina, Algebraic Multigrid by Smoothed
! Aggregation for Second and Fourth Order Elliptic Problems, Computing, 56
! (1996), 179-196.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of PSBLAS-based
! parallel two-level Schwarz preconditioners, Appl. Num. Math., 57 (2007),
! 1181-1196.

@ -47,10 +47,10 @@
!
!
! Arguments:
! p - type(mld_c_onelev_type), input/output.
! The 'one-level' data structure containing the control
! parameters and (eventually) coarse matrix and prolongator/restrictors.
!
! ag - type(mld_c_dec_aggregator_type), input/output.
! The aggregator object, carrying with itself the mapping algorithm.
! parms - The auxiliary parameters object
!
! a - type(psb_cspmat_type).
! The sparse matrix structure containing the local part of the
! fine-level matrix.

@ -60,13 +60,6 @@
!
!
! Arguments:
! aggr_type - integer, input.
! The scalar used to identify the aggregation algorithm.
! theta - real, input.
! The aggregation threshold used in the aggregation algorithm.
! a - type(psb_cspmat_type), input.
! The sparse matrix structure containing the local part of
! the fine-level matrix.
! desc_a - type(psb_desc_type), input.
! The communication descriptor of the fine-level matrix.
! ilaggr - integer, dimension(:), allocatable.

@ -46,9 +46,9 @@
!
! M. Brezina and P. Vanek, A black-box iterative solver based on a
! two-level Schwarz method, Computing, 63 (1999), 233-263.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of
! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math.
! 57 (2007), 1181-1196.
! P. Vanek, J. Mandel and M. Brezina, Algebraic Multigrid by Smoothed
! Aggregation for Second and Fourth Order Elliptic Problems, Computing, 56
! (1996), 179-196.
!
! Note: upon exit
!
@ -71,7 +71,7 @@ subroutine mld_c_soc1_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
use psb_base_mod
use mld_base_prec_type
use mld_c_inner_mod!, mld_protect_name => mld_c_soc1_map_bld
use mld_c_inner_mod
implicit none

@ -70,7 +70,7 @@ subroutine mld_c_soc2_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
use psb_base_mod
use mld_base_prec_type
use mld_c_inner_mod!, mld_protect_name => mld_c_soc2_map_bld
use mld_c_inner_mod
implicit none

@ -44,15 +44,16 @@
! This routine is mainly an interface to map_bld where the real work is performed.
! It takes care of some consistency checking, and calls map_to_tprol, which is
! refactored and shared among all the aggregation methods that produce a simple
! integer mapping.
! integer mapping. It also symmetrizes the pattern of the local matrix A.
!
!
!
! Arguments:
! p - type(mld_c_onelev_type), input/output.
! The 'one-level' data structure containing the control
! parameters and (eventually) coarse matrix and prolongator/restrictors.
!
! Arguments:
! ag - type(mld_c_dec_aggregator_type), input/output.
! The aggregator object, carrying with itself the mapping algorithm.
! parms - The auxiliary parameters object
!
! a - type(psb_cspmat_type).
! The sparse matrix structure containing the local part of the
! fine-level matrix.

@ -49,7 +49,7 @@
!
! This routine builds A_C according to a "bizarre" aggregation algorithm,
! using a "naive" prolongator proposed by the authors of MLD2P4. However, this
! prolongator still requires a deep analysis and testing and its use is not
! prolongator still requires additional analysis and testing and its use is not
! recommended.
!
! The coarse-level matrix A_C is distributed among the parallel processes or

@ -59,18 +59,13 @@
! radius of D^(-1)A, to be used in the computation of omega, is provided,
! according to the value of p%parms%aggr_omega_alg, specified by the user
! through mld_cprecinit and mld_cprecset.
! 4. Minimum energy aggregation: ADD REFERENCE.
! 4. Minimum energy aggregation:
! M. Sala, R. Tuminaro: A new Petrov-Galerkin smoothed aggregation preconditioner
! for nonsymmetric linear systems, SIAM J. Sci. Comput., 31(1):143-166 (2008)
!
! On output from this routine the entries of AC, op_prol, op_restr
! are still in "global numbering" mode; this is fixed in the calling routine
! mld_c_lev_aggrmat_asb.
!
! For more details see
! M. Brezina and P. Vanek, A black-box iterative solver based on a two-level
! Schwarz method, Computing, 63 (1999), 233-263.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of PSBLAS-based
! parallel two-level Schwarz preconditioners, Appl. Num. Math., 57 (2007),
! 1181-1196.
!
! aggregator%mat_asb.
!
!
! Arguments:
@ -102,7 +97,8 @@
! The tentative prolongator on input, the computed prolongator on output
!
! op_restr - type(psb_cspmat_type), output
! The restrictor operator; normally, it is the transpose of the prolongator.
! The restrictor operator; in this particular case, it is different
! from the transpose of the prolongator.
!
! info - integer, output.
! Error code.

@ -53,7 +53,7 @@
! specified by the user through mld_cprecinit and mld_zprecset.
! On output from this routine the entries of AC, op_prol, op_restr
! are still in "global numbering" mode; this is fixed in the calling routine
! mld_c_lev_aggrmat_asb.
! aggregator%mat_asb.
!
! For details see
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of

@ -83,6 +83,9 @@
! For more details see
! M. Brezina and P. Vanek, A black-box iterative solver based on a two-level
! Schwarz method, Computing, 63 (1999), 233-263.
! P. Vanek, J. Mandel and M. Brezina, Algebraic Multigrid by Smoothed
! Aggregation for Second and Fourth Order Elliptic Problems, Computing, 56
! (1996), 179-196.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of PSBLAS-based
! parallel two-level Schwarz preconditioners, Appl. Num. Math., 57 (2007),
! 1181-1196.

@ -47,10 +47,10 @@
!
!
! Arguments:
! p - type(mld_d_onelev_type), input/output.
! The 'one-level' data structure containing the control
! parameters and (eventually) coarse matrix and prolongator/restrictors.
!
! ag - type(mld_d_dec_aggregator_type), input/output.
! The aggregator object, carrying with itself the mapping algorithm.
! parms - The auxiliary parameters object
!
! a - type(psb_dspmat_type).
! The sparse matrix structure containing the local part of the
! fine-level matrix.

@ -60,13 +60,6 @@
!
!
! Arguments:
! aggr_type - integer, input.
! The scalar used to identify the aggregation algorithm.
! theta - real, input.
! The aggregation threshold used in the aggregation algorithm.
! a - type(psb_dspmat_type), input.
! The sparse matrix structure containing the local part of
! the fine-level matrix.
! desc_a - type(psb_desc_type), input.
! The communication descriptor of the fine-level matrix.
! ilaggr - integer, dimension(:), allocatable.

@ -46,9 +46,9 @@
!
! M. Brezina and P. Vanek, A black-box iterative solver based on a
! two-level Schwarz method, Computing, 63 (1999), 233-263.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of
! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math.
! 57 (2007), 1181-1196.
! P. Vanek, J. Mandel and M. Brezina, Algebraic Multigrid by Smoothed
! Aggregation for Second and Fourth Order Elliptic Problems, Computing, 56
! (1996), 179-196.
!
! Note: upon exit
!
@ -71,7 +71,7 @@ subroutine mld_d_soc1_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
use psb_base_mod
use mld_base_prec_type
use mld_d_inner_mod!, mld_protect_name => mld_d_soc1_map_bld
use mld_d_inner_mod
implicit none

@ -70,7 +70,7 @@ subroutine mld_d_soc2_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
use psb_base_mod
use mld_base_prec_type
use mld_d_inner_mod!, mld_protect_name => mld_d_soc2_map_bld
use mld_d_inner_mod
implicit none

@ -44,15 +44,16 @@
! This routine is mainly an interface to map_bld where the real work is performed.
! It takes care of some consistency checking, and calls map_to_tprol, which is
! refactored and shared among all the aggregation methods that produce a simple
! integer mapping.
! integer mapping. It also symmetrizes the pattern of the local matrix A.
!
!
!
! Arguments:
! p - type(mld_d_onelev_type), input/output.
! The 'one-level' data structure containing the control
! parameters and (eventually) coarse matrix and prolongator/restrictors.
!
! Arguments:
! ag - type(mld_d_dec_aggregator_type), input/output.
! The aggregator object, carrying with itself the mapping algorithm.
! parms - The auxiliary parameters object
!
! a - type(psb_dspmat_type).
! The sparse matrix structure containing the local part of the
! fine-level matrix.

@ -49,7 +49,7 @@
!
! This routine builds A_C according to a "bizarre" aggregation algorithm,
! using a "naive" prolongator proposed by the authors of MLD2P4. However, this
! prolongator still requires a deep analysis and testing and its use is not
! prolongator still requires additional analysis and testing and its use is not
! recommended.
!
! The coarse-level matrix A_C is distributed among the parallel processes or

@ -59,18 +59,13 @@
! radius of D^(-1)A, to be used in the computation of omega, is provided,
! according to the value of p%parms%aggr_omega_alg, specified by the user
! through mld_dprecinit and mld_dprecset.
! 4. Minimum energy aggregation: ADD REFERENCE.
! 4. Minimum energy aggregation:
! M. Sala, R. Tuminaro: A new Petrov-Galerkin smoothed aggregation preconditioner
! for nonsymmetric linear systems, SIAM J. Sci. Comput., 31(1):143-166 (2008)
!
! On output from this routine the entries of AC, op_prol, op_restr
! are still in "global numbering" mode; this is fixed in the calling routine
! mld_d_lev_aggrmat_asb.
!
! For more details see
! M. Brezina and P. Vanek, A black-box iterative solver based on a two-level
! Schwarz method, Computing, 63 (1999), 233-263.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of PSBLAS-based
! parallel two-level Schwarz preconditioners, Appl. Num. Math., 57 (2007),
! 1181-1196.
!
! aggregator%mat_asb.
!
!
! Arguments:
@ -102,7 +97,8 @@
! The tentative prolongator on input, the computed prolongator on output
!
! op_restr - type(psb_dspmat_type), output
! The restrictor operator; normally, it is the transpose of the prolongator.
! The restrictor operator; in this particular case, it is different
! from the transpose of the prolongator.
!
! info - integer, output.
! Error code.

@ -53,7 +53,7 @@
! specified by the user through mld_dprecinit and mld_zprecset.
! On output from this routine the entries of AC, op_prol, op_restr
! are still in "global numbering" mode; this is fixed in the calling routine
! mld_d_lev_aggrmat_asb.
! aggregator%mat_asb.
!
! For details see
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of

@ -83,6 +83,9 @@
! For more details see
! M. Brezina and P. Vanek, A black-box iterative solver based on a two-level
! Schwarz method, Computing, 63 (1999), 233-263.
! P. Vanek, J. Mandel and M. Brezina, Algebraic Multigrid by Smoothed
! Aggregation for Second and Fourth Order Elliptic Problems, Computing, 56
! (1996), 179-196.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of PSBLAS-based
! parallel two-level Schwarz preconditioners, Appl. Num. Math., 57 (2007),
! 1181-1196.

@ -47,10 +47,10 @@
!
!
! Arguments:
! p - type(mld_s_onelev_type), input/output.
! The 'one-level' data structure containing the control
! parameters and (eventually) coarse matrix and prolongator/restrictors.
!
! ag - type(mld_s_dec_aggregator_type), input/output.
! The aggregator object, carrying with itself the mapping algorithm.
! parms - The auxiliary parameters object
!
! a - type(psb_sspmat_type).
! The sparse matrix structure containing the local part of the
! fine-level matrix.

@ -60,13 +60,6 @@
!
!
! Arguments:
! aggr_type - integer, input.
! The scalar used to identify the aggregation algorithm.
! theta - real, input.
! The aggregation threshold used in the aggregation algorithm.
! a - type(psb_sspmat_type), input.
! The sparse matrix structure containing the local part of
! the fine-level matrix.
! desc_a - type(psb_desc_type), input.
! The communication descriptor of the fine-level matrix.
! ilaggr - integer, dimension(:), allocatable.

@ -46,9 +46,9 @@
!
! M. Brezina and P. Vanek, A black-box iterative solver based on a
! two-level Schwarz method, Computing, 63 (1999), 233-263.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of
! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math.
! 57 (2007), 1181-1196.
! P. Vanek, J. Mandel and M. Brezina, Algebraic Multigrid by Smoothed
! Aggregation for Second and Fourth Order Elliptic Problems, Computing, 56
! (1996), 179-196.
!
! Note: upon exit
!
@ -71,7 +71,7 @@ subroutine mld_s_soc1_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
use psb_base_mod
use mld_base_prec_type
use mld_s_inner_mod!, mld_protect_name => mld_s_soc1_map_bld
use mld_s_inner_mod
implicit none

@ -70,7 +70,7 @@ subroutine mld_s_soc2_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
use psb_base_mod
use mld_base_prec_type
use mld_s_inner_mod!, mld_protect_name => mld_s_soc2_map_bld
use mld_s_inner_mod
implicit none

@ -44,15 +44,16 @@
! This routine is mainly an interface to map_bld where the real work is performed.
! It takes care of some consistency checking, and calls map_to_tprol, which is
! refactored and shared among all the aggregation methods that produce a simple
! integer mapping.
! integer mapping. It also symmetrizes the pattern of the local matrix A.
!
!
!
! Arguments:
! p - type(mld_s_onelev_type), input/output.
! The 'one-level' data structure containing the control
! parameters and (eventually) coarse matrix and prolongator/restrictors.
!
! Arguments:
! ag - type(mld_s_dec_aggregator_type), input/output.
! The aggregator object, carrying with itself the mapping algorithm.
! parms - The auxiliary parameters object
!
! a - type(psb_sspmat_type).
! The sparse matrix structure containing the local part of the
! fine-level matrix.

@ -49,7 +49,7 @@
!
! This routine builds A_C according to a "bizarre" aggregation algorithm,
! using a "naive" prolongator proposed by the authors of MLD2P4. However, this
! prolongator still requires a deep analysis and testing and its use is not
! prolongator still requires additional analysis and testing and its use is not
! recommended.
!
! The coarse-level matrix A_C is distributed among the parallel processes or

@ -59,18 +59,13 @@
! radius of D^(-1)A, to be used in the computation of omega, is provided,
! according to the value of p%parms%aggr_omega_alg, specified by the user
! through mld_sprecinit and mld_sprecset.
! 4. Minimum energy aggregation: ADD REFERENCE.
! 4. Minimum energy aggregation:
! M. Sala, R. Tuminaro: A new Petrov-Galerkin smoothed aggregation preconditioner
! for nonsymmetric linear systems, SIAM J. Sci. Comput., 31(1):143-166 (2008)
!
! On output from this routine the entries of AC, op_prol, op_restr
! are still in "global numbering" mode; this is fixed in the calling routine
! mld_s_lev_aggrmat_asb.
!
! For more details see
! M. Brezina and P. Vanek, A black-box iterative solver based on a two-level
! Schwarz method, Computing, 63 (1999), 233-263.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of PSBLAS-based
! parallel two-level Schwarz preconditioners, Appl. Num. Math., 57 (2007),
! 1181-1196.
!
! aggregator%mat_asb.
!
!
! Arguments:
@ -102,7 +97,8 @@
! The tentative prolongator on input, the computed prolongator on output
!
! op_restr - type(psb_sspmat_type), output
! The restrictor operator; normally, it is the transpose of the prolongator.
! The restrictor operator; in this particular case, it is different
! from the transpose of the prolongator.
!
! info - integer, output.
! Error code.

@ -53,7 +53,7 @@
! specified by the user through mld_sprecinit and mld_zprecset.
! On output from this routine the entries of AC, op_prol, op_restr
! are still in "global numbering" mode; this is fixed in the calling routine
! mld_s_lev_aggrmat_asb.
! aggregator%mat_asb.
!
! For details see
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of

@ -83,6 +83,9 @@
! For more details see
! M. Brezina and P. Vanek, A black-box iterative solver based on a two-level
! Schwarz method, Computing, 63 (1999), 233-263.
! P. Vanek, J. Mandel and M. Brezina, Algebraic Multigrid by Smoothed
! Aggregation for Second and Fourth Order Elliptic Problems, Computing, 56
! (1996), 179-196.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of PSBLAS-based
! parallel two-level Schwarz preconditioners, Appl. Num. Math., 57 (2007),
! 1181-1196.

@ -47,10 +47,10 @@
!
!
! Arguments:
! p - type(mld_z_onelev_type), input/output.
! The 'one-level' data structure containing the control
! parameters and (eventually) coarse matrix and prolongator/restrictors.
!
! ag - type(mld_z_dec_aggregator_type), input/output.
! The aggregator object, carrying with itself the mapping algorithm.
! parms - The auxiliary parameters object
!
! a - type(psb_zspmat_type).
! The sparse matrix structure containing the local part of the
! fine-level matrix.

@ -60,13 +60,6 @@
!
!
! Arguments:
! aggr_type - integer, input.
! The scalar used to identify the aggregation algorithm.
! theta - real, input.
! The aggregation threshold used in the aggregation algorithm.
! a - type(psb_zspmat_type), input.
! The sparse matrix structure containing the local part of
! the fine-level matrix.
! desc_a - type(psb_desc_type), input.
! The communication descriptor of the fine-level matrix.
! ilaggr - integer, dimension(:), allocatable.

@ -46,9 +46,9 @@
!
! M. Brezina and P. Vanek, A black-box iterative solver based on a
! two-level Schwarz method, Computing, 63 (1999), 233-263.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of
! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math.
! 57 (2007), 1181-1196.
! P. Vanek, J. Mandel and M. Brezina, Algebraic Multigrid by Smoothed
! Aggregation for Second and Fourth Order Elliptic Problems, Computing, 56
! (1996), 179-196.
!
! Note: upon exit
!
@ -71,7 +71,7 @@ subroutine mld_z_soc1_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
use psb_base_mod
use mld_base_prec_type
use mld_z_inner_mod!, mld_protect_name => mld_z_soc1_map_bld
use mld_z_inner_mod
implicit none

@ -70,7 +70,7 @@ subroutine mld_z_soc2_map_bld(iorder,theta,a,desc_a,nlaggr,ilaggr,info)
use psb_base_mod
use mld_base_prec_type
use mld_z_inner_mod!, mld_protect_name => mld_z_soc2_map_bld
use mld_z_inner_mod
implicit none

@ -44,15 +44,16 @@
! This routine is mainly an interface to map_bld where the real work is performed.
! It takes care of some consistency checking, and calls map_to_tprol, which is
! refactored and shared among all the aggregation methods that produce a simple
! integer mapping.
! integer mapping. It also symmetrizes the pattern of the local matrix A.
!
!
!
! Arguments:
! p - type(mld_z_onelev_type), input/output.
! The 'one-level' data structure containing the control
! parameters and (eventually) coarse matrix and prolongator/restrictors.
!
! Arguments:
! ag - type(mld_z_dec_aggregator_type), input/output.
! The aggregator object, carrying with itself the mapping algorithm.
! parms - The auxiliary parameters object
!
! a - type(psb_zspmat_type).
! The sparse matrix structure containing the local part of the
! fine-level matrix.

@ -49,7 +49,7 @@
!
! This routine builds A_C according to a "bizarre" aggregation algorithm,
! using a "naive" prolongator proposed by the authors of MLD2P4. However, this
! prolongator still requires a deep analysis and testing and its use is not
! prolongator still requires additional analysis and testing and its use is not
! recommended.
!
! The coarse-level matrix A_C is distributed among the parallel processes or

@ -59,18 +59,13 @@
! radius of D^(-1)A, to be used in the computation of omega, is provided,
! according to the value of p%parms%aggr_omega_alg, specified by the user
! through mld_zprecinit and mld_zprecset.
! 4. Minimum energy aggregation: ADD REFERENCE.
! 4. Minimum energy aggregation:
! M. Sala, R. Tuminaro: A new Petrov-Galerkin smoothed aggregation preconditioner
! for nonsymmetric linear systems, SIAM J. Sci. Comput., 31(1):143-166 (2008)
!
! On output from this routine the entries of AC, op_prol, op_restr
! are still in "global numbering" mode; this is fixed in the calling routine
! mld_z_lev_aggrmat_asb.
!
! For more details see
! M. Brezina and P. Vanek, A black-box iterative solver based on a two-level
! Schwarz method, Computing, 63 (1999), 233-263.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of PSBLAS-based
! parallel two-level Schwarz preconditioners, Appl. Num. Math., 57 (2007),
! 1181-1196.
!
! aggregator%mat_asb.
!
!
! Arguments:
@ -102,7 +97,8 @@
! The tentative prolongator on input, the computed prolongator on output
!
! op_restr - type(psb_zspmat_type), output
! The restrictor operator; normally, it is the transpose of the prolongator.
! The restrictor operator; in this particular case, it is different
! from the transpose of the prolongator.
!
! info - integer, output.
! Error code.

@ -53,7 +53,7 @@
! specified by the user through mld_zprecinit and mld_zprecset.
! On output from this routine the entries of AC, op_prol, op_restr
! are still in "global numbering" mode; this is fixed in the calling routine
! mld_z_lev_aggrmat_asb.
! aggregator%mat_asb.
!
! For details see
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of

@ -34,59 +34,45 @@
! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
! POSSIBILITY OF SUCH DAMAGE.
!
!
!
!
! The aggregator object hosts the aggregation method for building
! the multilevel hierarchy.
!
! Basic (decoupled) aggregation algorithm. Based on the ideas in
! M. Brezina and P. Vanek, A black-box iterative solver based on a
! two-level Schwarz method, Computing, 63 (1999), 233-263.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of
! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math.
! 57 (2007), 1181-1196.
! P. Vanek, J. Mandel and M. Brezina, Algebraic Multigrid by Smoothed
! Aggregation for Second and Fourth Order Elliptic Problems, Computing, 56
! (1996), 179-196.
!
module mld_c_dec_aggregator_mod
use mld_c_base_aggregator_mod
!
! sm - class(mld_T_base_smoother_type), allocatable
! The current level preconditioner (aka smoother).
! parms - type(mld_RTml_parms)
! The parameters defining the multilevel strategy.
! ac - The local part of the current-level matrix, built by
! coarsening the previous-level matrix.
! desc_ac - type(psb_desc_type).
! The communication descriptor associated to the matrix
! stored in ac.
! base_a - type(psb_Tspmat_type), pointer.
! Pointer (really a pointer!) to the local part of the current
! matrix (so we have a unified treatment of residuals).
! We need this to avoid passing explicitly the current matrix
! to the routine which applies the preconditioner.
! base_desc - type(psb_desc_type), pointer.
! Pointer to the communication descriptor associated to the
! matrix pointed by base_a.
! map - Stores the maps (restriction and prolongation) between the
! vector spaces associated to the index spaces of the previous
! and current levels.
!
! Methods:
! Most methods follow the encapsulation hierarchy: they take whatever action
! is appropriate for the current object, then call the corresponding method for
! the contained object.
! As an example: the descr() method prints out a description of the
! level. It starts by invoking the descr() method of the parms object,
! then calls the descr() method of the smoother object.
!
! descr - Prints a description of the object.
! default - Set default values
! dump - Dump to file object contents
! set - Sets various parameters; when a request is unknown
! it is passed to the smoother object for further processing.
! check - Sanity checks.
! sizeof - Total memory occupation in bytes
! get_nzeros - Number of nonzeros
!> \namespace mld_c_dec_aggregator_mod \class mld_c_dec_aggregator_type
!! \extends mld_c_base_aggregator_mod::mld_c_base_aggregator_type
!!
!! type, extends(mld_c_base_aggregator_type) :: mld_c_dec_aggregator_type
!! procedure(mld_c_map_bld), nopass, pointer :: map_bld => null()
!! end type
!!
!! This is the simplest aggregation method: starting from the
!! strength-of-connection measure for defining the aggregation
!! presented in
!!
!! M. Brezina and P. Vanek, A black-box iterative solver based on a
!! two-level Schwarz method, Computing, 63 (1999), 233-263.
!! P. Vanek, J. Mandel and M. Brezina, Algebraic Multigrid by Smoothed
!! Aggregation for Second and Fourth Order Elliptic Problems, Computing, 56
!! (1996), 179-196.
!!
!! it achieves parallelization by simply acting on the local matrix,
!! i.e. by "decoupling" the subdomains.
!! The data structure hosts a "map_bld" function pointer which allows to
!! choose other ways to measure "strength-of-connection", of which the
!! Vanek-Brezina-Mandel is the default. More details are available in
!!
!! P. D'Ambra, D. di Serafino and S. Filippone, On the development of
!! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math.
!! 57 (2007), 1181-1196.
!!
!! The map_bld method is used inside the implementation of build_tprol
!!
!
!
type, extends(mld_c_base_aggregator_type) :: mld_c_dec_aggregator_type

@ -37,59 +37,20 @@
!
!
!
! The aggregator object hosts the aggregation method for building
! the multilevel hierarchy. This version only differs from the
! basic decoupled aggregation algorithm because it works on (the
! pattern of) A+A^T instead of A.
! Locally symmetrized (decoupled) aggregation algorithm.
! This version differs from the basic decoupled aggregation algorithm
! only because it works on (the pattern of) A+A^T instead of A.
!
! M. Brezina and P. Vanek, A black-box iterative solver based on a
! two-level Schwarz method, Computing, 63 (1999), 233-263.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of
! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math.
! 57 (2007), 1181-1196.
!
module mld_c_symdec_aggregator_mod
use mld_c_dec_aggregator_mod
!
! sm - class(mld_T_base_smoother_type), allocatable
! The current level preconditioner (aka smoother).
! parms - type(mld_RTml_parms)
! The parameters defining the multilevel strategy.
! ac - The local part of the current-level matrix, built by
! coarsening the previous-level matrix.
! desc_ac - type(psb_desc_type).
! The communication descriptor associated to the matrix
! stored in ac.
! base_a - type(psb_Tspmat_type), pointer.
! Pointer (really a pointer!) to the local part of the current
! matrix (so we have a unified treatment of residuals).
! We need this to avoid passing explicitly the current matrix
! to the routine which applies the preconditioner.
! base_desc - type(psb_desc_type), pointer.
! Pointer to the communication descriptor associated to the
! matrix pointed by base_a.
! map - Stores the maps (restriction and prolongation) between the
! vector spaces associated to the index spaces of the previous
! and current levels.
!
! Methods:
! Most methods follow the encapsulation hierarchy: they take whatever action
! is appropriate for the current object, then call the corresponding method for
! the contained object.
! As an example: the descr() method prints out a description of the
! level. It starts by invoking the descr() method of the parms object,
! then calls the descr() method of the smoother object.
!
! descr - Prints a description of the object.
! default - Set default values
! dump - Dump to file object contents
! set - Sets various parameters; when a request is unknown
! it is passed to the smoother object for further processing.
! check - Sanity checks.
! sizeof - Total memory occupation in bytes
! get_nzeros - Number of nonzeros
!
!> \namespace mld_c_symdec_aggregator_mod \class mld_c_symdec_aggregator_type
!! \extends mld_c_dec_aggregator_mod::mld_c_dec_aggregator_type
!!
!! This version differs from the basic decoupled aggregation algorithm
!! only because it works on (the pattern of) A+A^T instead of A.
!!
!
type, extends(mld_c_dec_aggregator_type) :: mld_c_symdec_aggregator_type

@ -34,59 +34,45 @@
! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
! POSSIBILITY OF SUCH DAMAGE.
!
!
!
!
! The aggregator object hosts the aggregation method for building
! the multilevel hierarchy.
!
! Basic (decoupled) aggregation algorithm. Based on the ideas in
! M. Brezina and P. Vanek, A black-box iterative solver based on a
! two-level Schwarz method, Computing, 63 (1999), 233-263.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of
! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math.
! 57 (2007), 1181-1196.
! P. Vanek, J. Mandel and M. Brezina, Algebraic Multigrid by Smoothed
! Aggregation for Second and Fourth Order Elliptic Problems, Computing, 56
! (1996), 179-196.
!
module mld_d_dec_aggregator_mod
use mld_d_base_aggregator_mod
!
! sm - class(mld_T_base_smoother_type), allocatable
! The current level preconditioner (aka smoother).
! parms - type(mld_RTml_parms)
! The parameters defining the multilevel strategy.
! ac - The local part of the current-level matrix, built by
! coarsening the previous-level matrix.
! desc_ac - type(psb_desc_type).
! The communication descriptor associated to the matrix
! stored in ac.
! base_a - type(psb_Tspmat_type), pointer.
! Pointer (really a pointer!) to the local part of the current
! matrix (so we have a unified treatment of residuals).
! We need this to avoid passing explicitly the current matrix
! to the routine which applies the preconditioner.
! base_desc - type(psb_desc_type), pointer.
! Pointer to the communication descriptor associated to the
! matrix pointed by base_a.
! map - Stores the maps (restriction and prolongation) between the
! vector spaces associated to the index spaces of the previous
! and current levels.
!
! Methods:
! Most methods follow the encapsulation hierarchy: they take whatever action
! is appropriate for the current object, then call the corresponding method for
! the contained object.
! As an example: the descr() method prints out a description of the
! level. It starts by invoking the descr() method of the parms object,
! then calls the descr() method of the smoother object.
!
! descr - Prints a description of the object.
! default - Set default values
! dump - Dump to file object contents
! set - Sets various parameters; when a request is unknown
! it is passed to the smoother object for further processing.
! check - Sanity checks.
! sizeof - Total memory occupation in bytes
! get_nzeros - Number of nonzeros
!> \namespace mld_d_dec_aggregator_mod \class mld_d_dec_aggregator_type
!! \extends mld_d_base_aggregator_mod::mld_d_base_aggregator_type
!!
!! type, extends(mld_d_base_aggregator_type) :: mld_d_dec_aggregator_type
!! procedure(mld_d_map_bld), nopass, pointer :: map_bld => null()
!! end type
!!
!! This is the simplest aggregation method: starting from the
!! strength-of-connection measure for defining the aggregation
!! presented in
!!
!! M. Brezina and P. Vanek, A black-box iterative solver based on a
!! two-level Schwarz method, Computing, 63 (1999), 233-263.
!! P. Vanek, J. Mandel and M. Brezina, Algebraic Multigrid by Smoothed
!! Aggregation for Second and Fourth Order Elliptic Problems, Computing, 56
!! (1996), 179-196.
!!
!! it achieves parallelization by simply acting on the local matrix,
!! i.e. by "decoupling" the subdomains.
!! The data structure hosts a "map_bld" function pointer which allows to
!! choose other ways to measure "strength-of-connection", of which the
!! Vanek-Brezina-Mandel is the default. More details are available in
!!
!! P. D'Ambra, D. di Serafino and S. Filippone, On the development of
!! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math.
!! 57 (2007), 1181-1196.
!!
!! The map_bld method is used inside the implementation of build_tprol
!!
!
!
type, extends(mld_d_base_aggregator_type) :: mld_d_dec_aggregator_type

@ -37,59 +37,20 @@
!
!
!
! The aggregator object hosts the aggregation method for building
! the multilevel hierarchy. This version only differs from the
! basic decoupled aggregation algorithm because it works on (the
! pattern of) A+A^T instead of A.
! Locally symmetrized (decoupled) aggregation algorithm.
! This version differs from the basic decoupled aggregation algorithm
! only because it works on (the pattern of) A+A^T instead of A.
!
! M. Brezina and P. Vanek, A black-box iterative solver based on a
! two-level Schwarz method, Computing, 63 (1999), 233-263.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of
! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math.
! 57 (2007), 1181-1196.
!
module mld_d_symdec_aggregator_mod
use mld_d_dec_aggregator_mod
!
! sm - class(mld_T_base_smoother_type), allocatable
! The current level preconditioner (aka smoother).
! parms - type(mld_RTml_parms)
! The parameters defining the multilevel strategy.
! ac - The local part of the current-level matrix, built by
! coarsening the previous-level matrix.
! desc_ac - type(psb_desc_type).
! The communication descriptor associated to the matrix
! stored in ac.
! base_a - type(psb_Tspmat_type), pointer.
! Pointer (really a pointer!) to the local part of the current
! matrix (so we have a unified treatment of residuals).
! We need this to avoid passing explicitly the current matrix
! to the routine which applies the preconditioner.
! base_desc - type(psb_desc_type), pointer.
! Pointer to the communication descriptor associated to the
! matrix pointed by base_a.
! map - Stores the maps (restriction and prolongation) between the
! vector spaces associated to the index spaces of the previous
! and current levels.
!
! Methods:
! Most methods follow the encapsulation hierarchy: they take whatever action
! is appropriate for the current object, then call the corresponding method for
! the contained object.
! As an example: the descr() method prints out a description of the
! level. It starts by invoking the descr() method of the parms object,
! then calls the descr() method of the smoother object.
!
! descr - Prints a description of the object.
! default - Set default values
! dump - Dump to file object contents
! set - Sets various parameters; when a request is unknown
! it is passed to the smoother object for further processing.
! check - Sanity checks.
! sizeof - Total memory occupation in bytes
! get_nzeros - Number of nonzeros
!
!> \namespace mld_d_symdec_aggregator_mod \class mld_d_symdec_aggregator_type
!! \extends mld_d_dec_aggregator_mod::mld_d_dec_aggregator_type
!!
!! This version differs from the basic decoupled aggregation algorithm
!! only because it works on (the pattern of) A+A^T instead of A.
!!
!
type, extends(mld_d_dec_aggregator_type) :: mld_d_symdec_aggregator_type

@ -34,59 +34,45 @@
! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
! POSSIBILITY OF SUCH DAMAGE.
!
!
!
!
! The aggregator object hosts the aggregation method for building
! the multilevel hierarchy.
!
! Basic (decoupled) aggregation algorithm. Based on the ideas in
! M. Brezina and P. Vanek, A black-box iterative solver based on a
! two-level Schwarz method, Computing, 63 (1999), 233-263.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of
! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math.
! 57 (2007), 1181-1196.
! P. Vanek, J. Mandel and M. Brezina, Algebraic Multigrid by Smoothed
! Aggregation for Second and Fourth Order Elliptic Problems, Computing, 56
! (1996), 179-196.
!
module mld_s_dec_aggregator_mod
use mld_s_base_aggregator_mod
!
! sm - class(mld_T_base_smoother_type), allocatable
! The current level preconditioner (aka smoother).
! parms - type(mld_RTml_parms)
! The parameters defining the multilevel strategy.
! ac - The local part of the current-level matrix, built by
! coarsening the previous-level matrix.
! desc_ac - type(psb_desc_type).
! The communication descriptor associated to the matrix
! stored in ac.
! base_a - type(psb_Tspmat_type), pointer.
! Pointer (really a pointer!) to the local part of the current
! matrix (so we have a unified treatment of residuals).
! We need this to avoid passing explicitly the current matrix
! to the routine which applies the preconditioner.
! base_desc - type(psb_desc_type), pointer.
! Pointer to the communication descriptor associated to the
! matrix pointed by base_a.
! map - Stores the maps (restriction and prolongation) between the
! vector spaces associated to the index spaces of the previous
! and current levels.
!
! Methods:
! Most methods follow the encapsulation hierarchy: they take whatever action
! is appropriate for the current object, then call the corresponding method for
! the contained object.
! As an example: the descr() method prints out a description of the
! level. It starts by invoking the descr() method of the parms object,
! then calls the descr() method of the smoother object.
!
! descr - Prints a description of the object.
! default - Set default values
! dump - Dump to file object contents
! set - Sets various parameters; when a request is unknown
! it is passed to the smoother object for further processing.
! check - Sanity checks.
! sizeof - Total memory occupation in bytes
! get_nzeros - Number of nonzeros
!> \namespace mld_s_dec_aggregator_mod \class mld_s_dec_aggregator_type
!! \extends mld_s_base_aggregator_mod::mld_s_base_aggregator_type
!!
!! type, extends(mld_s_base_aggregator_type) :: mld_s_dec_aggregator_type
!! procedure(mld_s_map_bld), nopass, pointer :: map_bld => null()
!! end type
!!
!! This is the simplest aggregation method: starting from the
!! strength-of-connection measure for defining the aggregation
!! presented in
!!
!! M. Brezina and P. Vanek, A black-box iterative solver based on a
!! two-level Schwarz method, Computing, 63 (1999), 233-263.
!! P. Vanek, J. Mandel and M. Brezina, Algebraic Multigrid by Smoothed
!! Aggregation for Second and Fourth Order Elliptic Problems, Computing, 56
!! (1996), 179-196.
!!
!! it achieves parallelization by simply acting on the local matrix,
!! i.e. by "decoupling" the subdomains.
!! The data structure hosts a "map_bld" function pointer which allows to
!! choose other ways to measure "strength-of-connection", of which the
!! Vanek-Brezina-Mandel is the default. More details are available in
!!
!! P. D'Ambra, D. di Serafino and S. Filippone, On the development of
!! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math.
!! 57 (2007), 1181-1196.
!!
!! The map_bld method is used inside the implementation of build_tprol
!!
!
!
type, extends(mld_s_base_aggregator_type) :: mld_s_dec_aggregator_type

@ -37,59 +37,20 @@
!
!
!
! The aggregator object hosts the aggregation method for building
! the multilevel hierarchy. This version only differs from the
! basic decoupled aggregation algorithm because it works on (the
! pattern of) A+A^T instead of A.
! Locally symmetrized (decoupled) aggregation algorithm.
! This version differs from the basic decoupled aggregation algorithm
! only because it works on (the pattern of) A+A^T instead of A.
!
! M. Brezina and P. Vanek, A black-box iterative solver based on a
! two-level Schwarz method, Computing, 63 (1999), 233-263.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of
! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math.
! 57 (2007), 1181-1196.
!
module mld_s_symdec_aggregator_mod
use mld_s_dec_aggregator_mod
!
! sm - class(mld_T_base_smoother_type), allocatable
! The current level preconditioner (aka smoother).
! parms - type(mld_RTml_parms)
! The parameters defining the multilevel strategy.
! ac - The local part of the current-level matrix, built by
! coarsening the previous-level matrix.
! desc_ac - type(psb_desc_type).
! The communication descriptor associated to the matrix
! stored in ac.
! base_a - type(psb_Tspmat_type), pointer.
! Pointer (really a pointer!) to the local part of the current
! matrix (so we have a unified treatment of residuals).
! We need this to avoid passing explicitly the current matrix
! to the routine which applies the preconditioner.
! base_desc - type(psb_desc_type), pointer.
! Pointer to the communication descriptor associated to the
! matrix pointed by base_a.
! map - Stores the maps (restriction and prolongation) between the
! vector spaces associated to the index spaces of the previous
! and current levels.
!
! Methods:
! Most methods follow the encapsulation hierarchy: they take whatever action
! is appropriate for the current object, then call the corresponding method for
! the contained object.
! As an example: the descr() method prints out a description of the
! level. It starts by invoking the descr() method of the parms object,
! then calls the descr() method of the smoother object.
!
! descr - Prints a description of the object.
! default - Set default values
! dump - Dump to file object contents
! set - Sets various parameters; when a request is unknown
! it is passed to the smoother object for further processing.
! check - Sanity checks.
! sizeof - Total memory occupation in bytes
! get_nzeros - Number of nonzeros
!
!> \namespace mld_s_symdec_aggregator_mod \class mld_s_symdec_aggregator_type
!! \extends mld_s_dec_aggregator_mod::mld_s_dec_aggregator_type
!!
!! This version differs from the basic decoupled aggregation algorithm
!! only because it works on (the pattern of) A+A^T instead of A.
!!
!
type, extends(mld_s_dec_aggregator_type) :: mld_s_symdec_aggregator_type

@ -34,59 +34,45 @@
! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
! POSSIBILITY OF SUCH DAMAGE.
!
!
!
!
! The aggregator object hosts the aggregation method for building
! the multilevel hierarchy.
!
! Basic (decoupled) aggregation algorithm. Based on the ideas in
! M. Brezina and P. Vanek, A black-box iterative solver based on a
! two-level Schwarz method, Computing, 63 (1999), 233-263.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of
! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math.
! 57 (2007), 1181-1196.
! P. Vanek, J. Mandel and M. Brezina, Algebraic Multigrid by Smoothed
! Aggregation for Second and Fourth Order Elliptic Problems, Computing, 56
! (1996), 179-196.
!
module mld_z_dec_aggregator_mod
use mld_z_base_aggregator_mod
!
! sm - class(mld_T_base_smoother_type), allocatable
! The current level preconditioner (aka smoother).
! parms - type(mld_RTml_parms)
! The parameters defining the multilevel strategy.
! ac - The local part of the current-level matrix, built by
! coarsening the previous-level matrix.
! desc_ac - type(psb_desc_type).
! The communication descriptor associated to the matrix
! stored in ac.
! base_a - type(psb_Tspmat_type), pointer.
! Pointer (really a pointer!) to the local part of the current
! matrix (so we have a unified treatment of residuals).
! We need this to avoid passing explicitly the current matrix
! to the routine which applies the preconditioner.
! base_desc - type(psb_desc_type), pointer.
! Pointer to the communication descriptor associated to the
! matrix pointed by base_a.
! map - Stores the maps (restriction and prolongation) between the
! vector spaces associated to the index spaces of the previous
! and current levels.
!
! Methods:
! Most methods follow the encapsulation hierarchy: they take whatever action
! is appropriate for the current object, then call the corresponding method for
! the contained object.
! As an example: the descr() method prints out a description of the
! level. It starts by invoking the descr() method of the parms object,
! then calls the descr() method of the smoother object.
!
! descr - Prints a description of the object.
! default - Set default values
! dump - Dump to file object contents
! set - Sets various parameters; when a request is unknown
! it is passed to the smoother object for further processing.
! check - Sanity checks.
! sizeof - Total memory occupation in bytes
! get_nzeros - Number of nonzeros
!> \namespace mld_z_dec_aggregator_mod \class mld_z_dec_aggregator_type
!! \extends mld_z_base_aggregator_mod::mld_z_base_aggregator_type
!!
!! type, extends(mld_z_base_aggregator_type) :: mld_z_dec_aggregator_type
!! procedure(mld_z_map_bld), nopass, pointer :: map_bld => null()
!! end type
!!
!! This is the simplest aggregation method: starting from the
!! strength-of-connection measure for defining the aggregation
!! presented in
!!
!! M. Brezina and P. Vanek, A black-box iterative solver based on a
!! two-level Schwarz method, Computing, 63 (1999), 233-263.
!! P. Vanek, J. Mandel and M. Brezina, Algebraic Multigrid by Smoothed
!! Aggregation for Second and Fourth Order Elliptic Problems, Computing, 56
!! (1996), 179-196.
!!
!! it achieves parallelization by simply acting on the local matrix,
!! i.e. by "decoupling" the subdomains.
!! The data structure hosts a "map_bld" function pointer which allows to
!! choose other ways to measure "strength-of-connection", of which the
!! Vanek-Brezina-Mandel is the default. More details are available in
!!
!! P. D'Ambra, D. di Serafino and S. Filippone, On the development of
!! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math.
!! 57 (2007), 1181-1196.
!!
!! The map_bld method is used inside the implementation of build_tprol
!!
!
!
type, extends(mld_z_base_aggregator_type) :: mld_z_dec_aggregator_type

@ -37,59 +37,20 @@
!
!
!
! The aggregator object hosts the aggregation method for building
! the multilevel hierarchy. This version only differs from the
! basic decoupled aggregation algorithm because it works on (the
! pattern of) A+A^T instead of A.
! Locally symmetrized (decoupled) aggregation algorithm.
! This version differs from the basic decoupled aggregation algorithm
! only because it works on (the pattern of) A+A^T instead of A.
!
! M. Brezina and P. Vanek, A black-box iterative solver based on a
! two-level Schwarz method, Computing, 63 (1999), 233-263.
! P. D'Ambra, D. di Serafino and S. Filippone, On the development of
! PSBLAS-based parallel two-level Schwarz preconditioners, Appl. Num. Math.
! 57 (2007), 1181-1196.
!
module mld_z_symdec_aggregator_mod
use mld_z_dec_aggregator_mod
!
! sm - class(mld_T_base_smoother_type), allocatable
! The current level preconditioner (aka smoother).
! parms - type(mld_RTml_parms)
! The parameters defining the multilevel strategy.
! ac - The local part of the current-level matrix, built by
! coarsening the previous-level matrix.
! desc_ac - type(psb_desc_type).
! The communication descriptor associated to the matrix
! stored in ac.
! base_a - type(psb_Tspmat_type), pointer.
! Pointer (really a pointer!) to the local part of the current
! matrix (so we have a unified treatment of residuals).
! We need this to avoid passing explicitly the current matrix
! to the routine which applies the preconditioner.
! base_desc - type(psb_desc_type), pointer.
! Pointer to the communication descriptor associated to the
! matrix pointed by base_a.
! map - Stores the maps (restriction and prolongation) between the
! vector spaces associated to the index spaces of the previous
! and current levels.
!
! Methods:
! Most methods follow the encapsulation hierarchy: they take whatever action
! is appropriate for the current object, then call the corresponding method for
! the contained object.
! As an example: the descr() method prints out a description of the
! level. It starts by invoking the descr() method of the parms object,
! then calls the descr() method of the smoother object.
!
! descr - Prints a description of the object.
! default - Set default values
! dump - Dump to file object contents
! set - Sets various parameters; when a request is unknown
! it is passed to the smoother object for further processing.
! check - Sanity checks.
! sizeof - Total memory occupation in bytes
! get_nzeros - Number of nonzeros
!
!> \namespace mld_z_symdec_aggregator_mod \class mld_z_symdec_aggregator_type
!! \extends mld_z_dec_aggregator_mod::mld_z_dec_aggregator_type
!!
!! This version differs from the basic decoupled aggregation algorithm
!! only because it works on (the pattern of) A+A^T instead of A.
!!
!
type, extends(mld_z_dec_aggregator_type) :: mld_z_symdec_aggregator_type

Loading…
Cancel
Save