Nek5000
SEM for Incompressible NS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Classes | Macros | Functions
crystal.c File Reference
#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 dependency graph for crystal.c:

Go to the source code of this file.

Classes

struct  crystal
 

Macros

#define crystal_init   PREFIXED_NAME(crystal_init )
 
#define crystal_free   PREFIXED_NAME(crystal_free )
 
#define crystal_router   PREFIXED_NAME(crystal_router)
 

Functions

void crystal_init (struct crystal *p, const struct comm *comm)
 
void crystal_free (struct crystal *p)
 
static void uintcpy (uint *dst, const uint *src, uint n)
 
static uint crystal_move (struct crystal *p, uint cutoff, int send_hi)
 
static void crystal_exchange (struct crystal *p, uint send_n, uint targ, int recvn, int tag)
 
void crystal_router (struct crystal *p)
 

Macro Definition Documentation

#define crystal_free   PREFIXED_NAME(crystal_free )

Definition at line 47 of file crystal.c.

Referenced by findpts_free(), gs_setup_aux(), gs_unique(), and main().

#define crystal_init   PREFIXED_NAME(crystal_init )

Definition at line 46 of file crystal.c.

Referenced by findpts_setup(), gs_setup_aux(), gs_unique(), and main().

#define crystal_router   PREFIXED_NAME(crystal_router)

Definition at line 48 of file crystal.c.

Referenced by main(), and sarray_transfer_many().

Function Documentation

static void crystal_exchange ( struct crystal p,
uint  send_n,
uint  targ,
int  recvn,
int  tag 
)
static

Definition at line 98 of file crystal.c.

References buffer_reserve, crystal::comm, comm_irecv(), comm_isend(), comm_wait(), crystal::data, comm::id, array::n, array::ptr, sum(), uint, and crystal::work.

Referenced by crystal_router().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void crystal_free ( struct crystal p)

Definition at line 62 of file crystal.c.

References buffer_free, crystal::comm, comm_free(), crystal::data, and crystal::work.

+ Here is the call graph for this function:

void crystal_init ( struct crystal p,
const struct comm comm 
)

Definition at line 55 of file crystal.c.

References buffer_init, crystal::comm, comm_dup, crystal::data, and crystal::work.

static uint crystal_move ( struct crystal p,
uint  cutoff,
int  send_hi 
)
static

Definition at line 75 of file crystal.c.

References buffer_reserve, crystal::data, n, array::n, array::ptr, uint, uintcpy(), and crystal::work.

Referenced by crystal_router().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void crystal_router ( struct crystal p)

Definition at line 124 of file crystal.c.

References crystal::comm, crystal_exchange(), crystal_move(), comm::id, n, comm::np, and uint.

+ Here is the call graph for this function:

static void uintcpy ( uint dst,
const uint src,
uint  n 
)
static

Definition at line 69 of file crystal.c.

References uint.

Referenced by crystal_move().

+ Here is the caller graph for this function: