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~tem_leveldesc_type tem_levelDesc_type type~tem_leveldesc_type->type~tem_communication_type sendBuffer, sendBufferFromCoarser, sendBufferFromFiner, recvBuffer, recvBufferFromCoarser, recvBufferFromFiner 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_face_type tem_face_type type~tem_face_type->type~tem_leveldesc_type dimByDimDesc type~tem_face_type->type~tem_face_descriptor_type faces type~tem_aps_coupling_type tem_aps_coupling_type type~tem_aps_coupling_type->type~cpl_value_type valOnLvl type~tem_spacetime_fun_type tem_spacetime_fun_type type~tem_spacetime_fun_type->type~tem_aps_coupling_type aps_coupling

Contents

Source Code


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

integer, public :: nvals

number of values to exchange

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