#include <pencildecomp.hpp>


Public Types | |
| using | pfun = void(Cart3DPencilDecomp< T, GroupID >::*)(const T *, T *, const int) |
Public Member Functions | |
| Cart3DPencilDecomp () | |
| Construct a new Cart 3 D Pencil Decomp object. More... | |
| ~Cart3DPencilDecomp () | |
| auto & | setArraySize (std::vector< int > size) |
| auto & | setGhostSize (std::vector< int > gh0, std::vector< int > gh1, std::vector< int > gh2) |
| auto & | setMPIDecomp (const int npr, const int npc) |
| std::vector< int > | getArraySize () const |
| std::pair< std::vector< int >, std::vector< int > > | getLocalIndex (int f0, int f1, int f2) const |
| std::vector< int > | getLocalSize (int f0, int f1, int f2) const |
| size_t | getMaxBufferSize () const |
| std::vector< int > | getLocalSize (int axis_npr, int axis_npc) |
| Get the Local Size. More... | |
| std::pair< std::vector< int >, std::vector< int > > | getLocalIndex (int axis_npr, int axis_npc) |
| Get the Local Index. More... | |
| auto & | Init () |
| void | ConvertArraytoBufferXYPZ (const T *in, T *out, const int xflag, const int yflag, const int rotflag, const int ghost_igflag=kNone) |
| void | ConvertBuffertoArrayXYPZ (const T *in, T *out, const int xflag, const int yflag, const int rotflag, const int ghost_igflag=kNone) |
| void | ConvertArraytoBufferYZPX (const T *in, T *out, const int yflag, const int zflag, const int rotflag, const int ghost_igflag=kNone) |
| void | ConvertBuffertoArrayYZPX (const T *in, T *out, const int yflag, const int zflag, const int rotflag, const int ghost_igflag=kNone) |
| void | ConvertArraytoBufferZXPY (const T *in, T *out, const int zflag, const int xflag, const int rotflag, const int ghost_igflag=kNone) |
| void | ConvertBuffertoArrayZXPY (const T *in, T *out, const int zflag, const int xflag, const int rotflag, const int ghost_igflag=kNone) |
| void | TransposeFromXYtoXZ (const T *in, T *out, const int ghost_igflag=kNone) |
| void | TransposeFromXZtoXY (const T *in, T *out, const int ghost_igflag=kNone) |
| void | TransposeFromZXtoZY (const T *in, T *out, const int ghost_igflag=kNone) |
| void | TransposeFromZYtoZX (const T *in, T *out, const int ghost_igflag=kNone) |
| void | TransposeFromYZtoYX (const T *in, T *out, const int ghost_igflag=kNone) |
| void | TransposeFromYXtoYZ (const T *in, T *out, const int ghost_igflag=kNone) |
| void | TransposeFromXZtoYZ (const T *in, T *out, const int ghost_igflag=kNone) |
| void | TransposeFromYZtoXZ (const T *in, T *out, const int ghost_igflag=kNone) |
| void | TransposeFromZYtoXY (const T *in, T *out, const int ghost_igflag=kNone) |
| void | TransposeFromXYtoZY (const T *in, T *out, const int ghost_igflag=kNone) |
| void | TransposeFromYXtoZX (const T *in, T *out, const int ghost_igflag=kNone) |
| void | TransposeFromZXtoYX (const T *in, T *out, const int ghost_igflag=kNone) |
| int | TransposeHashID (int i, int j, int k, int m) |
| void | Transpose (int axis_npr_from, int axis_npc_from, int axis_npr_to, int axis_npc_to, const T *in, T *out, const int ghost_igflag=false) |
| void | CountAndDispFromXYtoXZ (int *sendcount, int *senddisp, int *recvcount, int *recvdisp) |
| void | CountAndDispFromXZtoXY (int *sendcount, int *senddisp, int *recvcount, int *recvdisp) |
| void | CountAndDispFromZXtoZY (int *sendcount, int *senddisp, int *recvcount, int *recvdisp) |
| void | CountAndDispFromZYtoZX (int *sendcount, int *senddisp, int *recvcount, int *recvdisp) |
| void | CountAndDispFromYZtoYX (int *sendcount, int *senddisp, int *recvcount, int *recvdisp) |
| void | CountAndDispFromYXtoYZ (int *sendcount, int *senddisp, int *recvcount, int *recvdisp) |
| void | CountAndDispFromXZtoYZ (int *sendcount, int *senddisp, int *recvcount, int *recvdisp) |
| void | CountAndDispFromYZtoXZ (int *sendcount, int *senddisp, int *recvcount, int *recvdisp) |
| void | CountAndDispFromZYtoXY (int *sendcount, int *senddisp, int *recvcount, int *recvdisp) |
| void | CountAndDispFromXYtoZY (int *sendcount, int *senddisp, int *recvcount, int *recvdisp) |
| void | CountAndDispFromYXtoZX (int *sendcount, int *senddisp, int *recvcount, int *recvdisp) |
| void | CountAndDispFromZXtoYX (int *sendcount, int *senddisp, int *recvcount, int *recvdisp) |
Public Attributes | |
| std::unordered_map< int, pfun > | transpose_list |
Private Member Functions | |
| void | _InitMPIComm () |
| void | _InitMPIDataType () |
| void | _InitArrayLocalSize () |
| void | _InitIndexAndDisp () |
| void | _AllocateDisp () |
| void | _InitSendRecv () |
| void | _InitSendRecvBuffer () |
| void | _InitSendRecvCountAndDisp () |
Private Attributes | |
| MPI_Comm & | _comm = PencilBase<GroupID>::comm |
| MPI_Comm & | _npc_comm = PencilBase<GroupID>::npc_comm |
| MPI_Comm & | _npr_comm = PencilBase<GroupID>::npr_comm |
| MPI_Datatype | _mydatatype = nullptr |
| int & | _rank = PencilBase<GroupID>::rank |
| int & | _npr = PencilBase<GroupID>::npr |
| int & | _npc = PencilBase<GroupID>::npc |
| int * | _coord = PencilBase<GroupID>::coord |
| int * | _ghost_n0 = PencilBase<GroupID>::ghost_n0 |
| int * | _ghost_n1 = PencilBase<GroupID>::ghost_n1 |
| int * | _ghost_n2 = PencilBase<GroupID>::ghost_n2 |
| int * | _shape = PencilBase<GroupID>::shape |
| int * | _n0loc = PencilBase<GroupID>::n0loc |
| int * | _n1loc = PencilBase<GroupID>::n1loc |
| int * | _n2loc = PencilBase<GroupID>::n2loc |
| int * | _ind0st = PencilBase<GroupID>::ind0st |
| int * | _ind0ed = PencilBase<GroupID>::ind0ed |
| int * | _ind1st = PencilBase<GroupID>::ind1st |
| int * | _ind1ed = PencilBase<GroupID>::ind1ed |
| int * | _ind2st = PencilBase<GroupID>::ind2st |
| int * | _ind2ed = PencilBase<GroupID>::ind2ed |
| size_t & | _maxbuffersize = PencilBase<GroupID>::maxbuffersize |
| int * | _disp0_r = PencilBase<GroupID>::disp0_r |
| int * | _disp0_c = PencilBase<GroupID>::disp0_c |
| int * | _disp1_r = PencilBase<GroupID>::disp1_r |
| int * | _disp1_c = PencilBase<GroupID>::disp1_c |
| int * | _disp2_r = PencilBase<GroupID>::disp2_r |
| int * | _disp2_c = PencilBase<GroupID>::disp2_c |
| T * | _sendbuffer = nullptr |
| T * | _recvbuffer = nullptr |
| int * | _sendcount = nullptr |
| int * | _recvcount = nullptr |
| int * | _senddisp = nullptr |
| int * | _recvdisp = nullptr |
Additional Inherited Members | |
Static Public Attributes inherited from tfft3d::PencilBase< GroupID > | |
| static MPI_Comm | comm = nullptr |
| static MPI_Comm | npc_comm = nullptr |
| static MPI_Comm | npr_comm = nullptr |
| static int | rank = 0 |
| static int | npr = 0 |
| static int | npc = 0 |
| static int | coord [2] = {0, 0} |
| static int | ghost_n0 [2] = {0, 0} |
| static int | ghost_n1 [2] = {0, 0} |
| static int | ghost_n2 [2] = {0, 0} |
| static int | shape [3] = {0, 0, 0} |
| static int | n0loc [3] = {0, 0, 0} |
| static int | n1loc [3] = {0, 0, 0} |
| static int | n2loc [3] = {0, 0, 0} |
| static int | ind0st [3] = {0, 0, 0} |
| static int | ind0ed [3] = {0, 0, 0} |
| static int | ind1st [3] = {0, 0, 0} |
| static int | ind1ed [3] = {0, 0, 0} |
| static int | ind2st [3] = {0, 0, 0} |
| static int | ind2ed [3] = {0, 0, 0} |
| static size_t | maxbuffersize = 0 |
| static int * | disp0_r = nullptr |
| static int * | disp0_c = nullptr |
| static int * | disp1_r = nullptr |
| static int * | disp1_c = nullptr |
| static int * | disp2_r = nullptr |
| static int * | disp2_c = nullptr |
| using tfft3d::Cart3DPencilDecomp< T, GroupID >::pfun = void (Cart3DPencilDecomp<T, GroupID>::*)(const T *, T *, const int) |
|
inline |
Construct a new Cart 3 D Pencil Decomp object.
|
inline |
References tfft3d::Cart3DPencilDecomp< T, GroupID >::_disp0_c, tfft3d::Cart3DPencilDecomp< T, GroupID >::_disp0_r, tfft3d::Cart3DPencilDecomp< T, GroupID >::_disp1_c, tfft3d::Cart3DPencilDecomp< T, GroupID >::_disp1_r, tfft3d::Cart3DPencilDecomp< T, GroupID >::_disp2_c, tfft3d::Cart3DPencilDecomp< T, GroupID >::_disp2_r, tfft3d::Cart3DPencilDecomp< T, GroupID >::_recvbuffer, tfft3d::Cart3DPencilDecomp< T, GroupID >::_recvcount, tfft3d::Cart3DPencilDecomp< T, GroupID >::_recvdisp, tfft3d::Cart3DPencilDecomp< T, GroupID >::_sendbuffer, tfft3d::Cart3DPencilDecomp< T, GroupID >::_sendcount, and tfft3d::Cart3DPencilDecomp< T, GroupID >::_senddisp.
|
private |
|
private |
References tfft3d::kC, tfft3d::kP, and tfft3d::kR.
|
private |
References tfft3d::kC, tfft3d::kP, and tfft3d::kR.
|
private |
|
private |
|
private |
|
private |
References tfft3d::kC, tfft3d::kP, tfft3d::kR, and quadpack::max().

|
private |
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::ConvertArraytoBufferXYPZ | ( | const T * | in, |
| T * | out, | ||
| const int | xflag, | ||
| const int | yflag, | ||
| const int | rotflag, | ||
| const int | ghost_igflag = kNone |
||
| ) |
References tfft3d::kAfter, tfft3d::kAll, tfft3d::kBefore, tfft3d::kNone, tfft3d::kP, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::ConvertArraytoBufferYZPX | ( | const T * | in, |
| T * | out, | ||
| const int | yflag, | ||
| const int | zflag, | ||
| const int | rotflag, | ||
| const int | ghost_igflag = kNone |
||
| ) |
References tfft3d::kAfter, tfft3d::kAll, tfft3d::kBefore, tfft3d::kNone, tfft3d::kP, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::ConvertArraytoBufferZXPY | ( | const T * | in, |
| T * | out, | ||
| const int | zflag, | ||
| const int | xflag, | ||
| const int | rotflag, | ||
| const int | ghost_igflag = kNone |
||
| ) |
References tfft3d::kAfter, tfft3d::kAll, tfft3d::kBefore, tfft3d::kNone, tfft3d::kP, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::ConvertBuffertoArrayXYPZ | ( | const T * | in, |
| T * | out, | ||
| const int | xflag, | ||
| const int | yflag, | ||
| const int | rotflag, | ||
| const int | ghost_igflag = kNone |
||
| ) |
References tfft3d::kAfter, tfft3d::kAll, tfft3d::kBefore, tfft3d::kNone, tfft3d::kP, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::ConvertBuffertoArrayYZPX | ( | const T * | in, |
| T * | out, | ||
| const int | yflag, | ||
| const int | zflag, | ||
| const int | rotflag, | ||
| const int | ghost_igflag = kNone |
||
| ) |
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::ConvertBuffertoArrayZXPY | ( | const T * | in, |
| T * | out, | ||
| const int | zflag, | ||
| const int | xflag, | ||
| const int | rotflag, | ||
| const int | ghost_igflag = kNone |
||
| ) |
References tfft3d::kAfter, tfft3d::kAll, tfft3d::kBefore, tfft3d::kNone, tfft3d::kP, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::CountAndDispFromXYtoXZ | ( | int * | sendcount, |
| int * | senddisp, | ||
| int * | recvcount, | ||
| int * | recvdisp | ||
| ) |
References tfft3d::kC, tfft3d::kP, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::CountAndDispFromXYtoZY | ( | int * | sendcount, |
| int * | senddisp, | ||
| int * | recvcount, | ||
| int * | recvdisp | ||
| ) |
References tfft3d::kC, tfft3d::kP, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::CountAndDispFromXZtoXY | ( | int * | sendcount, |
| int * | senddisp, | ||
| int * | recvcount, | ||
| int * | recvdisp | ||
| ) |
References tfft3d::kC, tfft3d::kP, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::CountAndDispFromXZtoYZ | ( | int * | sendcount, |
| int * | senddisp, | ||
| int * | recvcount, | ||
| int * | recvdisp | ||
| ) |
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::CountAndDispFromYXtoYZ | ( | int * | sendcount, |
| int * | senddisp, | ||
| int * | recvcount, | ||
| int * | recvdisp | ||
| ) |
References tfft3d::kC, tfft3d::kP, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::CountAndDispFromYXtoZX | ( | int * | sendcount, |
| int * | senddisp, | ||
| int * | recvcount, | ||
| int * | recvdisp | ||
| ) |
References tfft3d::kC, tfft3d::kP, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::CountAndDispFromYZtoXZ | ( | int * | sendcount, |
| int * | senddisp, | ||
| int * | recvcount, | ||
| int * | recvdisp | ||
| ) |
References tfft3d::kC, tfft3d::kP, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::CountAndDispFromYZtoYX | ( | int * | sendcount, |
| int * | senddisp, | ||
| int * | recvcount, | ||
| int * | recvdisp | ||
| ) |
References tfft3d::kC, tfft3d::kP, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::CountAndDispFromZXtoYX | ( | int * | sendcount, |
| int * | senddisp, | ||
| int * | recvcount, | ||
| int * | recvdisp | ||
| ) |
References tfft3d::kC, tfft3d::kP, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::CountAndDispFromZXtoZY | ( | int * | sendcount, |
| int * | senddisp, | ||
| int * | recvcount, | ||
| int * | recvdisp | ||
| ) |
References tfft3d::kC, tfft3d::kP, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::CountAndDispFromZYtoXY | ( | int * | sendcount, |
| int * | senddisp, | ||
| int * | recvcount, | ||
| int * | recvdisp | ||
| ) |
References tfft3d::kC, tfft3d::kP, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::CountAndDispFromZYtoZX | ( | int * | sendcount, |
| int * | senddisp, | ||
| int * | recvcount, | ||
| int * | recvdisp | ||
| ) |
References tfft3d::kC, tfft3d::kP, and tfft3d::kR.
|
inline |
References tfft3d::Cart3DPencilDecomp< T, GroupID >::_shape.
| std::pair< std::vector< int >, std::vector< int > > tfft3d::Cart3DPencilDecomp< T, GroupID >::getLocalIndex | ( | int | axis_npr, |
| int | axis_npc | ||
| ) |
Get the Local Index.
| axis_npr | |
| axis_npc |
References tfft3d::kC, tfft3d::kP, tfft3d::kR, tfft3d::kX, tfft3d::kY, and tfft3d::kZ.
|
inline |
References tfft3d::Cart3DPencilDecomp< T, GroupID >::_ind0ed, tfft3d::Cart3DPencilDecomp< T, GroupID >::_ind0st, tfft3d::Cart3DPencilDecomp< T, GroupID >::_ind1ed, tfft3d::Cart3DPencilDecomp< T, GroupID >::_ind1st, tfft3d::Cart3DPencilDecomp< T, GroupID >::_ind2ed, and tfft3d::Cart3DPencilDecomp< T, GroupID >::_ind2st.
| std::vector< int > tfft3d::Cart3DPencilDecomp< T, GroupID >::getLocalSize | ( | int | axis_npr, |
| int | axis_npc | ||
| ) |
Get the Local Size.
| axis_npr | label of axis npr |
| axis_npc | label of axis npc |
References tfft3d::kC, tfft3d::kP, tfft3d::kR, tfft3d::kX, tfft3d::kY, and tfft3d::kZ.
|
inline |
|
inline |
References tfft3d::Cart3DPencilDecomp< T, GroupID >::_maxbuffersize.

| auto & tfft3d::Cart3DPencilDecomp< T, GroupID >::Init |
|
inline |
References tfft3d::Cart3DPencilDecomp< T, GroupID >::_shape.

|
inline |
|
inline |
|
inline |
References tfft3d::Cart3DPencilDecomp< T, GroupID >::TransposeHashID().

| void tfft3d::Cart3DPencilDecomp< T, GroupID >::TransposeFromXYtoXZ | ( | const T * | in, |
| T * | out, | ||
| const int | ghost_igflag = kNone |
||
| ) |
References tfft3d::kC, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::TransposeFromXYtoZY | ( | const T * | in, |
| T * | out, | ||
| const int | ghost_igflag = kNone |
||
| ) |
References tfft3d::kC, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::TransposeFromXZtoXY | ( | const T * | in, |
| T * | out, | ||
| const int | ghost_igflag = kNone |
||
| ) |
References tfft3d::kC, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::TransposeFromXZtoYZ | ( | const T * | in, |
| T * | out, | ||
| const int | ghost_igflag = kNone |
||
| ) |
References tfft3d::kC, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::TransposeFromYXtoYZ | ( | const T * | in, |
| T * | out, | ||
| const int | ghost_igflag = kNone |
||
| ) |
References tfft3d::kC, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::TransposeFromYXtoZX | ( | const T * | in, |
| T * | out, | ||
| const int | ghost_igflag = kNone |
||
| ) |
References tfft3d::kC, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::TransposeFromYZtoXZ | ( | const T * | in, |
| T * | out, | ||
| const int | ghost_igflag = kNone |
||
| ) |
References tfft3d::kC, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::TransposeFromYZtoYX | ( | const T * | in, |
| T * | out, | ||
| const int | ghost_igflag = kNone |
||
| ) |
References tfft3d::kC, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::TransposeFromZXtoYX | ( | const T * | in, |
| T * | out, | ||
| const int | ghost_igflag = kNone |
||
| ) |
References tfft3d::kC, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::TransposeFromZXtoZY | ( | const T * | in, |
| T * | out, | ||
| const int | ghost_igflag = kNone |
||
| ) |
References tfft3d::kC, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::TransposeFromZYtoXY | ( | const T * | in, |
| T * | out, | ||
| const int | ghost_igflag = kNone |
||
| ) |
References tfft3d::kC, and tfft3d::kR.
| void tfft3d::Cart3DPencilDecomp< T, GroupID >::TransposeFromZYtoZX | ( | const T * | in, |
| T * | out, | ||
| const int | ghost_igflag = kNone |
||
| ) |
References tfft3d::kC, and tfft3d::kR.
|
inline |

|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
| std::unordered_map<int, pfun> tfft3d::Cart3DPencilDecomp< T, GroupID >::transpose_list |