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>
|
| using | T = typename MF::value_type |
| |
|
| 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) |
| | Construct the hybrid Poisson solver (mixed BCs in z with optional nonuniform spacing).
|
| |
| void | solve (MF &soln, MF const &rhs) |
| | Solve del dot grad soln = rhs for uniform spacing in all directions.
|
| |
| void | solve (MF &soln, MF const &rhs, Vector< T > const &dz) |
| | Solve with user-specified layer spacing in the heterogeneous dimension.
|
| |
| void | solve (MF &soln, MF const &rhs, Gpu::DeviceVector< T > const &dz) |
| | GPU-resident overload that accepts device storage for dz.
|
| |
| void | solve_2d (MF &a_soln, MF const &a_rhs) |
| | Solve an independent 2-D Poisson problem on every z-plane.
|
| |
| template<typename TRIA , typename TRIC > |
| void | solve (MF &a_soln, MF const &a_rhs, TRIA const &tria, TRIC const &tric) |
| | Solve using arbitrary tridiagonal coefficients along the hybrid dimension.
|
| |
| template<typename FA , typename TRIA , typename TRIC > |
| void | solve_z (FA &spmf, TRIA const &tria, TRIC const &tric) |
| | CUDA helper that applies the supplied tridiagonal operator along z.
|
| |
| std::pair< BoxArray, DistributionMapping > | getSpectralDataLayout () const |
| | Layout information for spectral storage used by the hybrid solver.
|
| |
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.
template<typename MF = MultiFab>
◆ PoissonHybrid()
template<typename MF = MultiFab>
template<typename FA = MF, std::enable_if_t<
IsFabArray_v< FA >,
int > = 0>
Construct the hybrid Poisson solver (mixed BCs in z with optional nonuniform spacing).
- Parameters
-
| geom | Geometry describing domain and spacing. |
| bc | Boundary descriptors for each direction. |
◆ getSpectralDataLayout()
Layout information for spectral storage used by the hybrid solver.
- Returns
- BoxArray/DistributionMapping pair describing the complex space decomposition.
◆ solve() [1/4]
template<typename MF >
template<typename TRIA , typename TRIC >
Solve using arbitrary tridiagonal coefficients along the hybrid dimension.
- Parameters
-
| a_soln | Solution MultiFab. |
| a_rhs | Right-hand side MultiFab. |
| tria | Functor providing sub-diagonal coefficients. |
| tric | Functor providing super-diagonal coefficients. |
◆ solve() [2/4]
Solve del dot grad soln = rhs for uniform spacing in all directions.
If soln has ghost cells, one layer of ghost cells will be filled except for the domain-corner ghost zones the stencil does not use.
- Parameters
-
◆ solve() [3/4]
GPU-resident overload that accepts device storage for dz.
- Parameters
-
| soln | Solution MultiFab. |
| rhs | Right-hand side MultiFab. |
| dz | Device vector of cell spacings along the hybrid dimension. |
◆ solve() [4/4]
Solve with user-specified layer spacing in the heterogeneous dimension.
- Parameters
-
◆ solve_2d()
Solve an independent 2-D Poisson problem on every z-plane.
- Parameters
-
| a_soln | Solution MultiFab (updated plane-by-plane). |
| a_rhs | Right-hand side MultiFab. |
◆ solve_z()
template<typename MF >
template<typename FA , typename TRIA , typename TRIC >
CUDA helper that applies the supplied tridiagonal operator along z.
- Parameters
-
| spmf | Spectral MultiFab (either real or complex flavor). |
| tria | Sub-diagonal functor. |
| tric | Super-diagonal functor. |
The documentation for this class was generated from the following file: