MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_fftw Module Reference

Forward and inverse FFT wrappers (FFTW/cuFFT/hipFFT) for azimuthal Fourier filtering in cylindrical geometries. More...

Functions/Subroutines

impure subroutine, public s_initialize_fftw_module
 The purpose of this subroutine is to create the fftw plan that will be used in the forward and backward DFTs when applying the Fourier filter in the azimuthal direction.
impure subroutine, public s_apply_fourier_filter (q_cons_vf)
 The purpose of this subroutine is to apply a Fourier low- pass filter to the flow variables in the azimuthal direction to remove the high-frequency content. This alleviates the restrictive CFL condition arising from cells near the axis.
impure subroutine, public s_finalize_fftw_module
 The purpose of this subroutine is to destroy the fftw plan that will be used in the forward and backward DFTs when applying the Fourier filter in the azimuthal direction.

Variables

type(c_ptr) fwd_plan
type(c_ptr) bwd_plan
type(c_ptr) fftw_real_data
type(c_ptr) fftw_cmplx_data
type(c_ptr) fftw_fltr_cmplx_data
integer real_size
integer cmplx_size
integer x_size
integer batch_size
integer nfq
real(c_double), dimension(:), pointer data_real
 Real data.
complex(c_double_complex), dimension(:), pointer data_cmplx
 Complex data in Fourier space.
complex(c_double_complex), dimension(:), pointer data_fltr_cmplx
 Filtered complex data in Fourier space.
real(dp), dimension(:), allocatable, target data_real_gpu
complex(dp), dimension(:), allocatable, target data_cmplx_gpu
complex(dp), dimension(:), allocatable, target data_fltr_cmplx_gpu
type(c_ptr) fwd_plan_gpu
type(c_ptr) bwd_plan_gpu
integer, dimension(:), allocatable gpu_fft_size
integer, dimension(:), allocatable iembed
integer, dimension(:), allocatable oembed
integer istride
integer ostride
integer idist
integer odist
integer rank

Detailed Description

Forward and inverse FFT wrappers (FFTW/cuFFT/hipFFT) for azimuthal Fourier filtering in cylindrical geometries.

Function/Subroutine Documentation

◆ s_apply_fourier_filter()

impure subroutine, public m_fftw::s_apply_fourier_filter ( type(scalar_field), dimension(sys_size), intent(inout) q_cons_vf)

The purpose of this subroutine is to apply a Fourier low- pass filter to the flow variables in the azimuthal direction to remove the high-frequency content. This alleviates the restrictive CFL condition arising from cells near the axis.

Parameters
q_cons_vfConservative variables

Definition at line 556 of file m_fftw.fpp.f90.

◆ s_finalize_fftw_module()

impure subroutine, public m_fftw::s_finalize_fftw_module

The purpose of this subroutine is to destroy the fftw plan that will be used in the forward and backward DFTs when applying the Fourier filter in the azimuthal direction.

Definition at line 1244 of file m_fftw.fpp.f90.

◆ s_initialize_fftw_module()

impure subroutine, public m_fftw::s_initialize_fftw_module

The purpose of this subroutine is to create the fftw plan that will be used in the forward and backward DFTs when applying the Fourier filter in the azimuthal direction.

Definition at line 381 of file m_fftw.fpp.f90.

Variable Documentation

◆ batch_size

integer m_fftw::batch_size

Definition at line 323 of file m_fftw.fpp.f90.

◆ bwd_plan

type(c_ptr) m_fftw::bwd_plan

Definition at line 321 of file m_fftw.fpp.f90.

◆ bwd_plan_gpu

type(c_ptr) m_fftw::bwd_plan_gpu

Definition at line 366 of file m_fftw.fpp.f90.

◆ cmplx_size

integer m_fftw::cmplx_size

Definition at line 323 of file m_fftw.fpp.f90.

◆ data_cmplx

complex(c_double_complex), dimension(:), pointer m_fftw::data_cmplx

Complex data in Fourier space.

Definition at line 327 of file m_fftw.fpp.f90.

◆ data_cmplx_gpu

complex(dp), dimension(:), allocatable, target m_fftw::data_cmplx_gpu

Definition at line 347 of file m_fftw.fpp.f90.

◆ data_fltr_cmplx

complex(c_double_complex), dimension(:), pointer m_fftw::data_fltr_cmplx

Filtered complex data in Fourier space.

Definition at line 330 of file m_fftw.fpp.f90.

◆ data_fltr_cmplx_gpu

complex(dp), dimension(:), allocatable, target m_fftw::data_fltr_cmplx_gpu

Definition at line 348 of file m_fftw.fpp.f90.

◆ data_real

real(c_double), dimension(:), pointer m_fftw::data_real

Real data.

Definition at line 325 of file m_fftw.fpp.f90.

◆ data_real_gpu

real(dp), dimension(:), allocatable, target m_fftw::data_real_gpu

Definition at line 346 of file m_fftw.fpp.f90.

◆ fftw_cmplx_data

type(c_ptr) m_fftw::fftw_cmplx_data

Definition at line 322 of file m_fftw.fpp.f90.

◆ fftw_fltr_cmplx_data

type(c_ptr) m_fftw::fftw_fltr_cmplx_data

Definition at line 322 of file m_fftw.fpp.f90.

◆ fftw_real_data

type(c_ptr) m_fftw::fftw_real_data

Definition at line 322 of file m_fftw.fpp.f90.

◆ fwd_plan

type(c_ptr) m_fftw::fwd_plan

Definition at line 321 of file m_fftw.fpp.f90.

◆ fwd_plan_gpu

type(c_ptr) m_fftw::fwd_plan_gpu

Definition at line 366 of file m_fftw.fpp.f90.

◆ gpu_fft_size

integer, dimension(:), allocatable m_fftw::gpu_fft_size

Definition at line 371 of file m_fftw.fpp.f90.

◆ idist

integer m_fftw::idist

Definition at line 373 of file m_fftw.fpp.f90.

◆ iembed

integer, dimension(:), allocatable m_fftw::iembed

Definition at line 371 of file m_fftw.fpp.f90.

◆ istride

integer m_fftw::istride

Definition at line 373 of file m_fftw.fpp.f90.

◆ nfq

integer m_fftw::nfq

Definition at line 323 of file m_fftw.fpp.f90.

◆ odist

integer m_fftw::odist

Definition at line 373 of file m_fftw.fpp.f90.

◆ oembed

integer, dimension(:), allocatable m_fftw::oembed

Definition at line 371 of file m_fftw.fpp.f90.

◆ ostride

integer m_fftw::ostride

Definition at line 373 of file m_fftw.fpp.f90.

◆ rank

integer m_fftw::rank

Definition at line 373 of file m_fftw.fpp.f90.

◆ real_size

integer m_fftw::real_size

Definition at line 323 of file m_fftw.fpp.f90.

◆ x_size

integer m_fftw::x_size

Definition at line 323 of file m_fftw.fpp.f90.