tem_realbuffer_type Derived Type

type, public :: tem_realbuffer_type

process-wise buffer for data of type real(kind=rk)

this datatype is used to describe the exchange with a specific process, in case of explicit buffers it provides the memory for them.


Components

Type Visibility Attributes Name Initial
real(kind=rk), public, pointer :: val(:) => null()

explicit buffer for data to be transferred

type(c_ptr), public :: mem_mpi

explicit buffer in memory allocated by mpi

integer, public, allocatable :: pos(:)

position in the input vector from where to read the entries in val_real

Note

jz: in ateles we use this to specify the positions of the cell states that have to be sent.

integer, public :: nvals

number of values to exchange

Note

jz: in ateles this variable stores the number of coefficients we transfer, i.e. number of cells to transfer times number of degree of freedoms per cell times the number of scalar variables.

integer, public :: memindexed

handle for the mpi-datatype to describe the memory access, without explicit copying in the application.


Source Code

  type tem_realbuffer_type

    !> explicit buffer for data to be transferred
    real(kind=rk), pointer :: val(:) => null()

    !> explicit buffer in memory allocated by mpi
    type(c_ptr) :: mem_mpi

    !> position in the input vector from where to read the entries in
    !! val_real
    !!
    !! @note jz: in ateles we use this to specify the positions of the cell
    !!          states that have to be sent.
    integer, allocatable :: pos(:)

    !> number of values to exchange
    !!
    !! @note jz: in ateles this variable stores the number of coefficients we
    !!          transfer, i.e. number of cells to transfer times number of
    !!          degree of freedoms per cell times the number of scalar
    !!          variables.
    integer :: nvals

    !> handle for the mpi-datatype to describe the memory access,
    !! without explicit copying in the application.
    integer :: memindexed
  end type tem_realbuffer_type