#include <fft3d.hpp>
Public Member Functions | |
FFT3D () | |
~FFT3D () | |
auto & | setSizeBeforeTrans (int nx, int ny, int nz) |
auto & | setSizeAfterTrans (int nx, int ny, int nz) |
auto & | setGhostSizeBeforeTrans (std::vector< int > gh0, std::vector< int > gh1, std::vector< int > gh2) |
auto & | setGhostSizeAfterTrans (std::vector< int > gh0, std::vector< int > gh1, std::vector< int > gh2) |
auto & | setFirstDecomp (int axis_npr, int axis_npc) |
auto & | setSecondDecomp (int axis_npr, int axis_npc) |
auto & | setThirdDecomp (int axis_npr, int axis_npc) |
auto & | setFirstFFTOp (int fft_type) |
auto & | setSecondFFTOp (int fft_type) |
auto & | setThirdFFTOp (int fft_type) |
auto & | setFFTOp (int fft_type0, int fft_type1, int fft_type2) |
auto & | setMPIDecomp (const int npr, const int npc) |
std::pair< std::vector< int >, std::vector< int > > | getLocalIndexBeforeTrans () |
std::pair< std::vector< int >, std::vector< int > > | getLocalIndexAfterTrans () |
std::vector< int > | getSizeBeforeTrans () |
std::vector< int > | getSizeAfterTrans () |
std::vector< int > | getLocalSizeBeforeTrans () |
std::vector< int > | getLocalSizeAfterTrans () |
auto | getMaxBufferSize () |
auto | getMPIComm () |
void | Init () |
void | ForwardTrans (auto *in, auto *out) |
void | BackwardTrans (auto *in, auto *out) |
void | RemoveGhost (auto *in, auto *out, std::vector< int > gh0, std::vector< int > gh1, std::vector< int > gh2, GhostFlag flag=GhostFlag::Before) |
void | AddGhost (auto *in, auto *out, std::vector< int > gh0, std::vector< int > gh1, std::vector< int > gh2, GhostFlag flag=GhostFlag::Before) |
Private Member Functions | |
void | _InitFFTAxisOrder () |
void | _InitDecomp () |
void | _InitDecompSize () |
void | _InitFFTSizeBeforeTrans () |
void | _InitFFTSizeAfterTrans () |
void | _InitIsSameSize () |
void | _InitTempArray () |
void | _InitLocalIndex () |
Private Attributes | |
Cart3DPencilDecomp< std::complex< T_real >, GroupID > | decomp0 |
Cart3DPencilDecomp< std::complex< T_real >, GroupID2 > | decomp1 |
Cart3DPencilDecomp< T_real, GroupID3 > | rdecomp0 |
Cart3DPencilDecomp< T_real, GroupID4 > | rdecomp1 |
bool | _is_same_size = false |
int | _npr = 1 |
int | _npc = 1 |
size_t | _maxbuffersize = 0 |
int | _size_before [3] = {0, 0, 0} |
int | _size_after [3] = {0, 0, 0} |
int | _size_decomp0 [3] = {0, 0, 0} |
int | _size_decomp1 [3] = {0, 0, 0} |
int | _axis_npr_list [3] = {kY, kX, kX} |
int | _axis_npc_list [3] = {kZ, kZ, kY} |
int | _fft_axis_order [3] = {kX, kY, kZ} |
int | _fft_type_list [3] = {kNULL, kNULL, kNULL} |
std::vector< std::vector< int > > | _fft_size_before = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}} |
std::vector< std::vector< int > > | _fft_size_after = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}} |
std::vector< std::vector< int > > | _local_index_before = {{0, 0, 0}, {0, 0, 0}} |
std::vector< std::vector< int > > | _local_index_after = {{0, 0, 0}, {0, 0, 0}} |
std::complex< T_real > * | ctemp0 = nullptr |
std::complex< T_real > * | ctemp1 = nullptr |
T_real * | rtemp0 = nullptr |
T_real * | rtemp1 = nullptr |
Static Private Attributes | |
static constexpr auto | GroupID2 = 2000000000 - GroupID |
static constexpr auto | GroupID3 = 3000000000 - GroupID |
static constexpr auto | GroupID4 = 4000000000 - GroupID |
|
inline |
|
inline |
|
private |
References tfft3d::CC, tfft3d::RC, and tfft3d::RR.
|
private |
References tfft3d::kDFTc2r, and tfft3d::kDFTr2c.
|
private |
|
private |
References tfft3d::CC.
|
private |
References tfft3d::CC, tfft3d::RC, and tfft3d::RR.
|
private |
|
private |
References tfft3d::CC, tfft3d::RC, and tfft3d::RR.
|
private |
References tfft3d::CC, tfft3d::Cart3DPencilDecomp< T, GroupID >::getMaxBufferSize(), quadpack::max(), tfft3d::RC, tfft3d::RR, and tfft3d::Cart3DPencilDecomp< T, GroupID >::setArraySize().
void tfft3d::FFT3D< T_real, GroupID, TypeID >::AddGhost | ( | auto * | in, |
auto * | out, | ||
std::vector< int > | gh0, | ||
std::vector< int > | gh1, | ||
std::vector< int > | gh2, | ||
GhostFlag | flag = GhostFlag::Before |
||
) |
void tfft3d::FFT3D< T_real, GroupID, TypeID >::BackwardTrans | ( | auto * | in, |
auto * | out | ||
) |
References tfft3d::CC, tfft3d::PencilDFTBackward(), tfft3d::RC, and tfft3d::RR.
void tfft3d::FFT3D< T_real, GroupID, TypeID >::ForwardTrans | ( | auto * | in, |
auto * | out | ||
) |
References tfft3d::CC, tfft3d::PencilDFTForward(), tfft3d::RC, and tfft3d::RR.
|
inline |
References tfft3d::FFT3D< T_real, GroupID, TypeID >::_local_index_after.
|
inline |
|
inline |
References tfft3d::FFT3D< T_real, GroupID, TypeID >::_fft_size_after.
|
inline |
|
inline |
References tfft3d::FFT3D< T_real, GroupID, TypeID >::_maxbuffersize.
|
inline |
|
inline |
|
inline |
void tfft3d::FFT3D< T_real, GroupID, TypeID >::Init |
void tfft3d::FFT3D< T_real, GroupID, TypeID >::RemoveGhost | ( | auto * | in, |
auto * | out, | ||
std::vector< int > | gh0, | ||
std::vector< int > | gh1, | ||
std::vector< int > | gh2, | ||
GhostFlag | flag = GhostFlag::Before |
||
) |
|
inline |
References tfft3d::FFT3D< T_real, GroupID, TypeID >::setFirstFFTOp().
auto & tfft3d::FFT3D< T_real, GroupID, TypeID >::setFirstDecomp | ( | int | axis_npr, |
int | axis_npc | ||
) |
auto & tfft3d::FFT3D< T_real, GroupID, TypeID >::setFirstFFTOp | ( | int | fft_type | ) |
auto& tfft3d::FFT3D< T_real, GroupID, TypeID >::setGhostSizeAfterTrans | ( | std::vector< int > | gh0, |
std::vector< int > | gh1, | ||
std::vector< int > | gh2 | ||
) |
auto& tfft3d::FFT3D< T_real, GroupID, TypeID >::setGhostSizeBeforeTrans | ( | std::vector< int > | gh0, |
std::vector< int > | gh1, | ||
std::vector< int > | gh2 | ||
) |
auto & tfft3d::FFT3D< T_real, GroupID, TypeID >::setMPIDecomp | ( | const int | npr, |
const int | npc | ||
) |
auto & tfft3d::FFT3D< T_real, GroupID, TypeID >::setSecondDecomp | ( | int | axis_npr, |
int | axis_npc | ||
) |
auto & tfft3d::FFT3D< T_real, GroupID, TypeID >::setSecondFFTOp | ( | int | fft_type | ) |
auto & tfft3d::FFT3D< T_real, GroupID, TypeID >::setSizeAfterTrans | ( | int | nx, |
int | ny, | ||
int | nz | ||
) |
auto & tfft3d::FFT3D< T_real, GroupID, TypeID >::setSizeBeforeTrans | ( | int | nx, |
int | ny, | ||
int | nz | ||
) |
auto & tfft3d::FFT3D< T_real, GroupID, TypeID >::setThirdDecomp | ( | int | axis_npr, |
int | axis_npc | ||
) |
auto & tfft3d::FFT3D< T_real, GroupID, TypeID >::setThirdFFTOp | ( | int | fft_type | ) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inlinestaticconstexprprivate |
|
inlinestaticconstexprprivate |
|
inlinestaticconstexprprivate |
|
private |
|
private |
|
private |
|
private |