QR_MUMPS
Functions/Subroutines
qrm_attach_singletons.F90 File Reference

This file contains a routine that merges the results of the singletons detection into the results of the analysis phase. More...

Go to the source code of this file.

Functions/Subroutines

subroutine _qrm_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...
 

Detailed Description

This file contains a routine that merges the results of the singletons detection into the results of the analysis phase.

Date
2016-01-29 22:22:30 +0100 (Fri, 29 Jan 2016)
Author
abuttari
Version
1.1
Revision
2075

Definition in file qrm_attach_singletons.F90.

Function/Subroutine Documentation

subroutine _qrm_attach_singletons ( type(_qrm_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 _qrm_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 qrm_attach_singletons.F90.

Referenced by _qrm_analyse().