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

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