Block-Structured AMR Software Framework
hacc::Distribution Class Reference

#include <Distribution.H>

Public Member Functions

 Distribution (MPI_Comm comm, int const n[], bool debug=false)
 
 Distribution (MPI_Comm comm, int ng, bool debug=false)
 
 Distribution (MPI_Comm comm, int const n[], int const Ndims[], int *rmap, bool debug=false)
 
 Distribution (MPI_Comm comm, int ng, int const Ndims[], int *rmap, bool debug=false)
 
virtual ~Distribution ()
 
void initialize (MPI_Comm comm, int const n[], int const Ndims[])
 
void redistribute_1_to_3 (const complex_t *a, complex_t *b)
 
void redistribute_3_to_1 (const complex_t *a, complex_t *b)
 
void redistribute_2_to_3 (const complex_t *a, complex_t *b, int axis)
 
void redistribute_3_to_2 (const complex_t *a, complex_t *b, int axis)
 
size_t local_size () const
 
size_t global_size () const
 
int global_ng (int i) const
 
int local_ng_1d (int i) const
 
int local_ng_2d_x (int i) const
 
int local_ng_2d_y (int i) const
 
int local_ng_2d_z (int i) const
 
int local_ng_3d (int i) const
 
int const (& global_ng () const)[3]
 
int const (& local_ng_1d () const)[3]
 
int const (& local_ng_2d_x () const)[3]
 
int const (& local_ng_2d_y () const)[3]
 
int const (& local_ng_2d_z () const)[3]
 
int const (& local_ng_3d () const)[3]
 
int nproc () const
 
int nproc_1d (int i) const
 
int nproc_2d_x (int i) const
 
int nproc_2d_y (int i) const
 
int nproc_2d_z (int i) const
 
int nproc_3d (int i) const
 
int const (& nproc_1d () const)[3]
 
int const (& nproc_2d_x () const)[3]
 
int const (& nproc_2d_y () const)[3]
 
int const (& nproc_2d_z () const)[3]
 
int const (& nproc_3d () const)[3]
 
int self () const
 
int self_1d (int i) const
 
int self_2d_x (int i) const
 
int self_2d_y (int i) const
 
int self_2d_z (int i) const
 
int self_3d (int i) const
 
int const (& self_1d () const)[3]
 
int const (& self_2d_x () const)[3]
 
int const (& self_2d_y () const)[3]
 
int const (& self_2d_z () const)[3]
 
int const (& self_3d () const)[3]
 
MPI_Comm cart_1d () const
 
MPI_Comm cart_2d_x () const
 
MPI_Comm cart_2d_y () const
 
MPI_Comm cart_2d_z () const
 
MPI_Comm cart_3d () const
 
MPI_Comm parent_comm () const
 
int rank_2d_x (int c[])
 
int rank_2d_y (int c[])
 
int rank_2d_z (int c[])
 
void coords_2d_x (int r, int c[])
 
void coords_2d_y (int r, int c[])
 
void coords_2d_z (int r, int c[])
 

Public Attributes

distribution_t m_d
 

Protected Attributes

MPI_Comm m_comm
 
int * m_rmap
 
bool m_debug
 

Constructor & Destructor Documentation

◆ Distribution() [1/4]

hacc::Distribution::Distribution ( MPI_Comm  comm,
int const  n[],
bool  debug = false 
)
inline

◆ Distribution() [2/4]

hacc::Distribution::Distribution ( MPI_Comm  comm,
int  ng,
bool  debug = false 
)
inline

◆ Distribution() [3/4]

hacc::Distribution::Distribution ( MPI_Comm  comm,
int const  n[],
int const  Ndims[],
int *  rmap,
bool  debug = false 
)
inline

◆ Distribution() [4/4]

hacc::Distribution::Distribution ( MPI_Comm  comm,
int  ng,
int const  Ndims[],
int *  rmap,
bool  debug = false 
)
inline

◆ ~Distribution()

virtual hacc::Distribution::~Distribution ( )
inlinevirtual

Member Function Documentation

◆ cart_1d()

MPI_Comm hacc::Distribution::cart_1d ( ) const
inline

◆ cart_2d_x()

MPI_Comm hacc::Distribution::cart_2d_x ( ) const
inline

◆ cart_2d_y()

MPI_Comm hacc::Distribution::cart_2d_y ( ) const
inline

◆ cart_2d_z()

MPI_Comm hacc::Distribution::cart_2d_z ( ) const
inline

◆ cart_3d()

MPI_Comm hacc::Distribution::cart_3d ( ) const
inline

◆ coords_2d_x()

void hacc::Distribution::coords_2d_x ( int  r,
int  c[] 
)
inline

◆ coords_2d_y()

void hacc::Distribution::coords_2d_y ( int  r,
int  c[] 
)
inline

◆ coords_2d_z()

void hacc::Distribution::coords_2d_z ( int  r,
int  c[] 
)
inline

◆ global_ng() [1/2]

int const(& hacc::Distribution::global_ng ( ) )[3]
inline

◆ global_ng() [2/2]

int hacc::Distribution::global_ng ( int  i) const
inline

◆ global_size()

size_t hacc::Distribution::global_size ( ) const
inline

◆ initialize()

void hacc::Distribution::initialize ( MPI_Comm  comm,
int const  n[],
int const  Ndims[] 
)
inline

◆ local_ng_1d() [1/2]

int const(& hacc::Distribution::local_ng_1d ( ) )[3]
inline

◆ local_ng_1d() [2/2]

int hacc::Distribution::local_ng_1d ( int  i) const
inline

◆ local_ng_2d_x() [1/2]

int const(& hacc::Distribution::local_ng_2d_x ( ) )[3]
inline

◆ local_ng_2d_x() [2/2]

int hacc::Distribution::local_ng_2d_x ( int  i) const
inline

◆ local_ng_2d_y() [1/2]

int const(& hacc::Distribution::local_ng_2d_y ( ) )[3]
inline

◆ local_ng_2d_y() [2/2]

int hacc::Distribution::local_ng_2d_y ( int  i) const
inline

◆ local_ng_2d_z() [1/2]

int const(& hacc::Distribution::local_ng_2d_z ( ) )[3]
inline

◆ local_ng_2d_z() [2/2]

int hacc::Distribution::local_ng_2d_z ( int  i) const
inline

◆ local_ng_3d() [1/2]

int const(& hacc::Distribution::local_ng_3d ( ) )[3]
inline

◆ local_ng_3d() [2/2]

int hacc::Distribution::local_ng_3d ( int  i) const
inline

◆ local_size()

size_t hacc::Distribution::local_size ( ) const
inline

◆ nproc()

int hacc::Distribution::nproc ( ) const
inline

◆ nproc_1d() [1/2]

int const(& hacc::Distribution::nproc_1d ( ) )[3]
inline

◆ nproc_1d() [2/2]

int hacc::Distribution::nproc_1d ( int  i) const
inline

◆ nproc_2d_x() [1/2]

int const(& hacc::Distribution::nproc_2d_x ( ) )[3]
inline

◆ nproc_2d_x() [2/2]

int hacc::Distribution::nproc_2d_x ( int  i) const
inline

◆ nproc_2d_y() [1/2]

int const(& hacc::Distribution::nproc_2d_y ( ) )[3]
inline

◆ nproc_2d_y() [2/2]

int hacc::Distribution::nproc_2d_y ( int  i) const
inline

◆ nproc_2d_z() [1/2]

int const(& hacc::Distribution::nproc_2d_z ( ) )[3]
inline

◆ nproc_2d_z() [2/2]

int hacc::Distribution::nproc_2d_z ( int  i) const
inline

◆ nproc_3d() [1/2]

int const(& hacc::Distribution::nproc_3d ( ) )[3]
inline

◆ nproc_3d() [2/2]

int hacc::Distribution::nproc_3d ( int  i) const
inline

◆ parent_comm()

MPI_Comm hacc::Distribution::parent_comm ( ) const
inline

◆ rank_2d_x()

int hacc::Distribution::rank_2d_x ( int  c[])
inline

◆ rank_2d_y()

int hacc::Distribution::rank_2d_y ( int  c[])
inline

◆ rank_2d_z()

int hacc::Distribution::rank_2d_z ( int  c[])
inline

◆ redistribute_1_to_3()

void hacc::Distribution::redistribute_1_to_3 ( const complex_t a,
complex_t b 
)
inline

◆ redistribute_2_to_3()

void hacc::Distribution::redistribute_2_to_3 ( const complex_t a,
complex_t b,
int  axis 
)
inline

◆ redistribute_3_to_1()

void hacc::Distribution::redistribute_3_to_1 ( const complex_t a,
complex_t b 
)
inline

◆ redistribute_3_to_2()

void hacc::Distribution::redistribute_3_to_2 ( const complex_t a,
complex_t b,
int  axis 
)
inline

◆ self()

int hacc::Distribution::self ( ) const
inline

◆ self_1d() [1/2]

int const(& hacc::Distribution::self_1d ( ) )[3]
inline

◆ self_1d() [2/2]

int hacc::Distribution::self_1d ( int  i) const
inline

◆ self_2d_x() [1/2]

int const(& hacc::Distribution::self_2d_x ( ) )[3]
inline

◆ self_2d_x() [2/2]

int hacc::Distribution::self_2d_x ( int  i) const
inline

◆ self_2d_y() [1/2]

int const(& hacc::Distribution::self_2d_y ( ) )[3]
inline

◆ self_2d_y() [2/2]

int hacc::Distribution::self_2d_y ( int  i) const
inline

◆ self_2d_z() [1/2]

int const(& hacc::Distribution::self_2d_z ( ) )[3]
inline

◆ self_2d_z() [2/2]

int hacc::Distribution::self_2d_z ( int  i) const
inline

◆ self_3d() [1/2]

int const(& hacc::Distribution::self_3d ( ) )[3]
inline

◆ self_3d() [2/2]

int hacc::Distribution::self_3d ( int  i) const
inline

Member Data Documentation

◆ m_comm

MPI_Comm hacc::Distribution::m_comm
protected

◆ m_d

distribution_t hacc::Distribution::m_d

◆ m_debug

bool hacc::Distribution::m_debug
protected

◆ m_rmap

int* hacc::Distribution::m_rmap
protected

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