Octopus
fft_oct_m::fft_t Type Reference

Detailed Description

Definition at line 196 of file fft.F90.

Public Attributes

integer, public type
 is the fft real or complex More...
 
integer, public library
 what library are we using More...
 
integer, dimension(1:3), public stride_rs
 GPU strides for the (spatial) cube packing. More...
 
integer, dimension(1:3), public stride_fs
 
real(real64), dimension(:,:,:,:), pointer, public, contiguous drs_data
 The following arrays have to be stored here and allocated in the initialization routine because of PFFT These arrays are also used for FFTW, as we want to have aligned memory. More...
 
complex(real64), dimension(:,:,:,:), pointer, public, contiguous zrs_data
 array used to store the function in real space. More...
 
complex(real64), dimension(:,:,:,:), pointer, public, contiguous fs_data
 array used to store the function in Fourier space. More...
 
real(real32), dimension(:,:,:,:), pointer, public, contiguous srs_data
 Single-precision buffers, used only when single is .true. (FFTW path; the accelerator transforms operate on caller-provided device buffers). More...
 
complex(real32), dimension(:,:,:,:), pointer, public, contiguous crs_data
 complex32 real-space buffer More...
 
complex(real32), dimension(:,:,:,:), pointer, public, contiguous cfs_data
 complex32 Fourier-space buffer More...
 
logical, public single = .false.
 single-precision FFT (FFTW and accelerator only) More...
 
type(pnfft_t), public pnfft
 
logical, public aligned_memory
 

Private Attributes

integer slot = 0
 in which slot do we have this fft More...
 
integer howmany
 Number of FFTs performed at once. Batched transforms (howmany > 1) are supported by FFTW and cuFFT; PFFT, NFFT and PNFFT require howmany == 1. More...
 
type(mpi_comm) comm
 The batch always occupies the trailing (slowest-varying, rank-4) axis of the data arrays ("batch-last"), so each transform is contiguous. The spatial dimension arrays below stay rank-3; fft_pack() builds the rank-4 shape where it is needed. More...
 
integer, dimension(3) rs_n_global
 total size of the fft in each direction in real space More...
 
integer, dimension(3) fs_n_global
 total size of the fft in each direction in fourier space More...
 
integer, dimension(3) rs_n
 local size of the fft in in each direction real space More...
 
integer, dimension(3) fs_n
 local size of the fft in in each direction fourier space More...
 
integer, dimension(1:3) rs_istart
 where does the local portion of the function start in real space More...
 
integer, dimension(1:3) fs_istart
 where does the local portion of the function start in fourier space More...
 
type(c_ptr) planf
 plan for forward transform More...
 
type(c_ptr) planb
 plan for backward transform More...
 
type(c_ptr) cuda_plan_fw
 
type(c_ptr) cuda_plan_bw
 

Member Data Documentation

◆ slot

integer fft_oct_m::fft_t::slot = 0
private

in which slot do we have this fft

Definition at line 198 of file fft.F90.

◆ type

integer, public fft_oct_m::fft_t::type

is the fft real or complex

Definition at line 200 of file fft.F90.

◆ library

integer, public fft_oct_m::fft_t::library

what library are we using

Definition at line 201 of file fft.F90.

◆ howmany

integer fft_oct_m::fft_t::howmany
private

Number of FFTs performed at once. Batched transforms (howmany > 1) are supported by FFTW and cuFFT; PFFT, NFFT and PNFFT require howmany == 1.

Definition at line 202 of file fft.F90.

◆ comm

type(mpi_comm) fft_oct_m::fft_t::comm
private

The batch always occupies the trailing (slowest-varying, rank-4) axis of the data arrays ("batch-last"), so each transform is contiguous. The spatial dimension arrays below stay rank-3; fft_pack() builds the rank-4 shape where it is needed.

MPI communicator

Definition at line 208 of file fft.F90.

◆ rs_n_global

integer, dimension(3) fft_oct_m::fft_t::rs_n_global
private

total size of the fft in each direction in real space

Definition at line 209 of file fft.F90.

◆ fs_n_global

integer, dimension(3) fft_oct_m::fft_t::fs_n_global
private

total size of the fft in each direction in fourier space

Definition at line 210 of file fft.F90.

◆ rs_n

integer, dimension(3) fft_oct_m::fft_t::rs_n
private

local size of the fft in in each direction real space

Definition at line 211 of file fft.F90.

◆ fs_n

integer, dimension(3) fft_oct_m::fft_t::fs_n
private

local size of the fft in in each direction fourier space

Definition at line 212 of file fft.F90.

◆ rs_istart

integer, dimension(1:3) fft_oct_m::fft_t::rs_istart
private

where does the local portion of the function start in real space

Definition at line 213 of file fft.F90.

◆ fs_istart

integer, dimension(1:3) fft_oct_m::fft_t::fs_istart
private

where does the local portion of the function start in fourier space

Definition at line 214 of file fft.F90.

◆ stride_rs

integer, dimension(1:3), public fft_oct_m::fft_t::stride_rs

GPU strides for the (spatial) cube packing.

Definition at line 217 of file fft.F90.

◆ stride_fs

integer, dimension(1:3), public fft_oct_m::fft_t::stride_fs

Definition at line 218 of file fft.F90.

◆ planf

type(c_ptr) fft_oct_m::fft_t::planf
private

plan for forward transform

Definition at line 220 of file fft.F90.

◆ planb

type(c_ptr) fft_oct_m::fft_t::planb
private

plan for backward transform

Definition at line 221 of file fft.F90.

◆ drs_data

real(real64), dimension(:,:,:,:), pointer, public, contiguous fft_oct_m::fft_t::drs_data

The following arrays have to be stored here and allocated in the initialization routine because of PFFT These arrays are also used for FFTW, as we want to have aligned memory.

array used to store the function in real space.

Definition at line 227 of file fft.F90.

◆ zrs_data

complex(real64), dimension(:,:,:,:), pointer, public, contiguous fft_oct_m::fft_t::zrs_data

array used to store the function in real space.

Definition at line 228 of file fft.F90.

◆ fs_data

complex(real64), dimension(:,:,:,:), pointer, public, contiguous fft_oct_m::fft_t::fs_data

array used to store the function in Fourier space.

Definition at line 229 of file fft.F90.

◆ srs_data

real(real32), dimension(:,:,:,:), pointer, public, contiguous fft_oct_m::fft_t::srs_data

Single-precision buffers, used only when single is .true. (FFTW path; the accelerator transforms operate on caller-provided device buffers).

real32 real-space buffer

Definition at line 232 of file fft.F90.

◆ crs_data

complex(real32), dimension(:,:,:,:), pointer, public, contiguous fft_oct_m::fft_t::crs_data

complex32 real-space buffer

Definition at line 233 of file fft.F90.

◆ cfs_data

complex(real32), dimension(:,:,:,:), pointer, public, contiguous fft_oct_m::fft_t::cfs_data

complex32 Fourier-space buffer

Definition at line 234 of file fft.F90.

◆ single

logical, public fft_oct_m::fft_t::single = .false.

single-precision FFT (FFTW and accelerator only)

Definition at line 235 of file fft.F90.

◆ cuda_plan_fw

type(c_ptr) fft_oct_m::fft_t::cuda_plan_fw
private

Definition at line 236 of file fft.F90.

◆ cuda_plan_bw

type(c_ptr) fft_oct_m::fft_t::cuda_plan_bw
private

Definition at line 237 of file fft.F90.

◆ pnfft

type(pnfft_t), public fft_oct_m::fft_t::pnfft

Definition at line 241 of file fft.F90.

◆ aligned_memory

logical, public fft_oct_m::fft_t::aligned_memory

Definition at line 243 of file fft.F90.


The documentation for this type was generated from the following file: