ORB5X 1.0.0
Performance-portable global electromagnetic gyrokinetic PIC code
fftw3.hpp File Reference

Solver-local FFTW plans, buffers, and transform operations. More...

#include "../fft_wrapper.hpp"
#include <fftw3.h>
+ Include dependency graph for fftw3.hpp:

Namespaces

namespace  orb5x
 Public C++ interface of the ORB5X gyrokinetic application.
 

Typedefs

using orb5x::fftw_complex_type = fftw_complex
 FFTW double-precision complex storage used by the compatibility routines.
 
using orb5x::fftw_plan_type = fftw_plan
 Opaque FFTW plan handle; caller-created plans must be passed to destroy_plan().
 

Functions

void orb5x::bspl2fft_2d (const Kokkos::View< Real ** > &bspl_data, Kokkos::View< Complex ** > &fft_data, int nchi, int nphi)
 Compute an unnormalized full complex FFT of one real surface.
 
void orb5x::bspl2fft_3d (const Kokkos::View< Real *** > &bspl_data, Kokkos::View< Complex ** > &fft_data, int ns, int nchi, int nphi, int neq_f, const Kokkos::View< int *** > *filter=nullptr, const Kokkos::View< Real * > *fftminv=nullptr, const Kokkos::View< int ** > *mmin_f=nullptr, const Kokkos::View< int ** > *mmax_f=nullptr)
 Transform radial real-space surfaces to packed Fourier coefficients.
 
void orb5x::destroy_plan (fftw_plan plan)
 Release a caller-owned FFTW plan.
 
void orb5x::execute_backward (fftw_plan plan)
 Execute a backward plan on the buffers supplied when it was created.
 
void orb5x::execute_forward (fftw_plan plan)
 Execute a forward plan on the buffers supplied when it was created.
 
void orb5x::fft2bspl_2d (const Kokkos::View< Complex ** > &fft_data, Kokkos::View< Real ** > &bspl_data, int nchi, int nphi)
 Compute the normalized real inverse of a full two-dimensional spectrum.
 
void orb5x::fft2bspl_3d (const Kokkos::View< Complex ** > &fft_data, Kokkos::View< Real *** > &bspl_data, int ns, int nchi, int nphi, int neq_f, const Kokkos::View< int ** > *mmin_f=nullptr, const Kokkos::View< int ** > *mmax_f=nullptr)
 Reconstruct real-space radial surfaces from packed Fourier modes.
 
void orb5x::fftw_cleanup ()
 Compatibility cleanup hook retained for translated solver call sites.
 
void orb5x::init_1d_backward (int n, fftw_plan &plan_backward, fftw_complex *in, fftw_complex *out)
 Create an unnormalized one-dimensional backward transform plan.
 
void orb5x::init_1d_forward (int n, fftw_plan &plan_forward, fftw_complex *in, fftw_complex *out)
 Create an unnormalized one-dimensional forward transform plan.
 
void orb5x::init_2d_backward (int nchi, int nphi, fftw_plan &plan_backward, fftw_complex *in, fftw_complex *out)
 Create an unnormalized backward FFT over (chi,phi).
 
void orb5x::init_2d_forward (int nchi, int nphi, fftw_plan &plan_forward, fftw_complex *in, fftw_complex *out)
 Create an unnormalized forward FFT over (chi,phi).
 

Detailed Description

Solver-local FFTW plans, buffers, and transform operations.

FFTW calls are host-only; device-resident views require explicit staging.