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

Namespaces

namespace  detail
 
namespace  fft_poisson_detail
 

Classes

struct  Boundary_EnumTraits
 
struct  Info
 
class  LocalR2C
 Local Discrete Fourier Transform. More...
 
class  OpenBCSolver
 
struct  Plan
 
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 Dirichlet & Neumann in the last dimension. The last dimension could have non-uniform mesh. More...
 
class  PoissonOpenBC
 Poisson solve for Open BC using FFT. More...
 
class  R2C
 Parallel Discrete Fourier Transform. More...
 
class  R2X
 Discrete Fourier Transform. More...
 
struct  RotateBwd
 
struct  RotateFwd
 
struct  Swap01
 
struct  Swap02
 

Typedefs

using Key = std::tuple< IntVectND< 3 >, int, Direction, Kind >
 
using PlanD = typename Plan< double >::VendorPlan
 
using PlanF = typename Plan< float >::VendorPlan
 
template<typename T = Real, FFT::Direction D = FFT::Direction::both>
using C2C = R2C< T, D, true >
 FFT between complex data.
 

Enumerations

enum struct  Direction { forward , backward , both , none }
 
enum struct  DomainStrategy { automatic , slab , pencil }
 
enum class  Boundary : int { periodic , even , odd }
 
enum struct  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)
 

Variables

Boundary_EnumTraits amrex_get_enum_traits (Boundary)
 

Typedef Documentation

◆ C2C

template<typename T = Real, FFT::Direction D = FFT::Direction::both>
using amrex::FFT::C2C = typedef R2C<T, D, true>

FFT between complex data.

◆ Key

using amrex::FFT::Key = typedef std::tuple<IntVectND<3>,int,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

◆ Boundary

enum class amrex::FFT::Boundary : int
strong
Enumerator
periodic 
even 
odd 

◆ Direction

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

◆ DomainStrategy

enum struct amrex::FFT::DomainStrategy
strong
Enumerator
automatic 
slab 
pencil 

◆ Kind

enum struct 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 
)

◆ 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 ( )

Variable Documentation

◆ amrex_get_enum_traits

Boundary_EnumTraits amrex::FFT::amrex_get_enum_traits(Boundary) ( Boundary  )