tem_longbuffer_type Derived Type

type, public :: tem_longbuffer_type

process-wise buffer for data of type integer(kind=long_k)

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


Inherits

type~~tem_longbuffer_type~~InheritsGraph type~tem_longbuffer_type tem_longbuffer_type c_ptr c_ptr type~tem_longbuffer_type->c_ptr mem_mpi

Inherited by

type~~tem_longbuffer_type~~InheritedByGraph type~tem_longbuffer_type tem_longbuffer_type type~tem_communication_type tem_communication_type type~tem_communication_type->type~tem_longbuffer_type buf_long type~cpl_value_type cpl_value_type type~cpl_value_type->type~tem_communication_type recvBuffer type~tem_face_descriptor_type tem_face_descriptor_type type~tem_face_descriptor_type->type~tem_communication_type recvBuffer_state, sendBuffer_state, recvBuffer_flux, sendBuffer_flux type~tem_leveldesc_type tem_levelDesc_type type~tem_leveldesc_type->type~tem_communication_type sendBuffer, sendBufferFromCoarser, sendBufferFromFiner, recvBuffer, recvBufferFromCoarser, recvBufferFromFiner type~tem_aps_coupling_type tem_aps_coupling_type type~tem_aps_coupling_type->type~cpl_value_type valOnLvl type~tem_face_type tem_face_type type~tem_face_type->type~tem_face_descriptor_type faces type~tem_face_type->type~tem_leveldesc_type dimByDimDesc type~tem_spacetime_fun_type tem_spacetime_fun_type type~tem_spacetime_fun_type->type~tem_aps_coupling_type aps_coupling

Components

Type Visibility Attributes Name Initial
integer(kind=long_k), 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_long

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_longbuffer_type

    !> explicit buffer for data to be transferred
    integer(kind=long_k), 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_long
    !!
    !! @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_longbuffer_type