QR_MUMPS
Functions/Subroutines
dqrm_attach_singletons.F90 File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine dqrm_attach_singletons (qrm_mat, scol, srow, mrperm, mcperm, nrsing, ncsing)
 This subroutine merges the results of the singletons detection into the results of the analysis phase. More...
 

Function/Subroutine Documentation

subroutine dqrm_attach_singletons ( type(dqrm_spmat_type qrm_mat,
integer, dimension(:)  scol,
integer, dimension(:)  srow,
integer, dimension(:)  mrperm,
integer, dimension(:)  mcperm,
integer  nrsing,
integer  ncsing 
)

This subroutine merges the results of the singletons detection into the results of the analysis phase.

Once the singletons are detected in the dqrm_detect_singletons routine, the matrix graph is purged, i.e., the rows and columns corresponding to the singletons are removed. The subsequent operations (column ordering, elimination tree, symboli factorization etc.) are executed on the purged graph. Thus, at some point, the results of all these operations have to be merged with what was found at the singleton detection. Specifically all the singeltons are grouped into a front (number 1) which will be recognized as its row count is set to -1. All the adata memebers are modified accordingly in this routine.

Parameters
[in,out]qrm_matThe instance of the problem where the singletons have to be attached. Only the adata member will be modified (in all its members)
[in]scolthe list of column singletons
[in]srowthe list of row singletons
[in]mrperman integer array storing the mapping to the row indices of the purged matrix. mrperm(j) = k means that column j of the purged graph corresponds to column k in the original matrix. A row permutation is later computed on the purged matrix and, thus, mrperm will be used to map this permutation back on the original matrix.
[in]mcperman integer array storing the mapping to the row indices of the purged matrix. mcperm(j) = k means that row j of the purged graph corresponds to row k in the original matrix. Because the ordering method will be executed on the purged graph, this array is necessary to map the computed ordering onto the columns of A.
[in]nrsingthe number of row singletons
[in]ncsingthe number of column singletons

Definition at line 83 of file dqrm_attach_singletons.F90.

Referenced by dqrm_analyse().