Nek5000
SEM for Incompressible NS
|
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include "c99.h"
#include "name.h"
#include "fail.h"
#include "types.h"
#include "comm.h"
#include "mem.h"
#include "crystal.h"
#include "sort.h"
Go to the source code of this file.
Macros | |
#define | sarray_transfer_many PREFIXED_NAME(sarray_transfer_many) |
#define | sarray_transfer_ PREFIXED_NAME(sarray_transfer_ ) |
#define | sarray_transfer_ext_ PREFIXED_NAME(sarray_transfer_ext_) |
#define | GET_P() memcpy(&p,row+p_off,sizeof(uint)) |
#define | COPY_ROW() |
#define | PACK_BODY() |
#define | GET_P() p=*(const uint*)((const char*)proc+proc_stride*perm[i]) |
#define | COPY_ROW() memcpy(out,row,size) |
Functions | |
static void | pack_int (buffer *const data, const unsigned row_size, const uint id, const char *const restrict input, const uint n, const unsigned size, const unsigned p_off, const uint *const restrict perm) |
static void | pack_ext (buffer *const data, const unsigned row_size, const uint id, const char *const restrict input, const uint n, const unsigned size, const uint *const restrict proc, const unsigned proc_stride, const uint *const restrict perm) |
static void | pack_more (buffer *const data, const unsigned off, const unsigned row_size, const char *const restrict input, const unsigned size, const uint *restrict perm) |
static void | unpack_more (char *restrict out, const unsigned size, const buffer *const data, const unsigned off, const unsigned row_size) |
static void | unpack_int (char *restrict out, const unsigned size, const unsigned p_off, const buffer *const data, const unsigned row_size, int set_src) |
static uint | num_rows (const buffer *const data, const unsigned row_size) |
static uint | cap_rows (buffer *const data, const unsigned row_size, const uint max) |
uint | sarray_transfer_many (struct array *const *const A, const unsigned *const size, const unsigned An, const int fixed, const int ext, const int set_src, const unsigned p_off, const uint *const restrict proc, const unsigned proc_stride, struct crystal *const cr) |
void | sarray_transfer_ (struct array *const A, const unsigned size, const unsigned p_off, const int set_src, struct crystal *const cr) |
void | sarray_transfer_ext_ (struct array *const A, const unsigned size, const uint *const proc, const unsigned proc_stride, struct crystal *const cr) |
#define COPY_ROW | ( | ) | memcpy(out,row,size) |
#define PACK_BODY | ( | ) |
Referenced by pack_ext(), and pack_int().
#define sarray_transfer_ PREFIXED_NAME(sarray_transfer_ ) |
Definition at line 14 of file sarray_transfer.c.
#define sarray_transfer_ext_ PREFIXED_NAME(sarray_transfer_ext_) |
Definition at line 15 of file sarray_transfer.c.
#define sarray_transfer_many PREFIXED_NAME(sarray_transfer_many) |
Definition at line 13 of file sarray_transfer.c.
Referenced by fcrystal_ituple_transfer(), fcrystal_tuple_transfer(), sarray_transfer_(), and sarray_transfer_ext_().
Definition at line 118 of file sarray_transfer.c.
References n, array::n, array::ptr, and uint.
Referenced by sarray_transfer_many().
Definition at line 110 of file sarray_transfer.c.
References n, array::n, array::ptr, and uint.
Referenced by sarray_transfer_many().
|
static |
Definition at line 53 of file sarray_transfer.c.
References PACK_BODY.
Referenced by sarray_transfer_many().
|
static |
Definition at line 17 of file sarray_transfer.c.
References PACK_BODY, and uint.
Referenced by sarray_transfer_many().
|
static |
Definition at line 67 of file sarray_transfer.c.
References array::n, array::ptr, restrict, and uint.
Referenced by sarray_transfer_many().
void sarray_transfer_ | ( | struct array *const | A, |
const unsigned | size, | ||
const unsigned | p_off, | ||
const int | set_src, | ||
struct crystal *const | cr | ||
) |
Definition at line 183 of file sarray_transfer.c.
References array::ptr, sarray_transfer_many, and uint.
void sarray_transfer_ext_ | ( | struct array *const | A, |
const unsigned | size, | ||
const uint *const | proc, | ||
const unsigned | proc_stride, | ||
struct crystal *const | cr | ||
) |
Definition at line 191 of file sarray_transfer.c.
References sarray_transfer_many.
uint sarray_transfer_many | ( | struct array *const *const | A, |
const unsigned *const | size, | ||
const unsigned | An, | ||
const int | fixed, | ||
const int | ext, | ||
const int | set_src, | ||
const unsigned | p_off, | ||
const uint *const restrict | proc, | ||
const unsigned | proc_stride, | ||
struct crystal *const | cr | ||
) |
Definition at line 137 of file sarray_transfer.c.
References array_reserve_(), cap_rows(), crystal::comm, crystal_router, crystal::data, i, comm::id, dbl_range::max, array::max, n, array::n, num_rows(), pack_ext(), pack_int(), pack_more(), array::ptr, sortp(), uint, unpack_int(), unpack_more(), and crystal::work.
|
static |
Definition at line 92 of file sarray_transfer.c.
References array::n, p, array::ptr, restrict, and uint.
Referenced by sarray_transfer_many().
|
static |
Definition at line 80 of file sarray_transfer.c.
References array::n, array::ptr, restrict, and uint.
Referenced by sarray_transfer_many().