QR_MUMPS
Functions/Subroutines
qrm_analyse.F90 File Reference

This file contains the main analysis driver. More...

Go to the source code of this file.

Functions/Subroutines

subroutine _qrm_analyse (qrm_mat, transp)
 This is the driver routine for the analysis phase. More...
 

Detailed Description

This file contains the main analysis driver.

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

Definition in file qrm_analyse.F90.

Function/Subroutine Documentation

subroutine _qrm_analyse ( type(_qrm_spmat_type), target  qrm_mat,
character, intent(in), optional  transp 
)

This is the driver routine for the analysis phase.

This routine performa a number of symbolic operations in preparation for the numerical factorization:

  1. it computes the graph of the matrix removing duplicates
  2. it detects the presence of singletons in the matrix
  3. it computes a column permutation in order to reduce the fill-in
  4. it computes the elimination tree
  5. it postorders the elimination tree
  6. it computes the rowcount
  7. it performs an amalgamation of the elimination tree (with fill)
  8. it computes a row permutation of the matrix in order to have a global staircase structure
  9. merges the singletons into the results of the above operations
  10. it compresses the results of the above operations to get a size which is proportional to the number of nodes in the amalgamated tree
  11. it doea a symbolic factorization which completely characterizes the structure of fronts etc.
  12. it computes a tree traversal order which reduces the search space for scheduling tasks in the numerical factorization
Parameters
[in,out]qrm_mata qrm_spmat_type data which contains the input matrix. On output qrm_matadata will contain the results of the analysis phase
[in]transpa character saying whether to do analysis on A or A'

Definition at line 65 of file qrm_analyse.F90.

References _qrm_attach_singletons(), _qrm_spmat_mod::_qrm_check_spmat(), _qrm_compute_graph(), _qrm_detect_singletons(), _qrm_do_ordering(), _qrm_elim_tree(), _qrm_rowcount(), _qrm_rowperm(), _qrm_symbolic(), qrm_error_mod::qrm_abort_, qrm_error_mod::qrm_err_act_restore(), qrm_error_mod::qrm_err_act_save(), qrm_error_mod::qrm_err_check(), and qrm_yes_.

Referenced by _qrm_c_interface::_qrm_analyse_c(), _qrm_least_squares1d(), _qrm_least_squares2d(), _qrm_min_norm1d(), and _qrm_min_norm2d().