Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
amrex::FFT::Info Struct Reference

#include <AMReX_FFT_Helper.H>

Public Member Functions

InfosetDomainStrategy (DomainStrategy s)
 Select how the domain is decomposed across MPI ranks.
 
InfosetPencilThreshold (int t)
 Override the slab→pencil break-even threshold for the automatic strategy.
 
InfosetTwoDMode (bool x)
 Restrict transforms to the first two dimensions (3-D problems only).
 
InfosetOneDMode (bool x)
 Flag the degenerate 2-D mode (nx==1 or ny==1) that still batches along z.
 
InfosetBatchSize (int bsize)
 Specify the batch size for FFT.
 
InfosetNumProcs (int n)
 Cap the number of MPI ranks used by FFT.
 

Public Attributes

DomainStrategy domain_strategy = DomainStrategy::automatic
 Domain composition strategy.
 
int pencil_threshold = 4
 
bool twod_mode = false
 
bool oned_mode = false
 We might have a special twod_mode: nx or ny == 1 && nz > 1.
 
int batch_size = 1
 Batched FFT size. Only support in R2C, not R2X.
 
int nprocs = std::numeric_limits<int>::max()
 Max number of processes to use.
 

Member Function Documentation

◆ setBatchSize()

Info & amrex::FFT::Info::setBatchSize ( int  bsize)
inline

Specify the batch size for FFT.

Parameters
bsizeNumber of independent transforms executed together.
Returns
Reference to this Info.

◆ setDomainStrategy()

Info & amrex::FFT::Info::setDomainStrategy ( DomainStrategy  s)
inline

Select how the domain is decomposed across MPI ranks.

Parameters
sStrategy (automatic|slab|pencil).
Returns
Reference to this Info.

◆ setNumProcs()

Info & amrex::FFT::Info::setNumProcs ( int  n)
inline

Cap the number of MPI ranks used by FFT.

Parameters
nMaximum participating ranks.
Returns
Reference to this Info.

◆ setOneDMode()

Info & amrex::FFT::Info::setOneDMode ( bool  x)
inline

Flag the degenerate 2-D mode (nx==1 or ny==1) that still batches along z.

This keeps the solver in “two-dimensional” mode but makes it clear that only one transverse direction has more than one cell; the z-direction remains the batch axis.

Parameters
xTrue when running on effectively 1-D x/y planes while batching along z.
Returns
Reference to this Info.

◆ setPencilThreshold()

Info & amrex::FFT::Info::setPencilThreshold ( int  t)
inline

Override the slab→pencil break-even threshold for the automatic strategy.

Parameters
tMinimum cells per rank before switching to pencil decomposition.
Returns
Reference to this Info.

◆ setTwoDMode()

Info & amrex::FFT::Info::setTwoDMode ( bool  x)
inline

Restrict transforms to the first two dimensions (3-D problems only).

Parameters
xTrue to operate on x/y planes while batching along z.
Returns
Reference to this Info.

Member Data Documentation

◆ batch_size

int amrex::FFT::Info::batch_size = 1

Batched FFT size. Only support in R2C, not R2X.

◆ domain_strategy

DomainStrategy amrex::FFT::Info::domain_strategy = DomainStrategy::automatic

Domain composition strategy.

◆ nprocs

int amrex::FFT::Info::nprocs = std::numeric_limits<int>::max()

Max number of processes to use.

◆ oned_mode

bool amrex::FFT::Info::oned_mode = false

We might have a special twod_mode: nx or ny == 1 && nz > 1.

◆ pencil_threshold

int amrex::FFT::Info::pencil_threshold = 4

For automatic strategy, this is the size per process below which we switch from slab to pencil.

◆ twod_mode

bool amrex::FFT::Info::twod_mode = false

Supported only in 3D. When twod_mode is true, FFT is performed on the first two dimensions only and the third dimension size is the batch size.


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