![]() |
OpenPFC
0.1.4
Phase Field Crystal simulation framework
|
FFT class for distributed-memory parallel Fourier transforms. More...
#include <fft.hpp>


Public Types | |
| using | fft_type = heffte::fft3d_r2c< BackendTag > |
| using | workspace_type = typename heffte::fft3d_r2c< BackendTag >::template buffer_container< std::complex< double > > |
Public Member Functions | |
| FFT_Impl (fft_type fft) | |
| Constructs an FFT object with the given HeFFTe FFT object. | |
| template<typename RealBackendTag , typename ComplexBackendTag , typename RealType > | |
| void | forward (const core::DataBuffer< RealBackendTag, RealType > &in, core::DataBuffer< ComplexBackendTag, std::complex< RealType > > &out) |
| void | forward (const RealVector &in, ComplexVector &out) override |
| Performs the forward FFT transformation. | |
| template<typename ComplexBackendTag , typename RealBackendTag , typename RealType > | |
| void | backward (const core::DataBuffer< ComplexBackendTag, std::complex< RealType > > &in, core::DataBuffer< RealBackendTag, RealType > &out) |
| void | backward (const ComplexVector &in, RealVector &out) override |
| Performs the backward (inverse) FFT transformation. | |
| void | reset_fft_time () override |
| Resets the recorded FFT computation time to zero. | |
| double | get_fft_time () const override |
| Returns the recorded FFT computation time. | |
| size_t | size_inbox () const override |
| Returns the associated Decomposition object. | |
| size_t | size_outbox () const override |
| Returns the size of the outbox used for FFT computations. | |
| size_t | size_workspace () const override |
| Returns the size of the workspace used for FFT computations. | |
| size_t | get_allocated_memory_bytes () const override |
| Returns the total memory allocated by HeFFTe in bytes. | |
Public Attributes | |
| const fft_type | m_fft |
| double | m_fft_time = 0.0 |
| workspace_type | m_wrk |
FFT class for distributed-memory parallel Fourier transforms.
Provides real-to-complex (R2C) and complex-to-real (C2R) 3D FFT operations using HeFFTe backend. This is the core computational engine for spectral methods in OpenPFC, enabling efficient calculation of derivatives and convolutions in Fourier space.
FFT class template for distributed-memory parallel Fourier transforms
| BackendTag | HeFFTe backend tag (heffte::backend::fftw or heffte::backend::cufft) |
|
inline |
Constructs an FFT object with the given HeFFTe FFT object.
| fft | HeFFTe FFT object (already configured) |
|
inlineoverridevirtual |
Performs the backward (inverse) FFT transformation.
| in | Input vector of complex values. |
| out | Output vector of real values. |
Implements pfc::fft::IFFT.

|
inlineoverridevirtual |
Performs the forward FFT transformation.
| in | Input vector of real values. |
| out | Output vector of complex values. |
Implements pfc::fft::IFFT.
|
inlineoverridevirtual |
Returns the total memory allocated by HeFFTe in bytes.
Calculates memory for workspace buffer used by HeFFTe.
Implements pfc::fft::IFFT.
|
inlineoverridevirtual |
Returns the recorded FFT computation time.
Implements pfc::fft::IFFT.
|
inlineoverridevirtual |
Resets the recorded FFT computation time to zero.
Implements pfc::fft::IFFT.
|
inlineoverridevirtual |
Returns the associated Decomposition object.
Returns the size of the inbox used for FFT computations.
Implements pfc::fft::IFFT.
|
inlineoverridevirtual |
Returns the size of the outbox used for FFT computations.
Implements pfc::fft::IFFT.
|
inlineoverridevirtual |
Returns the size of the workspace used for FFT computations.
Implements pfc::fft::IFFT.
| const fft_type pfc::fft::FFT_Impl< BackendTag >::m_fft |
HeFFTe FFT object.
| double pfc::fft::FFT_Impl< BackendTag >::m_fft_time = 0.0 |
Recorded FFT computation time.
| workspace_type pfc::fft::FFT_Impl< BackendTag >::m_wrk |
Workspace vector for FFT computations (double precision).