MFC: Simulation
High-fidelity multiphase flow simulation
Loading...
Searching...
No Matches
m_fftw Module Reference

The module contains the subroutines for the FFT routines. 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
 
integer fwd_plan_gpu
 
integer 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

The module contains the subroutines for the FFT routines.

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

◆ 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.

◆ 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.

Variable Documentation

◆ batch_size

integer m_fftw::batch_size

◆ bwd_plan

type(c_ptr) m_fftw::bwd_plan

◆ bwd_plan_gpu

type(c_ptr) m_fftw::bwd_plan_gpu

◆ cmplx_size

integer m_fftw::cmplx_size

◆ data_cmplx

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

Complex data in Fourier space.

◆ data_cmplx_gpu

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

◆ data_fltr_cmplx

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

Filtered complex data in Fourier space.

◆ data_fltr_cmplx_gpu

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

◆ data_real

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

Real data.

◆ data_real_gpu

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

◆ fftw_cmplx_data

type(c_ptr) m_fftw::fftw_cmplx_data

◆ fftw_fltr_cmplx_data

type(c_ptr) m_fftw::fftw_fltr_cmplx_data

◆ fftw_real_data

type(c_ptr) m_fftw::fftw_real_data

◆ fwd_plan

type(c_ptr) m_fftw::fwd_plan

◆ fwd_plan_gpu

type(c_ptr) m_fftw::fwd_plan_gpu

◆ gpu_fft_size

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

◆ idist

integer m_fftw::idist

◆ iembed

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

◆ istride

integer m_fftw::istride

◆ nfq

integer m_fftw::nfq

◆ odist

integer m_fftw::odist

◆ oembed

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

◆ ostride

integer m_fftw::ostride

◆ rank

integer m_fftw::rank

◆ real_size

integer m_fftw::real_size

◆ x_size

integer m_fftw::x_size