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, DistributionMapping > | getSpectralDataLayout () const |
Private Types | |
| using | cMF = FabArray< BaseFab< GpuComplex< T > > > |
Private Member Functions | |
| void | build_spmf () |
Private Attributes | |
| IntVect | m_domain_lo |
| Geometry | m_geom |
| Array< std::pair< Boundary, Boundary >, 3 > | 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 Dirichlet & 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 |
|
private |
| std::pair< BoxArray, DistributionMapping > amrex::FFT::PoissonHybrid< MF >::getSpectralDataLayout | ( | ) | const |
| void amrex::FFT::PoissonHybrid< MF >::solve | ( | MF & | a_soln, |
| MF const & | a_rhs, | ||
| TRIA const & | tria, | ||
| TRIC const & | tric | ||
| ) |
| 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, | ||
| Vector< T > const & | dz | ||
| ) |
| void amrex::FFT::PoissonHybrid< MF >::solve_2d | ( | MF & | a_soln, |
| MF const & | a_rhs | ||
| ) |
| void amrex::FFT::PoissonHybrid< MF >::solve_z | ( | FA & | spmf, |
| TRIA const & | tria, | ||
| TRIC const & | tric | ||
| ) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |