Block-Structured AMR Software Framework
distribution_c.h File Reference
#include <mpi.h>
#include "complex-type.h"

Go to the source code of this file.

Classes

struct  process_topology_t
 
struct  distribution_t
 

Macros

#define PENCIL   1
 

Functions

void distribution_init (MPI_Comm comm, const int n[], const int Ndims[], distribution_t *d, const int *rmap, bool debug)
 
void distribution_init_explicit (MPI_Comm comm, const int n[], int nproc_1d[], int nproc_2d_x[], int nproc_2d_y[], int nproc_2d_z[], int nproc_3d[], distribution_t *d, bool debug)
 
void Custom3D_Dims_create (const int Ndims[], int nproc, int ndims, int dims[])
 
void distribution_fini (distribution_t *d)
 
void distribution_assert_commensurate (distribution_t *d)
 
void distribution_1_to_3 (const complex_t *a, complex_t *b, distribution_t *d)
 
void distribution_3_to_1 (const complex_t *a, complex_t *b, distribution_t *d)
 
void distribution_2_to_3 (const complex_t *a, complex_t *b, distribution_t *d, int dim_z)
 
void distribution_3_to_2 (const complex_t *a, complex_t *b, distribution_t *d, int dim_z)
 
static int distribution_get_nproc_1d (distribution_t *d, int direction)
 
static int distribution_get_nproc_2d_x (distribution_t *d, int direction)
 
static int distribution_get_nproc_2d_y (distribution_t *d, int direction)
 
static int distribution_get_nproc_2d_z (distribution_t *d, int direction)
 
static int distribution_get_nproc_3d (distribution_t *d, int direction)
 
static int distribution_get_self_1d (distribution_t *d, int direction)
 
static int distribution_get_self_2d_x (distribution_t *d, int direction)
 
static int distribution_get_self_2d_y (distribution_t *d, int direction)
 
static int distribution_get_self_2d_z (distribution_t *d, int direction)
 
static int distribution_get_self_3d (distribution_t *d, int direction)
 
void Coord_x_pencils (int myrank, int coord[], distribution_t *d)
 
void Rank_x_pencils (int *myrank, int coord[], distribution_t *d)
 
void Coord_y_pencils (int myrank, int coord[], distribution_t *d)
 
void Rank_y_pencils (int *myrank, int coord[], distribution_t *d)
 
void Coord_z_pencils (int myrank, int coord[], distribution_t *d)
 
void Rank_z_pencils (int *myrank, int coord[], distribution_t *d)
 

Macro Definition Documentation

◆ PENCIL

#define PENCIL   1

Function Documentation

◆ Coord_x_pencils()

void Coord_x_pencils ( int  myrank,
int  coord[],
distribution_t d 
)

◆ Coord_y_pencils()

void Coord_y_pencils ( int  myrank,
int  coord[],
distribution_t d 
)

◆ Coord_z_pencils()

void Coord_z_pencils ( int  myrank,
int  coord[],
distribution_t d 
)

◆ Custom3D_Dims_create()

void Custom3D_Dims_create ( const int  Ndims[],
int  nproc,
int  ndims,
int  dims[] 
)

◆ distribution_1_to_3()

void distribution_1_to_3 ( const complex_t a,
complex_t b,
distribution_t d 
)

◆ distribution_2_to_3()

void distribution_2_to_3 ( const complex_t a,
complex_t b,
distribution_t d,
int  dim_z 
)

◆ distribution_3_to_1()

void distribution_3_to_1 ( const complex_t a,
complex_t b,
distribution_t d 
)

◆ distribution_3_to_2()

void distribution_3_to_2 ( const complex_t a,
complex_t b,
distribution_t d,
int  dim_z 
)

◆ distribution_assert_commensurate()

void distribution_assert_commensurate ( distribution_t d)

◆ distribution_fini()

void distribution_fini ( distribution_t d)

◆ distribution_get_nproc_1d()

static int distribution_get_nproc_1d ( distribution_t d,
int  direction 
)
inlinestatic

◆ distribution_get_nproc_2d_x()

static int distribution_get_nproc_2d_x ( distribution_t d,
int  direction 
)
inlinestatic

◆ distribution_get_nproc_2d_y()

static int distribution_get_nproc_2d_y ( distribution_t d,
int  direction 
)
inlinestatic

◆ distribution_get_nproc_2d_z()

static int distribution_get_nproc_2d_z ( distribution_t d,
int  direction 
)
inlinestatic

◆ distribution_get_nproc_3d()

static int distribution_get_nproc_3d ( distribution_t d,
int  direction 
)
inlinestatic

◆ distribution_get_self_1d()

static int distribution_get_self_1d ( distribution_t d,
int  direction 
)
inlinestatic

◆ distribution_get_self_2d_x()

static int distribution_get_self_2d_x ( distribution_t d,
int  direction 
)
inlinestatic

◆ distribution_get_self_2d_y()

static int distribution_get_self_2d_y ( distribution_t d,
int  direction 
)
inlinestatic

◆ distribution_get_self_2d_z()

static int distribution_get_self_2d_z ( distribution_t d,
int  direction 
)
inlinestatic

◆ distribution_get_self_3d()

static int distribution_get_self_3d ( distribution_t d,
int  direction 
)
inlinestatic

◆ distribution_init()

void distribution_init ( MPI_Comm  comm,
const int  n[],
const int  Ndims[],
distribution_t d,
const int *  rmap,
bool  debug 
)

◆ distribution_init_explicit()

void distribution_init_explicit ( MPI_Comm  comm,
const int  n[],
int  nproc_1d[],
int  nproc_2d_x[],
int  nproc_2d_y[],
int  nproc_2d_z[],
int  nproc_3d[],
distribution_t d,
bool  debug 
)

◆ Rank_x_pencils()

void Rank_x_pencils ( int *  myrank,
int  coord[],
distribution_t d 
)

◆ Rank_y_pencils()

void Rank_y_pencils ( int *  myrank,
int  coord[],
distribution_t d 
)

◆ Rank_z_pencils()

void Rank_z_pencils ( int *  myrank,
int  coord[],
distribution_t d 
)