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...
#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 >, AMREX_SPACEDIM > const &bc) | |
template<typename FA = MF, std::enable_if_t< IsFabArray_v< FA >, int > = 0> | |
PoissonHybrid (Geometry const &geom) | |
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) |
template<typename TRIA , typename TRIC > | |
void | solve (MF &soln, MF const &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, DistributionMapping > | getSpectralDataLayout () const |
Private Types | |
using | cMF = FabArray< BaseFab< GpuComplex< T > >> |
Private Member Functions | |
void | build_spmf () |
Private Attributes | |
Geometry | m_geom |
Array< std::pair< Boundary, Boundary >, AMREX_SPACEDIM > | m_bc |
std::unique_ptr< R2X< typename MF::value_type > > | m_r2x |
std::unique_ptr< R2C< typename MF::value_type > > | m_r2c |
MF | m_spmf_r |
cMF | m_spmf_c |
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.
|
private |
using amrex::FFT::PoissonHybrid< MF >::T = typename MF::value_type |
|
inline |
|
inlineexplicit |
|
private |
std::pair< BoxArray, DistributionMapping > amrex::FFT::PoissonHybrid< MF >::getSpectralDataLayout |
void amrex::FFT::PoissonHybrid< MF >::solve | ( | MF & | soln, |
MF const & | rhs | ||
) |
void amrex::FFT::PoissonHybrid< MF >::solve | ( | MF & | soln, |
MF const & | rhs, | ||
Gpu::DeviceVector< T > const & | dz | ||
) |
void amrex::FFT::PoissonHybrid< MF >::solve | ( | MF & | soln, |
MF const & | rhs, | ||
TRIA const & | tria, | ||
TRIC const & | tric | ||
) |
void amrex::FFT::PoissonHybrid< MF >::solve | ( | MF & | soln, |
MF const & | rhs, | ||
Vector< T > const & | dz | ||
) |
void amrex::FFT::PoissonHybrid< MF >::solve_z | ( | FA & | spmf, |
TRIA const & | tria, | ||
TRIC const & | tric | ||
) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |