Octopus
pfft_oct_m Module Reference

The low level module to work with the PFFT library. http: More...

Detailed Description

The low level module to work with the PFFT library. http:

Functions/Subroutines

subroutine, public pfft_decompose (n_proc, dim1, dim2)
 Decompose all available processors in 2D processor grid, most equally possible. More...
 
subroutine, public pfft_prepare_plan_r2c (plan, n, in, out, sign, flags, mpi_comm)
 Octopus subroutine to prepare a PFFT plan real to complex. More...
 
subroutine, public pfft_prepare_plan_c2r (plan, n, in, out, sign, flags, mpi_comm)
 Octopus subroutine to prepare a PFFT plan real to complex. More...
 
subroutine, public pfft_prepare_plan_c2c (plan, n, in, out, sign, flags, mpi_comm)
 Octopus subroutine to prepare a PFFT plan real to complex. More...
 
subroutine, public pfft_get_dims (rs_n_global, mpi_comm, is_real, alloc_size, fs_n_global, rs_n, fs_n, rs_istart, fs_istart)
 

Function/Subroutine Documentation

◆ pfft_decompose()

subroutine, public pfft_oct_m::pfft_decompose ( integer, intent(in)  n_proc,
integer, intent(out)  dim1,
integer, intent(out)  dim2 
)

Decompose all available processors in 2D processor grid, most equally possible.

Parameters
[in]n_procNumber of processors
[out]dim1First out dimension
[out]dim2Second out dimension

Definition at line 187 of file pfft.F90.

◆ pfft_prepare_plan_r2c()

subroutine, public pfft_oct_m::pfft_prepare_plan_r2c ( type(c_ptr), intent(out)  plan,
integer, dimension(:), intent(in)  n,
real(real64), dimension(:,:,:), intent(inout), pointer  in,
complex(real64), dimension(:,:,:), intent(inout), pointer  out,
integer, intent(in)  sign,
integer, intent(in)  flags,
integer, intent(in)  mpi_comm 
)

Octopus subroutine to prepare a PFFT plan real to complex.

Parameters
[out]planThe plan that is created by PFFT
[in]nThe size of the global matrix
[in,out]inThe input matrix that is going to be used to do the transform
[in,out]outThe output matrix that is going to be used to do the transform
[in]signSign flag to decide FFT direction. Has to be FFTW_FORWARD
[in]flagsFlags for FFT library. Could be changed with the input variable FFTPreparePlan. Default value is FFTW_MEASURE
[in]mpi_commMPI communicator

Definition at line 228 of file pfft.F90.

◆ pfft_prepare_plan_c2r()

subroutine, public pfft_oct_m::pfft_prepare_plan_c2r ( type(c_ptr), intent(out)  plan,
integer, dimension(:), intent(in)  n,
complex(real64), dimension(:,:,:), intent(inout), pointer  in,
real(real64), dimension(:,:,:), intent(inout), pointer  out,
integer, intent(in)  sign,
integer, intent(in)  flags,
integer, intent(in)  mpi_comm 
)

Octopus subroutine to prepare a PFFT plan real to complex.

Parameters
[out]planThe plan that is created by PFFT
[in]nThe size of the global matrix
[in,out]inThe input matrix that is going to be used to do the transform
[in,out]outThe output matrix that is going to be used to do the transform
[in]signSign flag to decide FFT direction. Has to be FFTW_BACKWARD
[in]flagsFlags for FFT library. Could be changed with the input variable FFTPreparePlan. Default value is FFTW_MEASURE
[in]mpi_commMPI communicator

Definition at line 262 of file pfft.F90.

◆ pfft_prepare_plan_c2c()

subroutine, public pfft_oct_m::pfft_prepare_plan_c2c ( type(c_ptr), intent(out)  plan,
integer, dimension(:), intent(in)  n,
complex(real64), dimension(:,:,:), intent(inout), pointer  in,
complex(real64), dimension(:,:,:), intent(inout), pointer  out,
integer, intent(in)  sign,
integer, intent(in)  flags,
integer, intent(in)  mpi_comm 
)

Octopus subroutine to prepare a PFFT plan real to complex.

Parameters
[out]planThe plan that is created by PFFT
[in]nThe size of the global matrix
[in,out]inThe input matrix that is going to be used to do the transform
[in,out]outThe output matrix that is going to be used to do the transform
[in]signSign flag to decide FFT direction.
[in]flagsFlags for FFT library. Could be changed with the input variable FFTPreparePlan. Default value is FFTW_MEASURE
[in]mpi_commMPI communicator

Definition at line 297 of file pfft.F90.

◆ pfft_get_dims()

subroutine, public pfft_oct_m::pfft_get_dims ( integer, dimension(1:3), intent(in)  rs_n_global,
integer, intent(in)  mpi_comm,
logical, intent(in)  is_real,
integer(int64), intent(out)  alloc_size,
integer, dimension(1:3), intent(out)  fs_n_global,
integer, dimension(1:3), intent(out)  rs_n,
integer, dimension(1:3), intent(out)  fs_n,
integer, dimension(1:3), intent(out)  rs_istart,
integer, dimension(1:3), intent(out)  fs_istart 
)
Parameters
[in]rs_n_globalThe general number of elements in each dimension in real space
[in]mpi_commMPI comunicator
[in]is_realThe input is real or complex
[out]alloc_sizeNumber of elements that has to be allocated locally
[out]fs_n_globalThe general number of elements in each dimension in Fourier space
[out]rs_nLocal number of elements in each direction in real space
[out]fs_nLocal number of elements in each direction in Fourier space
[out]rs_istartWhere does the local portion of the function start in real space
[out]fs_istartWhere does the local portion of the function start in Fourier space

Definition at line 334 of file pfft.F90.