dbcsr_imagedistribution_type Derived Type

type, public :: dbcsr_imagedistribution_type

Image distributions are used to map incompatible processor row and column distributions. Used to ease storage or transfer between two different-sizes sets. For example, if there are 4 real processor rows that are mapped to 8 "virtual" processor rows, then there are two images for every real processor row.


Components

Type Visibility Attributes Name Initial
type(dbcsr_distribution_obj), public :: main

the main distribution

type(array_i1d_obj), public :: row_image

distribution of matrix elements' rows into image rows

type(array_i1d_obj), public :: col_image

distribution of matrix elements' columns into image columns

integer, public :: row_decimation = -1

Number of imaged rows mapped to a real row

integer, public :: col_decimation = -1

Number of imaged columns mapped to a real column

integer, public :: row_multiplicity = -1

Number of real rows mapped to a virtual row

integer, public :: col_multiplicity = -1

Number of real columns mapped to a virtual column

type(array_i1d_obj), public :: vrow_dist
type(array_i1d_obj), public :: vcol_dist
type(array_i1d_obj), public, DIMENSION(:), POINTER :: other_vl_rows => Null()
type(array_i1d_obj), public, DIMENSION(:), POINTER :: other_vl_cols => Null()
type(array_i1d_obj), public :: global_vrow_map
type(array_i1d_obj), public :: global_vcol_map
logical, public :: has_other_vl_rows = .FALSE.
logical, public :: has_other_vl_cols = .FALSE.
logical, public :: has_global_vrow_map = .FALSE.
logical, public :: has_global_vcol_map = .FALSE.
integer, public :: id = -1
integer, public :: refcount = 0

count of references


Source Code

   TYPE dbcsr_imagedistribution_type
      !! Image distributions are used to map incompatible processor row and
      !! column distributions.
      !! Used to ease storage or transfer between two different-sizes
      !! sets. For example, if there are 4 real processor rows that are
      !! mapped to 8 "virtual" processor rows, then there are two images for
      !! every real processor row.

      TYPE(dbcsr_distribution_obj)               :: main
         !! the main distribution
      TYPE(array_i1d_obj)                        :: row_image
         !! distribution of matrix elements' rows into image  rows
      TYPE(array_i1d_obj)                        :: col_image
         !! distribution of matrix elements' columns into image columns
      INTEGER                                    :: row_decimation = -1
         !! Number of imaged rows mapped to a real row
      INTEGER                                    :: col_decimation = -1
         !! Number of imaged columns mapped to a real column
      INTEGER                                    :: row_multiplicity = -1
         !! Number of real rows mapped to a virtual row
      INTEGER                                    :: col_multiplicity = -1
         !! Number of real columns mapped to a virtual column
      TYPE(array_i1d_obj)                        :: vrow_dist
      TYPE(array_i1d_obj)                        :: vcol_dist
      TYPE(array_i1d_obj), DIMENSION(:), POINTER :: other_vl_rows => Null()
      TYPE(array_i1d_obj), DIMENSION(:), POINTER :: other_vl_cols => Null()
      TYPE(array_i1d_obj)                        :: global_vrow_map
      TYPE(array_i1d_obj)                        :: global_vcol_map
      LOGICAL                                    :: has_other_vl_rows = .FALSE.
      LOGICAL                                    :: has_other_vl_cols = .FALSE.
      LOGICAL                                    :: has_global_vrow_map = .FALSE.
      LOGICAL                                    :: has_global_vcol_map = .FALSE.
      INTEGER                                    :: id = -1
      INTEGER                                    :: refcount = 0
         !! count of references
   END TYPE dbcsr_imagedistribution_type