Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
amrex::FFT::PoissonHybrid< MF > Class Template Reference

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...

#include <AMReX_FFT_Poisson.H>

Public Types

using T = typename MF::value_type
 

Public Member Functions

template<typename FA = MF, std::enable_if_t< IsFabArray_v< FA >, int > = 0>
 PoissonHybrid (Geometry const &geom, Array< std::pair< Boundary, Boundary >, 3 > const &bc)
 
void solve (MF &soln, MF const &rhs)
 
void solve (MF &soln, MF const &rhs, Vector< T > const &dz)
 
void solve (MF &soln, MF const &rhs, Gpu::DeviceVector< T > const &dz)
 
void solve_2d (MF &a_soln, MF const &a_rhs)
 
template<typename TRIA , typename TRIC >
void solve (MF &a_soln, MF const &a_rhs, TRIA const &tria, TRIC const &tric)
 
template<typename FA , typename TRIA , typename TRIC >
void solve_z (FA &spmf, TRIA const &tria, TRIC const &tric)
 
std::pair< BoxArray, DistributionMappinggetSpectralDataLayout () const
 

Detailed Description

template<typename MF = MultiFab>
class amrex::FFT::PoissonHybrid< MF >

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.

Member Typedef Documentation

◆ T

template<typename MF = MultiFab>
using amrex::FFT::PoissonHybrid< MF >::T = typename MF::value_type

Constructor & Destructor Documentation

◆ PoissonHybrid()

template<typename MF = MultiFab>
template<typename FA = MF, std::enable_if_t< IsFabArray_v< FA >, int > = 0>
amrex::FFT::PoissonHybrid< MF >::PoissonHybrid ( Geometry const &  geom,
Array< std::pair< Boundary, Boundary >, 3 > const &  bc 
)
inline

Member Function Documentation

◆ getSpectralDataLayout()

template<typename MF >
std::pair< BoxArray, DistributionMapping > amrex::FFT::PoissonHybrid< MF >::getSpectralDataLayout ( ) const

◆ solve() [1/4]

template<typename MF >
template<typename TRIA , typename TRIC >
void amrex::FFT::PoissonHybrid< MF >::solve ( MF &  a_soln,
MF const &  a_rhs,
TRIA const &  tria,
TRIC const &  tric 
)

◆ solve() [2/4]

template<typename MF >
void amrex::FFT::PoissonHybrid< MF >::solve ( MF &  soln,
MF const &  rhs 
)

◆ solve() [3/4]

template<typename MF >
void amrex::FFT::PoissonHybrid< MF >::solve ( MF &  soln,
MF const &  rhs,
Gpu::DeviceVector< T > const &  dz 
)

◆ solve() [4/4]

template<typename MF >
void amrex::FFT::PoissonHybrid< MF >::solve ( MF &  soln,
MF const &  rhs,
Vector< T > const &  dz 
)

◆ solve_2d()

template<typename MF >
void amrex::FFT::PoissonHybrid< MF >::solve_2d ( MF &  a_soln,
MF const &  a_rhs 
)

◆ solve_z()

template<typename MF >
template<typename FA , typename TRIA , typename TRIC >
void amrex::FFT::PoissonHybrid< MF >::solve_z ( FA &  spmf,
TRIA const &  tria,
TRIC const &  tric 
)

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