QR_MUMPS
 All Classes Files Functions Variables Enumerations Enumerator Pages
Functions/Subroutines
dqrm_analyse.F90 File Reference

Go to the source code of this file.

Functions/Subroutines

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

Function/Subroutine Documentation

subroutine dqrm_analyse ( type(dqrm_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 64 of file dqrm_analyse.F90.

References dqrm_attach_singletons(), dqrm_spmat_mod::dqrm_check_spmat(), dqrm_compute_graph(), dqrm_detect_singletons(), dqrm_do_ordering(), dqrm_elim_tree(), dqrm_rowcount(), dqrm_rowperm(), dqrm_symbolic(), i, qrm_adata_mod::qrm_adata_destroy(), qrm_adata_mod::qrm_adata_move(), 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 dqrm_c_interface::dqrm_analyse_c(), dqrm_least_squares1d(), dqrm_least_squares2d(), dqrm_min_norm1d(), and dqrm_min_norm2d().