PPL Logo

IDXL_Layout Class Reference

This class represents the layout of a user data structure in user memory. More...

#include <idxl_layout.h>

Collaboration diagram for IDXL_Layout:

Collaboration graph
[legend]

Public Member Functions

 IDXL_Layout (void)
 IDXL_Layout (const int b, const int v=1, const int i=0, const int fd=0, const int id=0)
void pup (PUP::er &p)
int userBytes (void) const
 Return the total number of bytes per user data record.
int compressedBytes (void) const
 Return the total number of bytes per compressed record.
void gather (int nNodes, const int *nodes, const void *v_in, void *v_out) const
 For each record in nodes[0.
void scatter (int nNodes, const int *nodes, const void *v_in, void *v_out) const
 For each record in nodes[0.
void scatteradd (int nNodes, const int *nodes, const void *v_in, void *v_out) const
 For each record in nodes[0.

Static Public Member Functions

static int type_size (int dataType, const char *callingRoutine="")
 Return the total number of bytes required by this IDXL_* data type.
static const char * type_name (int dataType, const char *callingRoutine="")
 Return a human-readable string describing this IDXL_* data type.

Data Fields

int type
 IDXL data type, like IDXL_INT or IDXL_DOUBLE.
int width
 Number of data fields per record.
int offset
 Bytes to jump from start of the array to first field.
int distance
 Bytes per record.
int skew
 Bytes between start of each field.

Detailed Description

This class represents the layout of a user data structure in user memory.

It's used to read and write values from the user data structure.

This structure must be layout-compatible with a 5-integer array.

Definition at line 20 of file idxl_layout.h.


Constructor & Destructor Documentation

IDXL_Layout::IDXL_Layout ( void   )  [inline]

Definition at line 28 of file idxl_layout.h.

References type, and width.

IDXL_Layout::IDXL_Layout ( const int  b,
const int  v = 1,
const int  i = 0,
const int  fd = 0,
const int  id = 0 
) [inline]

Definition at line 29 of file idxl_layout.h.

References compressedBytes(), distance, fd, offset, skew, type, type_size(), and width.

Here is the call graph for this function:


Member Function Documentation

void IDXL_Layout::pup ( PUP::er p  )  [inline]

Definition at line 36 of file idxl_layout.h.

References distance, offset, skew, type, and width.

int IDXL_Layout::type_size ( int  dataType,
const char *  callingRoutine = "" 
) [static]

Return the total number of bytes required by this IDXL_* data type.

Definition at line 16 of file idxl_layout.C.

References float, IDXL_Abort(), and int.

Referenced by compressedBytes(), IDXL_Layout(), and mesh_data().

Here is the call graph for this function:

Here is the caller graph for this function:

const char * IDXL_Layout::type_name ( int  dataType,
const char *  callingRoutine = "" 
) [static]

Return a human-readable string describing this IDXL_* data type.

Definition at line 31 of file idxl_layout.C.

int IDXL_Layout::userBytes ( void   )  const [inline]

Return the total number of bytes per user data record.

Definition at line 47 of file idxl_layout.h.

References distance.

int IDXL_Layout::compressedBytes ( void   )  const [inline]

Return the total number of bytes per compressed record.

Definition at line 52 of file idxl_layout.h.

References type, type_size(), and width.

Referenced by IDXL_Layout(), and IDXL_Comm::post().

Here is the call graph for this function:

Here is the caller graph for this function:

void IDXL_Layout::gather ( int  nIndices,
const int indices,
const void *  v_user,
void *  v_compressed 
) const

For each record in nodes[0.

.nNodes-1], copy the user data in v_in into the compressed data in v_out.

Definition at line 219 of file idxl_layout.C.

References gatherUserData(), and type.

Here is the call graph for this function:

void IDXL_Layout::scatter ( int  nIndices,
const int indices,
const void *  v_compressed,
void *  v_user 
) const

For each record in nodes[0.

For each field in the list nodes[0.

.nNodes-1], copy the compressed data from v_in into the user data in v_out.

Definition at line 247 of file idxl_layout.C.

References scatterUserData(), and type.

Referenced by IDXL_Comm::wait().

Here is the call graph for this function:

Here is the caller graph for this function:

void IDXL_Layout::scatteradd ( int  nIndices,
const int indices,
const void *  v_compressed,
void *  v_user 
) const

For each record in nodes[0.

For each field in the list nodes[0.

.nNodes-1], add the compressed data from v_in into the user data in v_out.

Definition at line 277 of file idxl_layout.C.

References scatterAddUserData(), and type.

Referenced by IDXL_Comm::wait().

Here is the call graph for this function:

Here is the caller graph for this function:


Field Documentation

Bytes to jump from start of the array to first field.

Definition at line 24 of file idxl_layout.h.

Referenced by IDXL_Layout(), and pup().

Bytes per record.

Definition at line 25 of file idxl_layout.h.

Referenced by IDXL_Layout(), pup(), and userBytes().

Bytes between start of each field.

Definition at line 26 of file idxl_layout.h.

Referenced by IDXL_Layout(), and pup().


The documentation for this class was generated from the following files:

Generated on Mon Sep 21 08:25:50 2020 for Charm++ by  doxygen 1.5.5