waLBerla 7.2
Loading...
Searching...
No Matches
walberla::fft::FourierTransform< Field_T > Class Template Reference

#include <Fft.h>

Public Member Functions

 FourierTransform (shared_ptr< StructuredBlockForest > &blocks, BlockDataID fieldId, const std::function< real_t(uint_t, uint_t, uint_t)> &greens=std::function< real_t(uint_t, uint_t, uint_t)>())
 
void operator() ()
 

Private Types

using FFTReal = std::unique_ptr<double [], std::function<void (double *)>>
 
using FFTComplex = std::unique_ptr<fftw_complex[], std::function<void(fftw_complex*)> >
 
using FFTPlan = std::unique_ptr<std::remove_pointer_t<fftw_plan>, std::function<void(fftw_plan)> >
 

Private Attributes

shared_ptr< StructuredBlockForest > & blocks_
 
BlockDataID fieldId_
 
std::array< ptrdiff_t, 3 > local_no
 
FFTReal in_
 
FFTReal greens_
 
FFTComplex out_
 
FFTPlan plan_forward_
 
FFTPlan plan_backward_
 

Member Typedef Documentation

◆ FFTComplex

template<typename Field_T >
using walberla::fft::FourierTransform< Field_T >::FFTComplex = std::unique_ptr<fftw_complex[], std::function<void(fftw_complex*)> >
private

◆ FFTPlan

template<typename Field_T >
using walberla::fft::FourierTransform< Field_T >::FFTPlan = std::unique_ptr<std::remove_pointer_t<fftw_plan>, std::function<void(fftw_plan)> >
private

◆ FFTReal

template<typename Field_T >
using walberla::fft::FourierTransform< Field_T >::FFTReal = std::unique_ptr<double [], std::function<void (double *)>>
private

Constructor & Destructor Documentation

◆ FourierTransform()

template<typename Field_T >
walberla::fft::FourierTransform< Field_T >::FourierTransform ( shared_ptr< StructuredBlockForest > & blocks,
BlockDataID fieldId,
const std::function< real_t(uint_t, uint_t, uint_t)> & greens = std::function<real_t(uint_t,uint_t,uint_t)>() )

Member Function Documentation

◆ operator()()

template<typename Field_T >
void walberla::fft::FourierTransform< Field_T >::operator() ( )

Member Data Documentation

◆ blocks_

template<typename Field_T >
shared_ptr< StructuredBlockForest >& walberla::fft::FourierTransform< Field_T >::blocks_
private

◆ fieldId_

template<typename Field_T >
BlockDataID walberla::fft::FourierTransform< Field_T >::fieldId_
private

◆ greens_

template<typename Field_T >
FFTReal walberla::fft::FourierTransform< Field_T >::greens_
private

◆ in_

template<typename Field_T >
FFTReal walberla::fft::FourierTransform< Field_T >::in_
private

◆ local_no

template<typename Field_T >
std::array< ptrdiff_t, 3 > walberla::fft::FourierTransform< Field_T >::local_no
private

◆ out_

template<typename Field_T >
FFTComplex walberla::fft::FourierTransform< Field_T >::out_
private

◆ plan_backward_

template<typename Field_T >
FFTPlan walberla::fft::FourierTransform< Field_T >::plan_backward_
private

◆ plan_forward_

template<typename Field_T >
FFTPlan walberla::fft::FourierTransform< Field_T >::plan_forward_
private

The documentation for this class was generated from the following files: