QR_MUMPS
 All Classes Files Functions Variables Enumerations Enumerator Pages
List of all members | Public Attributes
_qrm_fdata_mod::_qrm_front_type Type Reference

This type defines a data structure containing all the data related to a front. More...

Public Attributes

integer num =0
 the front number More...
 
integer m =0
 the number of rows in the front More...
 
integer n =0
 the number of columns in the front More...
 
integer npiv =0
 the number of pivots (fully assembled variables in the front More...
 
integer, dimension(:), allocatable rows
 the list of row indices in the front More...
 
integer, dimension(:), allocatable cols
 the list of column indices in the front More...
 
integer, dimension(:), allocatable aiptr
 The pointer to the beginning of rows of coefficients from the original matrix. More...
 
integer, dimension(:), allocatable ajcn
 The columns indices of coefficients from the original matrix. More...
 
integer anrows
 The values of coefficients from original matrix. These coefficients will be assembled into the front at the moment of its activation. More...
 
integer, dimension(:), allocatable colmap
 this integer array of size frontn contains a mapping between the front's column indices and father front's column indices, i.e. colmap(i)=k means that column i of front goes into k-th column of its parent More...
 
integer, dimension(:), allocatable rowmap
 this integer array is of size equal to the number of rows in the contribution block produced by this front and contains a mapping between the rows of the CB and the front of the parent, i.e., rowmap(i)=k means that i-th row of this contribution block goes into row k of the front of the father. More...
 
integer, dimension(:), allocatable stair
 this array of size frontn will ultimately define the staircase structure of the front. stair(i)=k means that the lowest element in column i of the front is in row k More...
 
integer, dimension(:), allocatable ptable
 a 2D array containing the front. This area will be dynamically allocated at front assembly time More...
 
integer status
 this integer holds the status of the front. The status is coded like this: More...
 
integer owner
 this field holds the id of the thread that owns the front. A thread becomes the owner of a front the moment it activates it More...
 
integer lastpnl =0
 an integer containing the index of the block-column that has been factorized last More...
 
integer nb
 the block-column sizes for this panel More...
 
integer ib
 
integer nc
 the number of block-columns in this front More...
 
integer np
 the number of block-panel to be factorized More...
 
integer ne
 the number of eliminations to be performed on the front. This basically corresponds to min(frontm,frontn) More...
 
integer(kind=8) rsize
 the number of entries in R and H in this front More...
 
integer(kind=8) hsize
 
integer(kind=omp_lock_kind) lock
 an openmp lock to prevent simultaneous access to critical data in the front More...
 

Detailed Description

This type defines a data structure containing all the data related to a front.

Definition at line 55 of file qrm_fdata_mod.F90.

Member Data Documentation

integer, dimension(:), allocatable _qrm_fdata_mod::_qrm_front_type::aiptr

The pointer to the beginning of rows of coefficients from the original matrix.

Definition at line 70 of file qrm_fdata_mod.F90.

integer, dimension(:), allocatable _qrm_fdata_mod::_qrm_front_type::ajcn

The columns indices of coefficients from the original matrix.

Definition at line 73 of file qrm_fdata_mod.F90.

integer _qrm_fdata_mod::_qrm_front_type::anrows

The values of coefficients from original matrix. These coefficients will be assembled into the front at the moment of its activation.

The initial data from the problem matrix is stored in CSR format. This

Definition at line 80 of file qrm_fdata_mod.F90.

integer, dimension(:), allocatable _qrm_fdata_mod::_qrm_front_type::colmap

this integer array of size frontn contains a mapping between the front's column indices and father front's column indices, i.e. colmap(i)=k means that column i of front goes into k-th column of its parent

Definition at line 84 of file qrm_fdata_mod.F90.

integer, dimension(:), allocatable _qrm_fdata_mod::_qrm_front_type::cols

the list of column indices in the front

Definition at line 67 of file qrm_fdata_mod.F90.

integer(kind=8) _qrm_fdata_mod::_qrm_front_type::hsize

Definition at line 156 of file qrm_fdata_mod.F90.

integer _qrm_fdata_mod::_qrm_front_type::ib

Definition at line 147 of file qrm_fdata_mod.F90.

integer _qrm_fdata_mod::_qrm_front_type::lastpnl =0

an integer containing the index of the block-column that has been factorized last

Definition at line 145 of file qrm_fdata_mod.F90.

integer(kind=omp_lock_kind) _qrm_fdata_mod::_qrm_front_type::lock

an openmp lock to prevent simultaneous access to critical data in the front

Definition at line 159 of file qrm_fdata_mod.F90.

integer _qrm_fdata_mod::_qrm_front_type::m =0

the number of rows in the front

Definition at line 59 of file qrm_fdata_mod.F90.

integer _qrm_fdata_mod::_qrm_front_type::n =0

the number of columns in the front

Definition at line 61 of file qrm_fdata_mod.F90.

integer _qrm_fdata_mod::_qrm_front_type::nb

the block-column sizes for this panel

Definition at line 147 of file qrm_fdata_mod.F90.

integer _qrm_fdata_mod::_qrm_front_type::nc

the number of block-columns in this front

Definition at line 149 of file qrm_fdata_mod.F90.

integer _qrm_fdata_mod::_qrm_front_type::ne

the number of eliminations to be performed on the front. This basically corresponds to min(frontm,frontn)

Definition at line 154 of file qrm_fdata_mod.F90.

integer _qrm_fdata_mod::_qrm_front_type::np

the number of block-panel to be factorized

Definition at line 151 of file qrm_fdata_mod.F90.

integer _qrm_fdata_mod::_qrm_front_type::npiv =0

the number of pivots (fully assembled variables in the front

Definition at line 63 of file qrm_fdata_mod.F90.

integer _qrm_fdata_mod::_qrm_front_type::num =0

the front number

Definition at line 57 of file qrm_fdata_mod.F90.

integer _qrm_fdata_mod::_qrm_front_type::owner

this field holds the id of the thread that owns the front. A thread becomes the owner of a front the moment it activates it

Definition at line 143 of file qrm_fdata_mod.F90.

integer, dimension(:), allocatable _qrm_fdata_mod::_qrm_front_type::ptable

a 2D array containing the front. This area will be dynamically allocated at front assembly time

after the front is factorized, the corresponding elemnts of R will be copied into this array after the front is factorized, the corresponding elemnts of H will be copied into this array in the case where the front is completely factorized but assembly has not yet started, memory can be saved by copying the contribution block in here are freeing the front matrix this array holds the tau values resulting from the factorization. Its size is equal to the number of eliminations done in the front (i.e., the number of columns in H) this array holds the T matrices resulting from each panel factorization. If ib is the inner blocking size, then T is (ib,n). this 2-D array will be used to gather the elements of a vaector concerned by the application of Q' or Q this integer array contains a progress table for the factorization. Each element of the table tracks the status of a block-column like this:

  • qrm_busy_: means that the column is busy. This is to prevent that multiple threads work on the same column
  • -nc: where nc is the number of contributions coming from children to this block column. This value is incremented each time a contribution is assembled into the block column until...
  • qrm_ready_: ...the column is fully assembled and it's ready to be treated
  • >0: the index of the panel wrt which the column is up to date
  • qrm_done_: nothing left to do on this column

Definition at line 127 of file qrm_fdata_mod.F90.

integer, dimension(:), allocatable _qrm_fdata_mod::_qrm_front_type::rowmap

this integer array is of size equal to the number of rows in the contribution block produced by this front and contains a mapping between the rows of the CB and the front of the parent, i.e., rowmap(i)=k means that i-th row of this contribution block goes into row k of the front of the father.

Definition at line 90 of file qrm_fdata_mod.F90.

integer, dimension(:), allocatable _qrm_fdata_mod::_qrm_front_type::rows

the list of row indices in the front

Definition at line 65 of file qrm_fdata_mod.F90.

integer(kind=8) _qrm_fdata_mod::_qrm_front_type::rsize

the number of entries in R and H in this front

Definition at line 156 of file qrm_fdata_mod.F90.

integer, dimension(:), allocatable _qrm_fdata_mod::_qrm_front_type::stair

this array of size frontn will ultimately define the staircase structure of the front. stair(i)=k means that the lowest element in column i of the front is in row k

Definition at line 94 of file qrm_fdata_mod.F90.

integer _qrm_fdata_mod::_qrm_front_type::status

this integer holds the status of the front. The status is coded like this:

  • qrm_busy_: means the front is being activated/cleared. This is mostly to prevent concurrent work of the same front
  • - k, where k is the number of children of the front. This is the initial front state before factorization starts. Each time one of its children is activated, the status is incremented by 1 until...
  • qrm_ready_: ...it reaches the "ready for activation state"
  • qrm_activable_: once the front is ready it may be pushed onto the "ready" queue in which case it becomes activable
  • qrm_active_: means that the front has been activated and thus we can start assemblying values into it
  • qrm_done_: done. The front has been factorized

Definition at line 140 of file qrm_fdata_mod.F90.


The documentation for this type was generated from the following file: