![]() |
Block-Structured AMR Software Framework
|
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 >, 3 > const &bc, Info const &info=Info{}) | |
| Build an FFT plan for the given domain and boundary types. | |
| ~R2X () | |
| Destroy any FFT resources held by this object. | |
| R2X (R2X const &)=delete | |
| R2X (R2X &&)=delete | |
| R2X & | operator= (R2X const &)=delete |
| R2X & | operator= (R2X &&)=delete |
| T | scalingFactor () const |
| Normalization applied after a forward/backward sequence. | |
| template<typename F > | |
| void | forwardThenBackward (MF const &inmf, MF &outmf, F const &post_forward) |
Execute forward transform, apply post_forward, then backward transform. | |
| template<int dim, typename FAB , typename F > | |
| void | post_forward_doit (FAB *fab, F const &f) |
Apply a user functor to a FAB after the forward transform along dimension dim. | |
| template<typename F > | |
| void | forwardThenBackward_doit_0 (MF const &inmf, MF &outmf, F const &post_forward, IntVect const &ngout=IntVect(0), Periodicity const &period=Periodicity::NonPeriodic()) |
| CUDA-visible helper that performs the forward/modify/backward cycle. | |
| template<typename F > | |
| void | forwardThenBackward_doit_1 (MF const &inmf, MF &outmf, F const &post_forward, IntVect const &ngout=IntVect(0), Periodicity const &period=Periodicity::NonPeriodic()) |
| CUDA-visible helper that operates on the complex FAB path. | |
Friends | |
| template<typename U > | |
| class | Poisson |
| template<typename U > | |
| class | PoissonHybrid |
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 >, 3 > const & | bc, | ||
| Info const & | info = Info{} |
||
| ) |
Build an FFT plan for the given domain and boundary types.
| domain | Cell- or node-centered domain describing the real data layout. |
| bc | Boundary pair for each direction (periodic/even/odd). |
| info | Optional tuning flags (domain strategy, batching, etc.). |
| amrex::FFT::R2X< T >::~R2X | ( | ) |
Destroy any FFT resources held by this object.
|
delete |
|
delete |
| void amrex::FFT::R2X< T >::forwardThenBackward | ( | MF const & | inmf, |
| MF & | outmf, | ||
| F const & | post_forward | ||
| ) |
| void amrex::FFT::R2X< T >::forwardThenBackward_doit_0 | ( | MF const & | inmf, |
| MF & | outmf, | ||
| F const & | post_forward, | ||
| IntVect const & | ngout = IntVect(0), |
||
| Periodicity const & | period = Periodicity::NonPeriodic() |
||
| ) |
CUDA-visible helper that performs the forward/modify/backward cycle.
| inmf | Input MultiFab. |
| outmf | Output MultiFab. |
| post_forward | Spectral modifier functor. |
| ngout | Grow cells to fill on output. |
| period | Periodicity used for ghost exchange. |
| void amrex::FFT::R2X< T >::forwardThenBackward_doit_1 | ( | MF const & | inmf, |
| MF & | outmf, | ||
| F const & | post_forward, | ||
| IntVect const & | ngout = IntVect(0), |
||
| Periodicity const & | period = Periodicity::NonPeriodic() |
||
| ) |
CUDA-visible helper that operates on the complex FAB path.
| inmf | Input MultiFab. |
| outmf | Output MultiFab. |
| post_forward | Spectral modifier functor. |
| ngout | Grow cells to fill on output. |
| period | Periodicity used for ghost exchange. |
|
delete |
|
delete |
| void amrex::FFT::R2X< T >::post_forward_doit | ( | FAB * | fab, |
| F const & | f | ||
| ) |
Apply a user functor to a FAB after the forward transform along dimension dim.
| fab | Spectral FAB to mutate. |
| f | Callable object. |
| T amrex::FFT::R2X< T >::scalingFactor | ( | ) | const |
Normalization applied after a forward/backward sequence.