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

Go to the source code of this file.

Functions/Subroutines

subroutine dqrm_init_front (qrm_mat, fnum, par, work)
 This routine initializes a front. More...
 

Function/Subroutine Documentation

subroutine dqrm_init_front ( type(dqrm_spmat_type), target  qrm_mat,
integer  fnum,
logical  par,
integer, dimension(:), optional, target  work 
)

This routine initializes a front.

Front initialization consists in creating the structure of the front and all the data structures that allow the assembly of the front itself.

Assume the column permutation is:

 (/7, 3, 8, 1, 9, 5, 6, 2/)

Values from the original matrix A:

     7 3 1 5 6
   +----------
  3| a   a a a
  6| a a     a
  2|       a a

Values from child X:

     7 3 8 9 2
   +----------
  5| x x x x x
  1|   x x x x
  7|     x x x

Values from child Y:

     3 1 5
   +------ 
  4| y y y
  8|   y y
  9|     y

Final result:

     7 3 8 1 9 5 6 2
   +---------------- 
  3| a     a   a a        
  6| a a         a
  5| x x x   x     x
  1|   x x   x     x
  4|   y   y   y
  7|     x   x     x
  8|       y   y
  2|           a a
  9|           y

For a description of the following fields see dqrm_fdata_mod::dqrm_front_type

 front%stair=(/3, 5, 6, 7, 7, 9/)
 front%cols=(/7, 3, 8, 1, 9, 5, 6, 2/)
 front%rows=(/3, 6, 5, 1, 4, 7, 8, 2, 9/)
 front%colmap(/4, 8, 2, 0, 6, 7, 1, 3, 5/)
 X%rowmap=(/3, 4, 6/)
 Y%rowmap=(/5, 7, 9/)
Parameters
[in,out]qrm_matthe big problem data structure
[in]fnumthe id of the front to be activated
[in]parwhether this front will be treated by multiple threads or not. this is needed because in the case where the front belongs to a sequential subtree, it can be assembled immediatebly; otherwise, references will be computed for later assembly
[in]workoptional workspace

Definition at line 116 of file dqrm_init_front.F90.

References i, qrm_error_mod::qrm_err_act_restore(), qrm_error_mod::qrm_err_act_save(), qrm_error_mod::qrm_err_check(), qrm_ib_, and qrm_nb_.

Referenced by dqrm_activate_front(), and dqrm_do_subtree().