QR_MUMPS
|
Go to the source code of this file.
Functions/Subroutines | |
subroutine | dqrm_rowcount (graph, parent, porder, rc) |
This subroutine computes the rowcount of the R factor. More... | |
integer function | setfind (setpath, p_leaf) |
subroutine | setunion (setpath, j, pj) |
integer function | flip (p) |
integer function | unflip (p) |
subroutine dqrm_rowcount | ( | type(dqrm_spmat_type) | graph, |
integer, dimension(:) | parent, | ||
integer, dimension(:) | porder, | ||
integer, dimension(:) | rc | ||
) |
This subroutine computes the rowcount of the R factor.
The mothod implemented here is described in:
The algorithm on Fig. 3.2 in [1] was (easily) extended with supernodes detection as described in [2].
Also, on output, the tree is modified in order to reflect the supernodal structure.
[in] | graph | the graph associated to A (or a pruned version if singleton detection was done) |
[out] | rc | the row count. rc(i)=k means that in the k-th row of R there are k nonzeroes; k=0 for all the subordinate variables. This also gives us the size of the rows of front i. |
[in,out] | porder | on input an integer array containing a postorder of the tree. On output it contains an equivalent postorder where principal variables come always before the correspondig subordinates. Other routines rely on this postorder and thus it should never be changed. |
[in,out] | parent | an integer array containing the elimination tree in input and the assembly tree on output. The meaning of parent on output is:
|
Example output:
+---+ |7 | | 6 | | 5| parent=(/ -1, 7, -4, 7, -7, -7, 0 /) +---+ / \ / \ +--+ +--+ |2 | |4 | | 1| | 3| +--+ +--+
Definition at line 105 of file dqrm_rowcount.F90.
References setfind(), and setunion().
Referenced by dqrm_analyse().
integer function dqrm_rowcount::flip | ( | integer | p | ) |
Definition at line 372 of file dqrm_rowcount.F90.
integer function dqrm_rowcount::setfind | ( | integer, dimension(:) | setpath, |
integer | p_leaf | ||
) |
Definition at line 339 of file dqrm_rowcount.F90.
Referenced by _qrm_rowcount(), and dqrm_rowcount().
subroutine dqrm_rowcount::setunion | ( | integer, dimension(:) | setpath, |
integer | j, | ||
integer | pj | ||
) |
Definition at line 364 of file dqrm_rowcount.F90.
Referenced by _qrm_rowcount(), and dqrm_rowcount().
integer function dqrm_rowcount::unflip | ( | integer | p | ) |
Definition at line 381 of file dqrm_rowcount.F90.