Discrete Fourier Transform. More...
#include <AMReX_FFT_R2X.H>
Public Types | |
using | MF = std::conditional_t< std::is_same_v< T, Real >, MultiFab, FabArray< BaseFab< T > > > |
using | cMF = FabArray< BaseFab< GpuComplex< T > > > |
Public Member Functions | |
R2X (Box const &domain, Array< std::pair< Boundary, Boundary >, AMREX_SPACEDIM > const &bc, Info const &info=Info{}) | |
~R2X () | |
R2X (R2X const &)=delete | |
R2X (R2X &&)=delete | |
R2X & | operator= (R2X const &)=delete |
R2X & | operator= (R2X &&)=delete |
T | scalingFactor () const |
template<typename F > | |
void | forwardThenBackward (MF const &inmf, MF &outmf, F const &post_forward) |
template<int dim, typename FAB , typename F > | |
void | post_forward_doit (FAB *fab, F const &f) |
Private Attributes | |
Box | m_dom_0 |
Array< std::pair< Boundary, Boundary >, AMREX_SPACEDIM > | m_bc |
Plan< T > | m_fft_fwd_x {} |
Plan< T > | m_fft_bwd_x {} |
Plan< T > | m_fft_fwd_y {} |
Plan< T > | m_fft_bwd_y {} |
Plan< T > | m_fft_fwd_z {} |
Plan< T > | m_fft_bwd_z {} |
std::unique_ptr< MultiBlockCommMetaData > | m_cmd_cx2cy |
std::unique_ptr< MultiBlockCommMetaData > | m_cmd_rx2ry |
std::unique_ptr< MultiBlockCommMetaData > | m_cmd_cy2cz |
std::unique_ptr< MultiBlockCommMetaData > | m_cmd_ry2rz |
std::unique_ptr< MultiBlockCommMetaData > | m_cmd_cy2cx |
std::unique_ptr< MultiBlockCommMetaData > | m_cmd_ry2rx |
std::unique_ptr< MultiBlockCommMetaData > | m_cmd_cz2cy |
std::unique_ptr< MultiBlockCommMetaData > | m_cmd_rz2ry |
Swap01 | m_dtos_x2y {} |
Swap01 | m_dtos_y2x {} |
Swap02 | m_dtos_y2z {} |
Swap02 | m_dtos_z2y {} |
MF | m_rx |
MF | m_ry |
MF | m_rz |
cMF | m_cx |
cMF | m_cy |
cMF | m_cz |
std::unique_ptr< char, DataDeleter > | m_data_1 |
std::unique_ptr< char, DataDeleter > | m_data_2 |
Box | m_dom_rx |
Box | m_dom_ry |
Box | m_dom_rz |
Box | m_dom_cx |
Box | m_dom_cy |
Box | m_dom_cz |
Info | m_info |
Discrete Fourier Transform.
This class supports Fourier transforms including cosine and sine transforms.
using amrex::FFT::R2X< T >::cMF = FabArray<BaseFab<GpuComplex<T> > > |
using amrex::FFT::R2X< T >::MF = std::conditional_t<std::is_same_v<T,Real>, MultiFab, FabArray<BaseFab<T> > > |
amrex::FFT::R2X< T >::R2X | ( | Box const & | domain, |
Array< std::pair< Boundary, Boundary >, AMREX_SPACEDIM > const & | bc, | ||
Info const & | info = Info{} |
||
) |
amrex::FFT::R2X< T >::~R2X |
|
delete |
|
delete |
void amrex::FFT::R2X< T >::forwardThenBackward | ( | MF const & | inmf, |
MF & | outmf, | ||
F const & | post_forward | ||
) |
|
delete |
|
delete |
void amrex::FFT::R2X< T >::post_forward_doit | ( | FAB * | fab, |
F const & | f | ||
) |
T amrex::FFT::R2X< T >::scalingFactor |
|
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 |
|
private |