QR_MUMPS
Functions/Subroutines
qrm_amalg_tree.F90 File Reference

This file contains the qrm_amalg_tree routine which performs the amalgamation of the elimination tree. More...

Go to the source code of this file.

Functions/Subroutines

subroutine qrm_amalg_tree (n, parent, rowcount, porder, nvar, min_var, fill_thresh)
 This subroutine performs amalgamation on the assembly tree. More...
 

Detailed Description

This file contains the qrm_amalg_tree routine which performs the amalgamation of the elimination tree.

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

Definition in file qrm_amalg_tree.F90.

Function/Subroutine Documentation

subroutine qrm_amalg_tree ( integer  n,
integer, dimension(:)  parent,
integer, dimension(:)  rowcount,
integer, dimension(:)  porder,
integer, dimension(:)  nvar,
integer  min_var,
real(kind(1.d0))  fill_thresh 
)

This subroutine performs amalgamation on the assembly tree.

Amalgamation is done in order to have a better exploitation of level-3 blas routines at the price of some more oprations due to added fill-in. Any node can be amalgamated to its parent depending on the amount of fill-in introduced in R. For the moment the number of flops as well as the fill-on introduced in H are not taken into account because we are not capable of predicting the structure of H.

Parameters
[in]nthe size of the tree
[in,out]parentboth in input and in out this array will contain the assembly tree The meaning of parent on output is:
  • parent(i) = j>0: i is the principal variable of a node and j is the principal variable of its father node
  • parent(i) = j=0: i is a principal variable of a root node
  • parent(i) = j<0: i is a subordinate variable inside a node whose principal variable is j.
[in,out]rowcountan integer array containing the rowcount for thr R factor. This corresponds to the front column-size
[in,out]porderthe tree postorder. Everything below strongly relies on the fact that in porder a principal variable comes always before its subordinates
[out]nvarnvar(i) will be set to the number of variables in the node whose principal variable is i
[in]min_varsupernodes containing less than min_var, will be amalgamated to their fathers (or the other way around)
[in]fill_thresha double precision value containing a threshold for performing amalgamation. If the introduced fill-in will be less than fill_thresh (in percent) then a node will be amalgamated to its father.

Definition at line 76 of file qrm_amalg_tree.F90.

References qrm_error_mod::qrm_abort_, qrm_error_mod::qrm_err_act_restore(), qrm_error_mod::qrm_err_act_save(), and qrm_error_mod::qrm_err_check().