Octopus
fft_oct_m::fft_t Type Reference

Detailed Description

Definition at line 197 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, public batch_axis
 Memory layout of the batch in the rank-4 data arrays: batch_axis == 1 is "batch-first" (the batch is the fastest-varying axis, the default and the only layout supported by every backend); batch_axis == 4 is "batch-last" (slowest-varying, FFTW and cuFFT only). The spatial dimension arrays below stay rank-3; fft_pack() builds the rank-4 shape where it is needed. More...
 
integer, dimension(1:3), public stride_rs
 GPU strides for the (spatial) cube packing; the accelerated backend is batch-first only. 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...
 
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, PFFT and cuFFT; NFFT and PNFFT require howmany == 1. More...
 
type(mpi_commcomm
 MPI communicator. 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 199 of file fft.F90.

◆ type

integer, public fft_oct_m::fft_t::type

is the fft real or complex

Definition at line 201 of file fft.F90.

◆ library

integer, public fft_oct_m::fft_t::library

what library are we using

Definition at line 202 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, PFFT and cuFFT; NFFT and PNFFT require howmany == 1.

Definition at line 203 of file fft.F90.

◆ batch_axis

integer, public fft_oct_m::fft_t::batch_axis

Memory layout of the batch in the rank-4 data arrays: batch_axis == 1 is "batch-first" (the batch is the fastest-varying axis, the default and the only layout supported by every backend); batch_axis == 4 is "batch-last" (slowest-varying, FFTW and cuFFT only). The spatial dimension arrays below stay rank-3; fft_pack() builds the rank-4 shape where it is needed.

Definition at line 209 of file fft.F90.

◆ comm

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

MPI communicator.

Definition at line 211 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 212 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 213 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 214 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 215 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 216 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 217 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; the accelerated backend is batch-first only.

Definition at line 220 of file fft.F90.

◆ stride_fs

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

Definition at line 221 of file fft.F90.

◆ planf

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

plan for forward transform

Definition at line 223 of file fft.F90.

◆ planb

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

plan for backward transform

Definition at line 224 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 230 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 231 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 232 of file fft.F90.

◆ cuda_plan_fw

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

Definition at line 233 of file fft.F90.

◆ cuda_plan_bw

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

Definition at line 234 of file fft.F90.

◆ pnfft

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

Definition at line 238 of file fft.F90.

◆ aligned_memory

logical, public fft_oct_m::fft_t::aligned_memory

Definition at line 240 of file fft.F90.


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