Block-Structured AMR Software Framework
amrex::FFT Namespace Reference

Namespaces

 detail
 
 fft_poisson_detail
 

Classes

struct  Info
 
struct  Plan
 
struct  Swap01
 
struct  Swap02
 
struct  RotateFwd
 
struct  RotateBwd
 
class  LocalR2C
 Local Discrete Fourier Transform. More...
 
class  OpenBCSolver
 
class  Poisson
 Poisson solver for periodic, Dirichlet & Neumann boundaries using FFT. More...
 
class  PoissonHybrid
 3D Poisson solver for periodic, Dirichlet & Neumann boundaries in the first two dimensions, and Neumann in the last dimension. The last dimension could have non-uniform mesh. More...
 
class  R2C
 Parallel Discrete Fourier Transform. More...
 
class  R2X
 Discrete Fourier Transform. More...
 

Typedefs

using Key = std::tuple< IntVectND< 3 >, Direction, Kind >
 
using PlanD = typename Plan< double >::VendorPlan
 
using PlanF = typename Plan< float >::VendorPlan
 

Enumerations

enum class  Direction { forward , backward , both , none }
 
enum class  DomainStrategy { slab , pencil }
 
enum class  Kind {
  none , r2c_f , r2c_b , c2c_f ,
  c2c_b , r2r_ee_f , r2r_ee_b , r2r_oo_f ,
  r2r_oo_b , r2r_eo , r2r_oe
}
 

Functions

void Initialize ()
 
void Finalize ()
 
void Clear ()
 
PlanDget_vendor_plan_d (Key const &key)
 
PlanFget_vendor_plan_f (Key const &key)
 
void add_vendor_plan_d (Key const &key, PlanD plan)
 
void add_vendor_plan_f (Key const &key, PlanF plan)
 
 AMREX_ENUM (Boundary, periodic, even, odd)
 

Typedef Documentation

◆ Key

using amrex::FFT::Key = typedef std::tuple<IntVectND<3>,Direction,Kind>

◆ PlanD

using amrex::FFT::PlanD = typedef typename Plan<double>::VendorPlan

◆ PlanF

using amrex::FFT::PlanF = typedef typename Plan<float>::VendorPlan

Enumeration Type Documentation

◆ Direction

enum amrex::FFT::Direction
strong
Enumerator
forward 
backward 
both 
none 

◆ DomainStrategy

Enumerator
slab 
pencil 

◆ Kind

enum amrex::FFT::Kind
strong
Enumerator
none 
r2c_f 
r2c_b 
c2c_f 
c2c_b 
r2r_ee_f 
r2r_ee_b 
r2r_oo_f 
r2r_oo_b 
r2r_eo 
r2r_oe 

Function Documentation

◆ add_vendor_plan_d()

void amrex::FFT::add_vendor_plan_d ( Key const &  key,
PlanD  plan 
)

◆ add_vendor_plan_f()

void amrex::FFT::add_vendor_plan_f ( Key const &  key,
PlanF  plan 
)

◆ AMREX_ENUM()

amrex::FFT::AMREX_ENUM ( Boundary  ,
periodic  ,
even  ,
odd   
)

◆ Clear()

void amrex::FFT::Clear ( )

◆ Finalize()

void amrex::FFT::Finalize ( )

◆ get_vendor_plan_d()

PlanD * amrex::FFT::get_vendor_plan_d ( Key const &  key)

◆ get_vendor_plan_f()

PlanF * amrex::FFT::get_vendor_plan_f ( Key const &  key)

◆ Initialize()

void amrex::FFT::Initialize ( )